59 const word& fieldName,
65 getInitialTypeResiduals<scalar>(
mesh, fieldName, solvei, r0, r);
66 getInitialTypeResiduals<vector>(
mesh, fieldName, solvei, r0, r);
67 getInitialTypeResiduals<sphericalTensor>(
mesh, fieldName, solvei, r0, r);
68 getInitialTypeResiduals<symmTensor>(
mesh, fieldName, solvei, r0, r);
69 getInitialTypeResiduals<tensor>(
mesh, fieldName, solvei, r0, r);
95 control_.time().timeIndex() != control_.time().startTimeIndex()
99 Info<<
nl << control_.algorithmName() <<
" solution converged in "
100 << control_.time().name() <<
" iterations" <<
nl <<
endl;
113 if (
time.writeTime())
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
@ noWriteNow
set endTime to stop immediately w/o writing
Convergence control class. Provides methods to check the convergence of the time loop against an abso...
static DynamicList< word > getFieldNames(const fvMesh &mesh)
Get the list of names of the fields.
static void getInitialResiduals(const fvMesh &mesh, const word &fieldName, const label solvei, scalar &r0, scalar &r)
Get the initial residuals for the first and the i-th solves in this.
bool converged()
Flag to indicate whether convergence has been reached.
virtual ~convergenceControl()
Destructor.
convergenceControl(const solutionControl &control)
Construct from a solution control.
bool endIfConverged(Time &time)
End the run if convergence has been reached.
Mesh data needed to do the Finite Volume discretisation.
A class for handling words, derived from string.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
static List< word > fieldNames
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
defineTypeNameAndDebug(atmosphericBoundaryLayer, 0)
Convergence data structure.