39 const word& meanFieldName =
faItems_[fieldI].meanFieldName();
41 Info<<
" Reading/initialising field " << meanFieldName <<
endl;
49 Info<<
" Cannot allocate average field " << meanFieldName
50 <<
" since an object with that name already exists." 51 <<
" Disabling averaging for field." <<
endl;
93 addMeanFieldType<volFieldType>(fieldI);
97 addMeanFieldType<surfFieldType>(fieldI);
103 template<
class Type1,
class Type2>
107 const word& meanFieldName =
faItems_[fieldI].meanFieldName();
108 const word& prime2MeanFieldName =
faItems_[fieldI].prime2MeanFieldName();
110 Info<<
" Reading/initialising field " << prime2MeanFieldName <<
nl;
116 else if (
obr_.
found(prime2MeanFieldName))
118 Info<<
" Cannot allocate average field " << prime2MeanFieldName
119 <<
" since an object with that name already exists." 120 <<
" Disabling averaging for field." <<
nl;
122 faItems_[fieldI].prime2Mean() =
false;
144 sqr(baseField) -
sqr(meanField)
151 template<
class Type1,
class Type2>
168 "void Foam::fieldAverage::addPrime2MeanField(const label) const" 170 <<
"To calculate the prime-squared average, the " 171 <<
"mean average must also be selected for field " 177 addPrime2MeanFieldType<volFieldType1, volFieldType2>(fieldI);
181 addPrime2MeanFieldType<surfFieldType1, surfFieldType2>(fieldI);
196 Type& meanField =
const_cast<Type&
> 210 scalar
alpha = (Dt - dt)/Dt;
215 const scalar w =
faItems_[fieldI].window();
224 meanField = alpha*meanField + beta*baseField;
239 calculateMeanFieldType<volFieldType>(i);
240 calculateMeanFieldType<surfFieldType>(i);
246 template<
class Type1,
class Type2>
254 const Type1& meanField =
257 Type2& prime2MeanField =
const_cast<Type2&
> 271 scalar
alpha = (Dt - dt)/Dt;
276 const scalar w =
faItems_[fieldI].window();
286 alpha*prime2MeanField
287 + beta*
sqr(baseField)
293 template<
class Type1,
class Type2>
306 calculatePrime2MeanFieldType<volFieldType1, volFieldType2>(i);
307 calculatePrime2MeanFieldType<surfFieldType1, surfFieldType2>(i);
313 template<
class Type1,
class Type2>
320 const Type1& meanField =
323 Type2& prime2MeanField =
const_cast<Type2&
> 328 prime2MeanField +=
sqr(meanField);
333 template<
class Type1,
class Type2>
346 addMeanSqrToPrime2MeanType<volFieldType1, volFieldType2>(i);
347 addMeanSqrToPrime2MeanType<surfFieldType1, surfFieldType2>(i);
375 writeFieldType<volFieldType>(fieldName);
376 writeFieldType<surfFieldType>(fieldName);
380 const word& fieldName =
faItems_[i].prime2MeanFieldName();
381 writeFieldType<volFieldType>(fieldName);
382 writeFieldType<surfFieldType>(fieldName);
void addMeanSqrToPrime2Mean() const
Add mean-squared field value to prime-squared mean field.
void writeFields() const
Write fields.
const objectRegistry & obr_
Database this class is registered to.
void calculatePrime2MeanFieldType(const label fieldI) const
Calculate prime-squared average fields.
List< label > totalIter_
Iteration steps counter.
void calculateMeanFields() const
Calculate mean average fields.
void calculatePrime2MeanFields() const
Calculate prime-squared average fields.
bool foundObject(const word &name) const
Is the named Type found?
dimensionedScalar beta("beta", dimless/dimTemperature, laminarTransport)
void addPrime2MeanField(const label fieldI)
Add prime-squared average field to database.
void addPrime2MeanFieldType(const label fieldI)
Add prime-squared average field to database.
A class for handling words, derived from string.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
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)
void addMeanSqrToPrime2MeanType(const label fieldI) const
Add mean-squared field value to prime-squared mean field.
virtual dimensionedScalar startTime() const
Return start time.
List< fieldAverageItem > faItems_
List of field average items, describing what averages to be.
Ostream & endl(Ostream &os)
Add newline and flush stream.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
void writeFieldType(const word &fieldName) const
Write fields.
scalar deltaTValue() const
Return time step value.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
void store()
Transfer ownership of this object to its registry.
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type.
Switch resetOnOutput_
Reset the averaging process on output flag.
#define FatalErrorIn(functionName)
Report an error message using Foam::FatalError.
Generic GeometricField class.
void calculateMeanFieldType(const label fieldI) const
Calculate mean average fields.
void addMeanFieldType(const label fieldI)
Add mean average field to database.
const Time & time() const
Return time.
void addMeanField(const label fieldI)
Add mean average field to database.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
bool found(const Key &) const
Return true if hashedEntry is found in table.
const Type & value() const
Return const reference to value.
List< scalar > totalTime_
Total time counter.