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_.empty())
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.
virtual bool write(const bool valid=true) const
Write using setting from DB.
Base class for solution control classes.
messageStream Info
Information stream (uses stdout - output is on the master only)
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.
scalar deltaTValue() const
Return time step value.
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.