37 const word& meanFieldName =
faItems_[fieldi].meanFieldName();
39 Log <<
" Reading/initialising field " << meanFieldName <<
endl;
47 Log <<
" Cannot allocate average field " << meanFieldName
48 <<
" since an object with that name already exists." 49 <<
" Disabling averaging for field." <<
endl;
94 addMeanFieldType<VolFieldType>(fieldi);
98 addMeanFieldType<SurfaceFieldType>(fieldi);
104 template<
class Type1,
class Type2>
111 const word& meanFieldName =
faItems_[fieldi].meanFieldName();
112 const word& prime2MeanFieldName =
faItems_[fieldi].prime2MeanFieldName();
114 Log <<
" Reading/initialising field " << prime2MeanFieldName <<
nl;
120 else if (
obr_.
found(prime2MeanFieldName))
122 Log <<
" Cannot allocate average field " << prime2MeanFieldName
123 <<
" since an object with that name already exists." 124 <<
" Disabling averaging for field." <<
nl;
126 faItems_[fieldi].prime2Mean() =
false;
148 sqr(baseField) -
sqr(meanField)
155 template<
class Type1,
class Type2>
171 <<
"To calculate the prime-squared average, the " 172 <<
"mean average must also be selected for field " 178 addPrime2MeanFieldType<VolFieldType1, VolFieldType2>(fieldi);
182 addPrime2MeanFieldType<SurfaceFieldType1, SurfaceFieldType2>
203 Type& meanField =
const_cast<Type&
> 217 scalar
alpha = (Dt - dt)/Dt;
222 const scalar w =
faItems_[fieldi].window();
231 meanField = alpha*meanField + beta*baseField;
246 calculateMeanFieldType<VolFieldType>(i);
247 calculateMeanFieldType<SurfaceFieldType>(i);
253 template<
class Type1,
class Type2>
264 const Type1& meanField =
267 Type2& prime2MeanField =
const_cast<Type2&
> 281 scalar
alpha = (Dt - dt)/Dt;
286 const scalar w =
faItems_[fieldi].window();
296 alpha*prime2MeanField
297 + beta*
sqr(baseField)
303 template<
class Type1,
class Type2>
316 calculatePrime2MeanFieldType<VolFieldType1, VolFieldType2>
321 calculatePrime2MeanFieldType<SurfaceFieldType1, SurfaceFieldType2>
330 template<
class Type1,
class Type2>
340 const Type1& meanField =
343 Type2& prime2MeanField =
const_cast<Type2&
> 348 prime2MeanField +=
sqr(meanField);
353 template<
class Type1,
class Type2>
366 addMeanSqrToPrime2MeanType<VolFieldType1, VolFieldType2>(i);
367 addMeanSqrToPrime2MeanType<SurfaceFieldType1, SurfaceFieldType2>(i);
376 const word& fieldName
398 writeFieldType<VolFieldType>(fieldName);
399 writeFieldType<SurfaceFieldType>(fieldName);
403 const word& fieldName =
faItems_[i].prime2MeanFieldName();
404 writeFieldType<VolFieldType>(fieldName);
405 writeFieldType<SurfaceFieldType>(fieldName);
void addPrime2MeanFieldType(const label fieldi)
Add prime-squared average field to database.
const Time & time() const
Return time.
void addMeanField(const label fieldi)
Add mean average field to database.
#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)
void calculateMeanFields() const
Calculate mean average fields.
bool foundObject(const word &name) const
Is the named Type found?
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
List< scalar > totalTime_
Total time counter.
Ostream & endl(Ostream &os)
Add newline and flush stream.
virtual dimensionedScalar startTime() const
Return start time.
void addMeanFieldType(const label fieldi)
Add mean average field to database.
const Type & value() const
Return const reference to value.
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.
Switch restartOnOutput_
Restart the averaging process on output.
List< label > totalIter_
Iteration steps counter.
void writeFields() const
Write fields.
A class for handling words, derived from string.
List< fieldAverageItem > faItems_
List of field average items, describing what averages to be.
bool found(const Key &) const
Return true if hashedEntry is found in table.
void store()
Transfer ownership of this object to its registry.
void calculatePrime2MeanFieldType(const label fieldi) const
Calculate prime-squared average fields.
scalar deltaTValue() const
Return time step value.
void addMeanSqrToPrime2Mean() const
Add mean-squared field value to prime-squared mean field.
void addPrime2MeanField(const label fieldi)
Add prime-squared average field to database.
const objectRegistry & obr_
Reference to the region objectRegistry.
void writeFieldType(const word &fieldName) const
Write fields.
void addMeanSqrToPrime2MeanType(const label fieldi) const
Add mean-squared field value to prime-squared mean field.
#define Log
Report write to Foam::Info if the local log switch is true.
dimensionedScalar beta("beta", dimless/dimTemperature, laminarTransport)
void calculateMeanFieldType(const label fieldi) const
Calculate mean average fields.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
void calculatePrime2MeanFields() const
Calculate prime-squared average fields.