Go to the documentation of this file.
37 namespace functionObjects
70 functionObjectName_(
"unknown-functionObject"),
74 resetOnRestart_(false)
84 if (
dict.found(fieldName))
104 resetOnRestart_ =
false;
106 dict.readEntry(
"functionObject", functionObjectName_);
107 dict.readEntry(
"fields", fieldNames_);
108 if (
dict.readIfPresent(
"window", window_))
110 window_ = obr().time().userTimeToTime(window_);
113 totalTime_.setSize(fieldNames_.size());
116 totalTime_[i] = time_.deltaTValue();
119 dict.readIfPresent(
"resetOnRestart", resetOnRestart_);
127 scalar dt = obr_.time().deltaTValue();
131 file() << time_.timeName();
135 forAll(fieldNames_, fieldi)
137 const word& fieldName(fieldNames_[fieldi]);
138 const word meanName(fieldName +
"Mean");
140 scalar Dt = totalTime_[fieldi];
141 scalar
alpha = (Dt - dt)/Dt;
146 if (Dt - dt >= window_)
148 alpha = (window_ - dt)/window_;
153 bool processed =
false;
154 calc<scalar>(fieldName, meanName,
alpha,
beta, processed);
155 calc<vector>(fieldName, meanName,
alpha,
beta, processed);
156 calc<sphericalTensor>(fieldName, meanName,
alpha,
beta, processed);
157 calc<symmTensor>(fieldName, meanName,
alpha,
beta, processed);
158 calc<tensor>(fieldName, meanName,
alpha,
beta, processed);
162 unprocessedFields.
append(fieldi);
166 file() <<
tab <<
"n/a";
170 totalTime_[fieldi] += dt;
175 if (unprocessedFields.size())
178 <<
"From function object: " << functionObjectName_ <<
nl
179 <<
"Unprocessed fields:" <<
nl;
181 forAll(unprocessedFields, i)
183 label fieldi = unprocessedFields[i];
184 Log <<
" " << fieldNames_[fieldi] <<
nl;
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Computes the ensemble- or time-based singular-value average values, with optional windowing,...
virtual void writeFileHeader(Ostream &os) const
A class for handling words, derived from Foam::string.
virtual OFstream & file()
const dimensionedScalar alpha
bool read(const char *buf, int32_t &val)
Ostream & endl(Ostream &os)
List< scalar > totalTime_
Abstract base-class for Time/database function objects.
virtual void writeHeader(Ostream &os, const string &str) const
virtual bool read(const dictionary &dict)
DynamicList< T, SizeMin > & append(const T &val)
virtual bool read(const dictionary &)
dimensionedScalar beta("beta", dimless/dimTemperature, laminarTransport)
bool readEntry(const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX, bool mandatory=true) const
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
virtual bool read(const dictionary &dict)
OBJstream os(runTime.globalPath()/outputName)
Macros for easy insertion into run-time selection tables.
valueAverage(const word &name, const Time &runTime, const dictionary &dict)
virtual void writeCommented(Ostream &os, const string &str) const
addToRunTimeSelectionTable(functionObject, ObukhovLength, dictionary)
fileName::Type type(const fileName &name, const bool followLink=true)
defineTypeNameAndDebug(ObukhovLength, 0)
word name(const expressions::valueTypeCode typeCode)
Specialization of Foam::functionObject for a region and providing a reference to the region Foam::obj...
Base class for writing single files from the function objects.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
#define WarningInFunction
virtual void writeTabbed(Ostream &os, const string &str) const