/ setDeltaT.C
setDeltaT.C
 1  /*---------------------------------------------------------------------------*\
 2    =========                 |
 3    \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 4     \\    /   O peration     | Website:  https://openfoam.org
 5      \\  /    A nd           | Copyright (C) 2022-2023 OpenFOAM Foundation
 6       \\/     M anipulation  |
 7  -------------------------------------------------------------------------------
 8  License
 9      This file is part of OpenFOAM.
10  
11      OpenFOAM is free software: you can redistribute it and/or modify it
12      under the terms of the GNU General Public License as published by
13      the Free Software Foundation, either version 3 of the License, or
14      (at your option) any later version.
15  
16      OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17      ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18      FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19      for more details.
20  
21      You should have received a copy of the GNU General Public License
22      along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
23  
24  \*---------------------------------------------------------------------------*/
25  
26  #include "setDeltaT.H"
27  
28  // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
29  
30  void Foam::setDeltaT(Time& runTime, const solver& solver)
31  {
32      if
33      (
34          runTime.timeIndex() == 0
35       && runTime.controlDict().lookupOrDefault("adjustTimeStep", false)
36       && solver.transient()
37      )
38      {
39          const scalar deltaT =
40              min(solver.maxDeltaT(), runTime.functionObjects().maxDeltaT());
41  
42          if (deltaT < rootVGreat)
43          {
44              runTime.setDeltaT(min(runTime.deltaTValue(), deltaT));
45          }
46      }
47  }
48  
49  
50  void Foam::adjustDeltaT(Time& runTime, const solver& solver)
51  {
52      // Update the time-step limited by the solver maxDeltaT
53      if
54      (
55          runTime.controlDict().lookupOrDefault("adjustTimeStep", false)
56       && solver.transient()
57      )
58      {
59          const scalar deltaT =
60              min(solver.maxDeltaT(), runTime.functionObjects().maxDeltaT());
61  
62          if (deltaT < rootVGreat)
63          {
64              runTime.setDeltaT
65              (
66                  min(solver::deltaTFactor*runTime.deltaTValue(), deltaT)
67              );
68              Info<< "deltaT = " <<  runTime.deltaTValue() << endl;
69          }
70      }
71  }
72  
73  
74  // ************************************************************************* //