Go to the documentation of this file.
53 bool satisfied(
false);
58 if (subCycledTimePtr_().index() == 1)
73 if (mesh_.time().timeIndex() == mesh_.time().startTimeIndex() + 1)
75 return nInitialIters_;
96 Foam::SIMPLEControlOpt::SIMPLEControlOpt
99 const word& managerType,
105 subCycledTimePtr_(
nullptr),
106 deltaTSubSycle_(
Zero)
129 if (!subCycledTimePtr_)
132 Info<<
"Solving equations for solver "
133 << solver_.solverName() <<
"\n" <<
endl;
141 subCycledTimePtr_()++;
142 iter_ = subCycledTimePtr_().index();
144 bool doNextIter(
true);
146 if (criteriaSatisfied())
149 << solver_.solverName()
150 <<
" solution converged in "
151 << subCycledTimePtr_->index() <<
" iterations" <<
nl <<
endl;
153 subCycledTimePtr_->endSubCycle();
154 subCycledTimePtr_.clear();
166 else if (subCycledTimePtr_->end())
169 << solver_.solverName()
170 <<
" solution reached max. number of iterations "
171 << subCycledTimePtr_().nSubCycles() <<
nl <<
endl;
173 subCycledTimePtr_->endSubCycle();
174 subCycledTimePtr_.clear();
190 <<
"Iteration " << subCycledTimePtr_().index()
191 <<
"|" << subCycledTimePtr_().nSubCycles() <<
endl;
193 storePrevIterFields();
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 bool read()
Read controls from optimisationDict.
bool read(const char *buf, int32_t &val)
Same as readInt32.
Ostream & endl(Ostream &os)
Add newline and flush stream.
A class for managing sub-cycling times.
bool criteriaSatisfied()
Return true if all convergence checks are satisfied.
scalar deltaTValue() const noexcept
Return time step value.
virtual bool write(const bool valid=true) const
Write using setting from DB.
Base class for solution control classes.
messageStream Info
Information stream (stdout output on master, null elsewhere)
virtual const dictionary dict() const
Return the solution dictionary.
virtual bool read()
Read controls from fvSolution dictionary.
const label & nIters() const
Maximum number of solver iterations.
Macros for easy insertion into run-time selection tables.
Mesh data needed to do the Finite Volume discretisation.
virtual void setDeltaT(const dimensionedScalar &deltaT, const bool adjust=true)
Reset time step, normally also calling adjustDeltaT()
void readModifiedObjects()
Read the objects that have been modified.
#define DebugInfo
Report an information message using Foam::Info.
virtual bool write(const bool valid=true) const
Whether to call time.write() or not.
virtual bool criteriaSatisfied()
Return true if all convergence checks are satisfied.
T getOrDefault(const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
label nIters_
Number of SIMPLE iterations.
defineTypeNameAndDebug(combustionModel, 0)
label nInitialIters_
Number of iterations for the first optimisation cycle.
SIMPLE control class to supply convergence information/checks for the SIMPLE loop.
void resetDeltaT()
Reset deltaT in case controlDict has been re-written at run-time.