37 const word& meanFieldName =
faItems_[fieldi].meanFieldName();
39 Log <<
" Reading/initialising field " << meanFieldName <<
endl;
45 Log <<
" Cannot allocate average field " << meanFieldName
46 <<
" since an object with that name already exists." 47 <<
" Disabling averaging for field." <<
endl;
92 addMeanFieldType<VolFieldType>(fieldi);
96 addMeanFieldType<SurfaceFieldType>(fieldi);
102 template<
class Type1,
class Type2>
109 const word& meanFieldName =
faItems_[fieldi].meanFieldName();
110 const word& prime2MeanFieldName =
faItems_[fieldi].prime2MeanFieldName();
112 Log <<
" Reading/initialising field " << prime2MeanFieldName <<
nl;
116 else if (
obr_.
found(prime2MeanFieldName))
118 Log <<
" 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>
167 <<
"To calculate the prime-squared average, the " 168 <<
"mean average must also be selected for field " 174 addPrime2MeanFieldType<VolFieldType1, VolFieldType2>(fieldi);
178 addPrime2MeanFieldType<SurfaceFieldType1, SurfaceFieldType2>
215 const scalar w =
faItems_[fieldi].window();
223 meanField = (1 -
beta)*meanField + beta*baseField;
238 calculateMeanFieldType<VolFieldType>(i);
239 calculateMeanFieldType<SurfaceFieldType>(i);
245 template<
class Type1,
class Type2>
256 const Type1& meanField =
259 Type2& prime2MeanField =
275 const scalar w =
faItems_[fieldi].window();
284 (1 -
beta)*prime2MeanField
285 + beta*
sqr(baseField)
291 template<
class Type1,
class Type2>
304 calculatePrime2MeanFieldType<VolFieldType1, VolFieldType2>(i);
305 calculatePrime2MeanFieldType<SurfaceFieldType1, SurfaceFieldType2>
314 template<
class Type1,
class Type2>
324 const Type1& meanField =
327 Type2& prime2MeanField =
330 prime2MeanField +=
sqr(meanField);
335 template<
class Type1,
class Type2>
348 addMeanSqrToPrime2MeanType<VolFieldType1, VolFieldType2>(i);
349 addMeanSqrToPrime2MeanType<SurfaceFieldType1, SurfaceFieldType2>(i);
358 const word& fieldName
380 writeFieldType<VolFieldType>(fieldName);
381 writeFieldType<SurfaceFieldType>(fieldName);
385 const word& fieldName =
faItems_[i].prime2MeanFieldName();
386 writeFieldType<VolFieldType>(fieldName);
387 writeFieldType<SurfaceFieldType>(fieldName);
void addPrime2MeanFieldType(const label fieldi)
Add prime-squared average field to database.
void addMeanField(const label fieldi)
Add mean average field to database.
void addMeanSqrToPrime2MeanType(const label fieldi) const
Add mean-squared field value to prime-squared mean field.
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
List< scalar > totalTime_
Total time counter.
virtual dimensionedScalar startTime() const
Return start time.
Type & lookupObjectRef(const word &name) const
Lookup and return the object reference of the given Type.
Ostream & endl(Ostream &os)
Add newline and flush stream.
bool foundObject(const word &name) const
Is the named Type found?
void calculatePrime2MeanFieldType(const label fieldi) const
Calculate prime-squared average fields.
void addMeanFieldType(const label fieldi)
Add mean average field to database.
Generic GeometricField class.
static word timeName(const scalar, const int precision=precision_)
Return time name of given scalar time.
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type.
void calculateMeanFieldType(const label fieldi) const
Calculate mean average fields.
void calculatePrime2MeanFields() const
Calculate prime-squared average fields.
void writeFields() const
Write fields.
Switch restartOnOutput_
Restart the averaging process on output.
List< label > totalIter_
Iteration steps counter.
void writeFieldType(const word &fieldName) const
Write fields.
bool found(const Key &) const
Return true if hashedEntry is found in table.
A class for handling words, derived from string.
scalar deltaTValue() const
Return time step value.
List< fieldAverageItem > faItems_
List of field average items, describing what averages to be.
const Type & value() const
Return const reference to value.
void calculateMeanFields() const
Calculate mean average fields.
void store()
Transfer ownership of this object to its registry.
const Time & time() const
Return time.
void addPrime2MeanField(const label fieldi)
Add prime-squared average field to database.
const objectRegistry & obr_
Reference to the region objectRegistry.
#define Log
Report write to Foam::Info if the local log switch is true.
dimensionedScalar beta("beta", dimless/dimTemperature, laminarTransport)
void addMeanSqrToPrime2Mean() const
Add mean-squared field value to prime-squared mean field.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...