Go to the documentation of this file.
42 SIMPLEControlSingleRun,
57 label nItersOld = nIters_;
58 nIters_ =
dict().
get<label>(
"nIters");
60 if (nIters_ != nItersOld || iter_ == 0)
67 Info<<
"Setting endTime to " << startTime_ + nIters_ <<
endl;
79 Time& time =
const_cast<Time&
>(mesh_.time());
93 Foam::SIMPLEControlSingleRun::SIMPLEControlSingleRun
96 const word& managerType,
110 Time& time =
const_cast<Time&
>(mesh_.time());
120 Time& time =
const_cast<Time&
>(mesh_.time());
140 if (initialised_ && criteriaSatisfied())
143 << solver_.solverName()
144 <<
" solution converged in "
159 storePrevIterFields();
163 checkEndTime(isRunning);
168 << solver_.solverName()
169 <<
" solution reached max. number of iterations "
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
A class for handling words, derived from Foam::string.
static constexpr const zero Zero
Global zero (0)
virtual void readIters()
Set end time if number of iters has changed.
bool read(const char *buf, int32_t &val)
Same as readInt32.
static word timeName(const scalar t, const int precision=precision_)
Ostream & endl(Ostream &os)
Add newline and flush stream.
const Type & value() const
Return const reference to value.
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
scalar deltaTValue() const noexcept
Return time step value.
virtual void setFirstIterFlag(const bool check=true, const bool force=false)
Set the firstIteration flag on the mesh data dictionary.
virtual bool write(const bool valid=true) const
Write using setting from DB.
bool writeTime() const noexcept
True if this is a write time.
virtual void setEndTime(const dimensionedScalar &endTime)
Reset end time.
Base class for solution control classes.
messageStream Info
Information stream (stdout output on master, null elsewhere)
virtual bool read()
Read controls from fvSolution dictionary.
virtual bool loop()
Return true if run should continue and if so increment time.
Macros for easy insertion into run-time selection tables.
Mesh data needed to do the Finite Volume discretisation.
virtual bool write(const bool valid=true) const
Whether to call time.write() or not.
void writeNow()
Write fields, even if it is not a writeTime.
virtual dimensionedScalar endTime() const
Return end time.
void checkEndTime(bool &isRunning)
defineTypeNameAndDebug(combustionModel, 0)
virtual bool read()
Read controls from optimisationDict.
SIMPLE control class to supply convergence information/checks for the SIMPLE loop.