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