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... | |
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 convergance has been reached. More... | |
bool | endIfConverged (Time &time) |
End the run if convergance has been reached. More... | |
template<class ResidualData > | |
Foam::label | residualControlIndex (const word &fieldName, const List< ResidualData > &residualControl, const bool useRegEx) |
Static Public Member Functions | |
static void | getInitialResiduals (const fvMesh &mesh, const word &fieldName, const label solvei, ITstream &data, 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 | getInitialTypeResiduals (const fvMesh &mesh, const word &fieldName, const label solvei, ITstream &data, 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 67 of file convergenceControl.C.
|
virtual |
Destructor.
Definition at line 75 of file convergenceControl.C.
|
static |
Get the initial residuals for the first and the i-th solves in this.
time-step
Definition at line 40 of file convergenceControl.C.
References mesh.
Referenced by singleRegionCorrectorConvergenceControl::corrCriteriaSatisfied().
|
static |
Return the index of the named field in residual control data, or -1.
if not present
Referenced by singleRegionCorrectorConvergenceControl::corrCriteriaSatisfied(), singleRegionCorrectorConvergenceControl::readCorrResidualControls(), and singleRegionCorrectorConvergenceControl::updateCorrSolveIndex().
|
static |
Get the initial residuals for the first and the i-th solves in this.
time-step
Definition at line 54 of file convergenceControlTemplates.C.
References Foam::cmptMax(), and objectRegistry::foundObject().
Referenced by convergenceControl::residualControlIndex().
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 convergance has been reached.
Definition at line 81 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 convergance has been reached.
Definition at line 99 of file convergenceControl.C.
References convergenceControl::converged(), Time::saNoWriteNow, Time::setEndTime(), Time::stopAt(), Time::writeAndEnd(), and TimeState::writeTime().
Referenced by simpleControl::loop(), pimpleControl::loop(), simpleControl::run(), and pimpleControl::run().
Foam::label residualControlIndex | ( | const word & | fieldName, |
const List< ResidualData > & | residualControl, | ||
const bool | useRegEx | ||
) |
Definition at line 30 of file convergenceControlTemplates.C.
References forAll, convergenceControl::getInitialTypeResiduals(), string::match(), and Foam::name().
|
protected |
Reference to the solution control.
Definition at line 123 of file convergenceControl.H.
Referenced by convergenceControl::converged().