92 parsing::genericRagelLemonDriver(),
97 hasDimensions_(false),
101 resetTimeReference(
nullptr);
102 resetDb(mesh_.thisDb());
113 parsing::genericRagelLemonDriver(),
118 hasDimensions_(false),
122 resetTimeReference(
nullptr);
123 resetDb(mesh_.thisDb());
129 const word& meshName,
145 parsing::genericRagelLemonDriver(),
167 resultDimensions_.clear();
169 hasDimensions_ = resultDimensions_.readIfPresent(
"dimensions",
dict);
179 const std::string& expr,
184 scanner scan(this->debugScanner());
194 resultField_.reset(
nullptr);
206 const auto* regIOobjectPtr = resultField_.get();
215 switch (fieldGeoType_)
218 #define doLocalCode(GeoField) \ 220 const auto* ptr = dynamic_cast<const GeoField*>(regIOobjectPtr); \ 221 typedef typename GeoField::value_type Type; \ 229 word(pTraits<Type>::typeName) + word("(zero)"), \ 231 dimensioned<Type>(Zero), \ 233 defaultBoundaryType(*ptr) \ void resetTimeReference(const TimeState *ts)
Reset the time-state reference.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
addNamedToRunTimeSelectionTable(fvExprDriver, parseDriver, dictionary, volume)
autoPtr< regIOobject > dupZeroField() const
A zero-initialized field with the same type as the result field.
GeometricField< vector, pointPatchField, pointMesh > pointVectorField
Ragel lexer/scanner interface for volume expressions.
parseDriver(const parseDriver &)=delete
Base driver for parsing value expressions associated with an fvMesh.
Macros for easy insertion into run-time selection tables.
GeometricField< tensor, pointPatchField, pointMesh > pointTensorField
virtual const objectRegistry & thisDb() const
Return the object registry - resolve conflict polyMesh/lduMesh.
void clearField()
Clear out local copies of the field.
dimensionedScalar pos(const dimensionedScalar &ds)
defineTypeNameAndDebug(parseDriver, 0)
#define doLocalCode(GeoField)
const fvMesh & mesh_
The referenced mesh.
A class for handling words, derived from Foam::string.
virtual unsigned parse(const std::string &expr, size_t pos=0, size_t len=std::string::npos)
Execute the parser.
GeometricField< scalar, pointPatchField, pointMesh > pointScalarField
virtual bool readDict(const dictionary &dict)
Read variables, tables etc.
const wordList volume
Standard volume field types (scalar, vector, tensor, etc)
bool process(const std::string &str, size_t pos, size_t len, parseDriver &driver_)
Evaluate sub-string.
GeometricField< sphericalTensor, pointPatchField, pointMesh > pointSphericalTensorField
virtual bool readDict(const dictionary &dict)
Read variables, tables etc.
Macro definitions for declaring ClassName(), NamespaceName(), etc.
Mesh data needed to do the Finite Volume discretisation.
void resetDb(const objectRegistry *obrPtr=nullptr)
Reset the objectRegistry (for functions)
GeometricField< symmTensor, pointPatchField, pointMesh > pointSymmTensorField
Driver for volume, surface, point field expressions.