![]() |
|
00001 /*---------------------------------------------------------------------------*\ 00002 ========= | 00003 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox 00004 \\ / O peration | 00005 \\ / A nd | Copyright (C) 1991-2005 OpenCFD Ltd. 00006 \\/ M anipulation | 00007 ------------------------------------------------------------------------------- 00008 License 00009 This file is part of OpenFOAM. 00010 00011 OpenFOAM is free software; you can redistribute it and/or modify it 00012 under the terms of the GNU General Public License as published by the 00013 Free Software Foundation; either version 2 of the License, or (at your 00014 option) any later version. 00015 00016 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT 00017 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00018 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00019 for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with OpenFOAM; if not, write to the Free Software Foundation, 00023 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00024 00025 Global 00026 setDeltaT 00027 00028 Description 00029 Reset the timestep to maintain a constant maximum courant Number. 00030 Reduction of time-step is imediate but increase is damped to avoid 00031 unstable oscillations. 00032 00033 \*---------------------------------------------------------------------------*/ 00034 00035 if (adjustTimeStep) 00036 { 00037 scalar maxDeltaTFact = maxCo/(CoNum + SMALL); 00038 scalar deltaTFact = min(min(maxDeltaTFact, 1.0 + 0.1*maxDeltaTFact), 1.2); 00039 00040 runTime.setDeltaT 00041 ( 00042 min 00043 ( 00044 deltaTFact*runTime.deltaT().value(), 00045 maxDeltaT 00046 ) 00047 ); 00048 00049 Info<< "deltaT = " << runTime.deltaT().value() << endl; 00050 } 00051 00052 // ************************************************************************* //