43 void Foam::calcTypes::addSubtract::writeAddSubtractFields
50 bool processed =
false;
54 addSubtractFieldName_,
60 if (addSubtractFieldHeader.headerOk())
62 writeAddSubtractField<scalar>
65 addSubtractFieldHeader,
69 writeAddSubtractField<vector>
72 addSubtractFieldHeader,
76 writeAddSubtractField<sphericalTensor>
79 addSubtractFieldHeader,
83 writeAddSubtractField<symmTensor>
86 addSubtractFieldHeader,
90 writeAddSubtractField<tensor>
93 addSubtractFieldHeader,
101 <<
"Unable to process " << baseFieldName_
102 <<
" + " << addSubtractFieldName_ <<
nl 103 <<
"No call to addSubtract for fields of type " 104 << baseFieldHeader.headerClassName() <<
" + " 105 << addSubtractFieldHeader.headerClassName() <<
nl <<
nl 111 FatalErrorIn(
"calcTypes::addSubtract::writeAddSubtractFields()")
112 <<
"Unable to read addSubtract field: " << addSubtractFieldName_
118 void Foam::calcTypes::addSubtract::writeAddSubtractValues
125 bool processed =
false;
127 writeAddSubtractValue<scalar>
130 addSubtractValueStr_,
134 writeAddSubtractValue<vector>
137 addSubtractValueStr_,
141 writeAddSubtractValue<sphericalTensor>
144 addSubtractValueStr_,
148 writeAddSubtractValue<symmTensor>
151 addSubtractValueStr_,
155 writeAddSubtractValue<tensor>
158 addSubtractValueStr_,
165 FatalErrorIn(
"calcTypes::addSubtract::writeAddSubtractValue()")
166 <<
"Unable to process " << baseFieldName_
167 <<
" + " << addSubtractValueStr_ <<
nl 168 <<
"No call to addSubtract for fields of type " 169 << baseFieldHeader.headerClassName() <<
nl <<
nl 182 addSubtractFieldName_(
""),
183 addSubtractValueStr_(
""),
215 baseFieldName_ = args[2];
216 const word calcModeName = args[3];
218 if (calcModeName ==
"add")
222 else if (calcModeName ==
"subtract")
229 <<
"Invalid calcMode: " << calcModeName <<
nl 230 <<
" Valid calcModes are add and subtract" <<
nl 245 <<
"addSubtract requires either -field or -value option" 274 writeAddSubtractFields(runTime, mesh, baseFieldHeader);
279 writeAddSubtractValues(runTime, mesh, baseFieldHeader);
285 <<
"unknown calcType " << calcType_ <<
nl 293 <<
"Unable to read base field: " << baseFieldName_
static HashTable< string > validOptions
A list of valid options.
virtual void init()
Initialise - typically setting static variables,.
static SLList< string > validArgs
A list of valid (mandatory) arguments.
Mesh data needed to do the Finite Volume discretisation.
adds/subtracts a field or value to/from a base field.
virtual void preCalc(const argList &args, const Time &runTime, const fvMesh &mesh)
Pre-time loop calculations.
A class for handling words, derived from string.
static word timeName(const scalar, const int precision=precision_)
Return time name of given scalar time.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by any number of values (e...
addSubtract()
Construct null.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Macros for easy insertion into run-time selection tables.
addToRunTimeSelectionTable(calcType, addSubtract, dictionary)
bool optionReadIfPresent(const word &opt, T &) const
Read a value from the named option if present.
errorManip< error > abort(error &err)
Extract command arguments and options from the supplied argc and argv parameters. ...
#define FatalErrorIn(functionName)
Report an error message using Foam::FatalError.
virtual ~addSubtract()
Destructor.
defineTypeNameAndDebug(addSubtract, 0)
bool headerOk()
Read and check header info.
Base class for post-processing calculation functions.
virtual void calc(const argList &args, const Time &runTime, const fvMesh &mesh)
Time loop calculations.