35 #ifndef solutionControl_H 36 #define solutionControl_H 76 const entry& dataDictEntry
126 virtual bool read(
const bool absTolOnly);
134 const word& fieldName,
135 const bool useRegEx =
true 158 const entry& solverPerfDictEntry,
171 const bool check =
true,
172 const bool force =
false 215 inline label
corr()
const;
247 virtual bool loop() = 0;
virtual bool writeData(Ostream &) const
Dummy write for regIOobject.
bool consistent() const
Flag to indicate to relax pressure using the.
fvMesh & mesh_
Reference to the mesh database.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
virtual ~solutionControl()=default
Destructor.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
List< fieldData > residualControl_
List of residual data per field.
virtual bool loop()=0
Main control loop.
Base class for solution control classes.
virtual label applyToField(const word &fieldName, const bool useRegEx=true) const
Return index of field in residualControl_ if present.
label nNonOrthCorr_
Maximum number of non-orthogonal correctors.
void storePrevIter() const
Store previous iteration field for vol<Type>Fields.
static Pair< scalar > maxResidual(const fvMesh &fvmesh, const entry &dataDictEntry)
Extract maximum residual for the solver performance entry, provided the corresponding volume field is...
bool correctNonOrthogonal()
Non-orthogonal corrector loop.
A class for handling words, derived from Foam::string.
virtual bool read()
Read controls from fvSolution dictionary.
virtual void setFirstIterFlag(const bool check=true, const bool force=false)
Set the firstIteration flag on the mesh data dictionary.
Simple convenient storage of field residuals.
bool transonic_
Flag to indicate to solve using transonic algorithm.
const word algorithmName_
The dictionary name, e.g. SIMPLE, PIMPLE.
bool momentumPredictor() const
Flag to indicate to solve for momentum.
virtual bool criteriaSatisfied()=0
Return true if all convergence checks are satisfied.
A wordRe is a Foam::word, but can contain a regular expression for matching words or strings...
bool finalNonOrthogonalIter() const
Helper function to identify final non-orthogonal iteration.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
label nNonOrthCorr() const
Maximum number of non-orthogonal correctors.
virtual const dictionary dict() const
Return the solution dictionary.
static void check(const int retVal, const char *what)
label corr_
Current corrector loop index.
virtual void storePrevIterFields() const
Store previous iteration fields.
label corr() const
Current corrector loop index.
Mesh data needed to do the Finite Volume discretisation.
label corrNonOrtho_
Current non-orthogonal corrector loop index.
bool momentumPredictor_
Flag to indicate to solve for momentum.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
bool frozenFlow_
Flag to indicate that the flow system of equations should not.
TypeName("solutionControl")
Run-time type information.
bool transonic() const
Flag to indicate to solve using transonic algorithm.
label corrNonOrtho() const
Current non-orthogonal corrector index.
static bool maxTypeResidual(const fvMesh &fvmesh, const entry &solverPerfDictEntry, Pair< scalar > &residuals)
Initial and final residual of the specified field-name, provided that the corresponding volume field ...
bool consistent_
Flag to indicate to relax pressure using the.
bool frozenFlow() const
Flag to indicate that the flow system of equations should not.
A keyword and a list of tokens is an 'entry'.