Convergence control class. Provides methods to check the convergence of the time loop against an absolute residual tolerance. More...
Classes | |
struct | residualData |
Classes. More... | |
Public Member Functions | |
TypeName ("convergenceControl") | |
Run-time type information. More... | |
convergenceControl (const solutionControl &control) | |
Construct from a solution control. More... | |
convergenceControl (const convergenceControl &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~convergenceControl () |
Destructor. More... | |
virtual bool | hasResidualControls () const =0 |
Return true if residual controls are present. More... | |
virtual bool | criteriaSatisfied () const =0 |
Return true if all convergence checks are satisfied. More... | |
bool | converged () |
Flag to indicate whether convergence has been reached. More... | |
bool | endIfConverged (Time &time) |
End the run if convergence has been reached. More... | |
void | operator= (const convergenceControl &)=delete |
Disallow default bitwise assignment. More... | |
template<class ResidualData > | |
Foam::label | residualControlIndex (const word &fieldName, const List< ResidualData > &residualControl, const bool useRegEx) |
Static Public Member Functions | |
static DynamicList< word > | getFieldNames (const fvMesh &mesh) |
Get the list of names of the fields. More... | |
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. More... | |
template<class ResidualData > | |
static label | residualControlIndex (const word &fieldName, const List< ResidualData > &residualControl, const bool useRegEx=true) |
Return the index of the named field in residual control data, or -1. More... | |
template<class Type > | |
static void | getFieldTypeNames (const fvMesh &mesh, DynamicList< word > &fieldNames) |
Append the of names of the fields of this Type to the given list. More... | |
template<class Type > | |
static void | getInitialTypeResiduals (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. More... | |
Protected Attributes | |
const solutionControl & | control_ |
Reference to the solution control. More... | |
Convergence control class. Provides methods to check the convergence of the time loop against an absolute residual tolerance.
Definition at line 51 of file convergenceControl.H.
convergenceControl | ( | const solutionControl & | control | ) |
Construct from a solution control.
Definition at line 75 of file convergenceControl.C.
|
delete |
Disallow default bitwise copy construction.
|
virtual |
Destructor.
Definition at line 83 of file convergenceControl.C.
|
static |
Get the list of names of the fields.
for which residual data is available
Definition at line 40 of file convergenceControl.C.
References fieldNames, convergenceControl::getInitialResiduals(), and mesh.
Referenced by singleRegionCorrectorConvergenceControl::corrCriteriaSatisfied(), and singleRegionCorrectorConvergenceControl::updateCorrSolveIndex().
|
static |
Get the initial residuals for the first and the i-th solves in this.
time-step
Definition at line 57 of file convergenceControl.C.
References mesh.
Referenced by singleRegionCorrectorConvergenceControl::corrCriteriaSatisfied(), and convergenceControl::getFieldNames().
|
static |
Return the index of the named field in residual control data, or -1.
if not present
Referenced by singleRegionCorrectorConvergenceControl::corrCriteriaSatisfied(), and singleRegionCorrectorConvergenceControl::readCorrResidualControls().
|
static |
Append the of names of the fields of this Type to the given list.
Definition at line 56 of file convergenceControlTemplates.C.
References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), and convergenceControl::getInitialTypeResiduals().
Referenced by convergenceControl::residualControlIndex().
|
static |
Get the initial residuals for the first and the i-th solves in this.
time-step
Definition at line 67 of file convergenceControlTemplates.C.
References Foam::cmptMax(), and objectRegistry::foundObject().
Referenced by convergenceControl::getFieldTypeNames().
TypeName | ( | "convergenceControl" | ) |
Run-time type information.
|
pure virtual |
Return true if residual controls are present.
Implemented in pimpleMultiRegionControl, and singleRegionConvergenceControl.
|
pure virtual |
Return true if all convergence checks are satisfied.
Implemented in pimpleMultiRegionControl, and singleRegionConvergenceControl.
Referenced by convergenceControl::converged().
bool converged | ( | ) |
Flag to indicate whether convergence has been reached.
Definition at line 89 of file convergenceControl.C.
References solutionControl::algorithmName(), convergenceControl::control_, convergenceControl::criteriaSatisfied(), Foam::endl(), Foam::Info, Foam::nl, Time::startTimeIndex(), solutionControl::time(), TimeState::timeIndex(), and Time::timeName().
Referenced by convergenceControl::endIfConverged().
bool endIfConverged | ( | Time & | time | ) |
End the run if convergence has been reached.
Definition at line 107 of file convergenceControl.C.
References convergenceControl::converged(), Time::noWriteNow, Time::setEndTime(), Time::stopAt(), Time::writeAndEnd(), and TimeState::writeTime().
Referenced by simpleControl::loop(), pimpleControl::loop(), simpleControl::run(), and pimpleControl::run().
|
delete |
Disallow default bitwise assignment.
Foam::label residualControlIndex | ( | const word & | fieldName, |
const List< ResidualData > & | residualControl, | ||
const bool | useRegEx | ||
) |
Definition at line 32 of file convergenceControlTemplates.C.
References forAll, convergenceControl::getFieldTypeNames(), string::match(), and Foam::name().
|
protected |
Reference to the solution control.
Definition at line 121 of file convergenceControl.H.
Referenced by convergenceControl::converged().