volFieldValue Class Reference

Provides a 'fvCellZone' specialisation of the fieldValue function object. More...

Inheritance diagram for volFieldValue:
Collaboration diagram for volFieldValue:

Classes

struct  Result
 Forward declare the result structure. More...
 

Public Types

enum class  operationType {
  none , sum , sumMag , average ,
  volAverage , volIntegrate , min , max ,
  minMag , maxMag , CoV , UI
}
 Operation type enumeration. More...
 

Public Member Functions

 TypeName ("volFieldValue")
 Run-time type information. More...
 
 volFieldValue (const word &name, const Time &runTime, const dictionary &dict)
 Construct from name, Time and dictionary. More...
 
 volFieldValue (const word &name, const objectRegistry &obr, const dictionary &dict)
 Construct from name, objectRegistry and dictionary. More...
 
virtual ~volFieldValue ()
 Destructor. More...
 
template<class Type >
bool writeValues (const word &fieldName, const scalarField &weights, const scalarField &V)
 Templated helper function to output field values. More...
 
template<class Type , class ResultType >
bool writeValues (const word &fieldName, const Field< Type > &values, const scalarField &weights, const scalarField &V)
 Templated helper function to output field values. More...
 
template<class Type >
tmp< Field< Type > > filterField (const Field< Type > &field) const
 Filter a field according to cellIds. More...
 
virtual bool read (const dictionary &)
 Read from dictionary. More...
 
virtual bool write ()
 Calculate and write. More...
 
virtual void movePoints (const polyMesh &)
 Update for mesh motion. More...
 
virtual void topoChange (const polyTopoChangeMap &)
 Update topology using the given map. More...
 
virtual void mapMesh (const polyMeshMap &)
 Update from another mesh using the given map. More...
 
virtual void distribute (const polyDistributionMap &)
 Redistribute or update using the given distribution map. More...
 
template<class Type >
Foam::tmp< Foam::Field< Type > > getFieldValues (const word &fieldName) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > filterField (const Field< Type > &field) const
 
- Public Member Functions inherited from fieldValue
 TypeName ("fieldValue")
 Run-time type information. More...
 
 declareRunTimeSelectionTable (autoPtr, fieldValue, dictionary,(const word &name, const objectRegistry &obr, const dictionary &dict),(name, obr, dict))
 
 fieldValue (const word &name, const Time &runTime, const dictionary &dict, const word &valueType)
 Construct from Time and dictionary. More...
 
 fieldValue (const word &name, const objectRegistry &obr, const dictionary &dict, const word &valueType)
 Construct from objectRegistry and dictionary. More...
 
virtual ~fieldValue ()
 Destructor. More...
 
const dictionarydict () const
 Return the reference to the construction dictionary. More...
 
virtual wordList fields () const
 Return the list of fields required. More...
 
const SwitchwriteFields () const
 Return the output field values flag. More...
 
const dictionaryresultDict () const
 Return access to the latest set of results. More...
 
virtual bool execute ()
 Execute. More...
 
- Public Member Functions inherited from fvMeshFunctionObject
 TypeName ("fvMeshFunctionObject")
 Runtime type information. More...
 
 fvMeshFunctionObject (const word &name, const Time &runTime, const dictionary &dict)
 Construct from Time and dictionary. More...
 
 fvMeshFunctionObject (const word &name, const objectRegistry &obr)
 Construct from the region objectRegistry. More...
 
 fvMeshFunctionObject (const fvMeshFunctionObject &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~fvMeshFunctionObject ()
 Destructor. More...
 
const fvMeshmesh () const
 Return a reference to the mesh. More...
 
void operator= (const fvMeshFunctionObject &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from regionFunctionObject
 TypeName ("regionFunctionObject")
 Runtime type information. More...
 
 regionFunctionObject (const word &name, const Time &runTime, const dictionary &dict)
 Construct from Time and dictionary. More...
 
 regionFunctionObject (const word &name, const objectRegistry &obr)
 Construct from the region objectRegistry. More...
 
 regionFunctionObject (const regionFunctionObject &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~regionFunctionObject ()
 Destructor. More...
 
void operator= (const regionFunctionObject &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from objectRegistryFunctionObject
 TypeName ("objectRegistryFunctionObject")
 Runtime type information. More...
 
 objectRegistryFunctionObject (const word &name, const objectRegistry &obr, const dictionary &dict)
 Construct from an objectRegistry and dictionary. More...
 
 objectRegistryFunctionObject (const word &name, const objectRegistry &obr)
 Construct from an objectRegistry. More...
 
 objectRegistryFunctionObject (const objectRegistryFunctionObject &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~objectRegistryFunctionObject ()
 Destructor. More...
 
void operator= (const objectRegistryFunctionObject &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from functionObject
 ClassName ("functionObject")
 
virtual const wordtype () const =0
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, functionObject, dictionary,(const word &name, const Time &runTime, const dictionary &dict),(name, runTime, dict))
 
 functionObject (const word &name, const Time &runTime)
 Construct from components. More...
 
 functionObject (const word &name, const Time &runTime, const dictionary &dict)
 Construct from dictionary. More...
 
autoPtr< functionObjectclone () const
 Return clone. More...
 
 functionObject (const functionObject &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~functionObject ()
 Destructor. More...
 
const wordname () const
 Return the name of this functionObject. More...
 
virtual bool executeAtStart () const
 Return true if the functionObject should be executed at the start. More...
 
virtual bool end ()
 Called when Time::run() determines that the time-loop exits. More...
 
virtual scalar timeToNextAction ()
 Called by Time::adjustTimeStep(). Allows the functionObject to. More...
 
virtual scalar maxDeltaT () const
 Return the maximum time-step for stable operation. More...
 
void operator= (const functionObject &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from logFiles
 logFiles (const objectRegistry &obr, const word &prefix)
 Construct from objectRegistry and prefix. More...
 
 logFiles (const logFiles &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~logFiles ()
 Destructor. More...
 
const wordListtoc () const
 Return the list of log file names. More...
 
const wordListnames () const
 Return the list of log file names. More...
 
PtrList< OFstream > & files ()
 Return access to the files. More...
 
OFstreamfile ()
 Return access to the file (if only 1) More...
 
OFstreamfile (const label i)
 Return file 'i'. More...
 
void operator= (const logFiles &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from writeFile
 writeFile (const objectRegistry &obr, const word &prefix)
 Construct from objectRegistry and prefix. More...
 
 writeFile (const writeFile &)=delete
 Disallow default bitwise copy construction. More...
 
 ~writeFile ()
 Destructor. More...
 
void initStream (Ostream &os) const
 Initialise the output stream for writing. More...
 
fileName baseFileDir () const
 Return the base directory for output. More...
 
fileName baseTimeDir () const
 Return the base directory for the current time value. More...
 
Omanip< int > valueWidth (const label offset=0) const
 Return the value width when writing to stream with optional offset. More...
 
void writeCommented (Ostream &os, const string &str) const
 Write a commented string to stream. More...
 
void writeTabbed (Ostream &os, const string &str) const
 Write a tabbed string to stream. More...
 
void writeHeader (Ostream &os, const string &str) const
 Write a commented header to stream. More...
 
void writeTime (Ostream &os) const
 Write the current time to stream. More...
 
template<class Type >
void writeHeaderValue (Ostream &os, const string &property, const Type &value) const
 Write a (commented) header property and value pair. More...
 
label charWidth () const
 Return width of character stream output. More...
 
void operator= (const writeFile &)=delete
 Disallow default bitwise assignment. More...
 

Static Public Attributes

static const NamedEnum< operationType, 12 > operationTypeNames_
 Operation type names. More...
 
- Static Public Attributes inherited from functionObject
static bool postProcess
 Global post-processing mode switch. More...
 
- Static Public Attributes inherited from writeFile
static const word outputPrefix
 Directory prefix. More...
 
static label addChars = 8
 Additional characters for writing. More...
 

Protected Member Functions

template<class Type >
bool validField (const word &fieldName) const
 Return true if the field name is valid. More...
 
template<class Type >
tmp< Field< Type > > getFieldValues (const word &fieldName) const
 Insert field values into values list. More...
 
template<class Op >
void compareScalars (const scalarField &values, const scalar emptyVal, Result< scalar > &result, const Op &op) const
 Apply a comparison operation to the values, returning the limiting. More...
 
template<class Type , class ResultType >
bool processValues (const Field< Type > &values, const scalarField &weights, const scalarField &V, Result< ResultType > &result) const
 Apply the operation to the values, and return true if successful. More...
 
template<class Type >
bool processValues (const Field< Type > &values, const scalarField &weights, const scalarField &V, Result< Type > &result) const
 Apply Type -> Type operation to the values. Calls. More...
 
template<class Type >
bool processValues (const Field< Type > &values, const scalarField &weights, const scalarField &V, Result< scalar > &result) const
 Apply Type -> scalar operation to the values. More...
 
bool processValues (const Field< scalar > &values, const scalarField &weights, const scalarField &V, Result< scalar > &result) const
 Apply scalar -> scalar operation to the values. Calls. More...
 
template<class Type >
bool processValuesTypeType (const Field< Type > &values, const scalarField &weights, const scalarField &V, Result< Type > &result) const
 Apply a Type -> Type operation to the values. More...
 
template<class Type >
void writeFileHeaderLocation ()
 Output file header location information for a given type. More...
 
virtual void writeFileHeader (const label i)
 Output file header information. More...
 
template<>
void writeFileHeaderLocation ()
 
- Protected Member Functions inherited from objectRegistryFunctionObject
template<class ObjectType >
bool foundObject (const word &fieldName) const
 Find field in the objectRegistry. More...
 
template<class ObjectType >
void cannotFindObject (const word &fieldName)
 Prints a warning message that fieldName cannot be found. More...
 
void cannotFindObject (const word &fieldName)
 Prints a warning message that fieldName cannot be found. More...
 
void cannotFindObjects (const wordList &fieldNames)
 Prints a warning message that fieldNames cannot be found. More...
 
template<class ObjectType >
const ObjectType & lookupObject (const word &fieldName) const
 Lookup object from the objectRegistry. More...
 
template<class ObjectType >
ObjectType & lookupObjectRef (const word &fieldName)
 Lookup non-const object reference from the objectRegistry. More...
 
template<class ObjectType >
ObjectType & store (const tmp< ObjectType > &tfield)
 Store the given field in the objectRegistry. More...
 
template<class ObjectType >
ObjectType & store (const word &fieldName, const tmp< ObjectType > &tfield, bool cacheable=false)
 Store the given field in the objectRegistry under the given name. More...
 
bool writeObject (const word &fieldName)
 Write field if present in objectRegistry. More...
 
bool clearObject (const word &fieldName)
 Clear field from the objectRegistry if present. More...
 
- Protected Member Functions inherited from logFiles
virtual void createFiles ()
 Create the output file. More...
 
virtual void resetNames (const wordList &names)
 Reset the list of names from a wordList. More...
 
virtual void resetName (const word &name)
 Reset the list of names to a single name entry. More...
 

Protected Attributes

fvCellZone zone_
 The cellZone to operate on. More...
 
operationType operation_
 Operation to apply to values. More...
 
wordList weightFieldNames_
 Weight field names. More...
 
scalar scaleFactor_
 Scale factor. More...
 
const bool writeNCells_
 Optionally write the number of faces in the surface. More...
 
const bool writeVolume_
 Optionally write the area of the surface. More...
 
const bool writeLocation_
 Optionally write the location if available for this operation. More...
 
- Protected Attributes inherited from fieldValue
const word valueType_
 The name of the type of value (volFieldValue, or surfaceFieldValue) More...
 
wordList fields_
 List of field names to operate on. More...
 
Switch writeFields_
 Output field values flag. More...
 
dictionary resultDict_
 Results dictionary for external access of results. More...
 
- Protected Attributes inherited from fvMeshFunctionObject
const fvMeshmesh_
 Reference to the fvMesh. More...
 
- Protected Attributes inherited from objectRegistryFunctionObject
const objectRegistryobr_
 Reference to the objectRegistry. More...
 
- Protected Attributes inherited from functionObject
const Timetime_
 Reference to time. More...
 
- Protected Attributes inherited from logFiles
wordList names_
 File names. More...
 
PtrList< OFstreamfilePtrs_
 File pointer. More...
 
- Protected Attributes inherited from writeFile
const objectRegistryfileObr_
 Reference to the region objectRegistry. More...
 
const word prefix_
 Prefix. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from fieldValue
static autoPtr< fieldValueNew (const word &name, const objectRegistry &obr, const dictionary &dict, const bool output=true)
 Return a reference to the selected fieldValue. More...
 
- Static Public Member Functions inherited from functionObject
static autoPtr< functionObjectNew (const word &name, const Time &, const dictionary &)
 Select from dictionary, based on its "type" entry. More...
 
- Public Attributes inherited from functionObject
Switch log
 Switch write log to Info. More...
 
Switch executeAtStart_
 Switch execute at start time. More...
 

Detailed Description

Provides a 'fvCellZone' specialisation of the fieldValue function object.

Given a list of user-specified fields and a 'fvCellZone', a number of operations can be performed, such as sums, averages and integrations.

Example of function object specification:

volFieldValue1
{
    type            volFieldValue;
    libs            ("libfieldFunctionObjects.so");

    log             true;
    writeControl    writeTime;
    writeFields     true;

    cellZone        c0;
    operation       volAverage;

    weightField     alpha1;

    fields
    (
        p
        U
    );
}
Usage
Property Description Required Default value
type Type name: volFieldValue yes
log Write data to standard output no no
writeFields Write the region field values yes
writeNumberOfCells Write the number of cells in the zone no no
writeVolume Write the volume of the zone no no
writeLocation Write the location (if available) no no
cellZone cellZone yes
operation Operation to perform yes
weightField Name of field to apply weighting no none
weightFields Names of fields to apply weighting no none
fields List of fields to operate on yes

Where cellZone options are:

cellZone <name> : Looks-up the named cellZone
cellZone {type <zoneGeneratorType>;...} : Generates the cellZone locally
cellZone all : Selects all cells

The operation is one of:

none : No operation
sum : Sum
sumMag : Sum of component magnitudes
average : Ensemble average
volAverage : Volume weighted average
volIntegrate : Volume integral
min : Minimum
max : Maximum
minMag : Minimum magnitude
maxMag : Maximum magnitude
CoV : Coefficient of variation: (standard deviation)/mean
UI : Uniformity index: ???
See also
Foam::functionObjects::fieldValues::fieldValue Foam::Foam::fvCellZone Foam::functionObject
Source files

Definition at line 244 of file volFieldValue.H.

Member Enumeration Documentation

◆ operationType

enum operationType
strong

Operation type enumeration.

Enumerator
none 
sum 
sumMag 
average 
volAverage 
volIntegrate 
min 
max 
minMag 
maxMag 
CoV 
UI 

Definition at line 254 of file volFieldValue.H.

Constructor & Destructor Documentation

◆ volFieldValue() [1/2]

volFieldValue ( const word name,
const Time runTime,
const dictionary dict 
)

Construct from name, Time and dictionary.

Definition at line 198 of file volFieldValue.C.

References fieldValue::dict(), and volFieldValue::read().

Here is the call graph for this function:

◆ volFieldValue() [2/2]

volFieldValue ( const word name,
const objectRegistry obr,
const dictionary dict 
)

Construct from name, objectRegistry and dictionary.

Definition at line 217 of file volFieldValue.C.

References fieldValue::dict(), and volFieldValue::read().

Here is the call graph for this function:

◆ ~volFieldValue()

~volFieldValue ( )
virtual

Destructor.

Definition at line 238 of file volFieldValue.C.

Member Function Documentation

◆ validField()

bool validField ( const word fieldName) const
protected

Return true if the field name is valid.

Definition at line 32 of file volFieldValueTemplates.C.

References objectRegistry::foundObject(), and objectRegistryFunctionObject::obr_.

Here is the call graph for this function:

◆ getFieldValues() [1/2]

tmp<Field<Type> > getFieldValues ( const word fieldName) const
protected

Insert field values into values list.

◆ compareScalars()

void compareScalars ( const scalarField values,
const scalar  emptyVal,
Result< scalar > &  result,
const Op op 
) const
protected

Apply a comparison operation to the values, returning the limiting.

value, its index and processor index

Definition at line 79 of file volFieldValueTemplates.C.

References b, fvMesh::C(), volFieldValue::Result< Type >::cc, volFieldValue::Result< Type >::celli, forAll, fvMeshFunctionObject::mesh_, UPstream::myProcNo(), UPstream::parRun(), volFieldValue::Result< Type >::proci, Foam::reduce(), List< T >::size(), and volFieldValue::Result< Type >::value.

Here is the call graph for this function:

◆ processValues() [1/4]

bool processValues ( const Field< Type > &  values,
const scalarField weights,
const scalarField V,
Result< ResultType > &  result 
) const
protected

Apply the operation to the values, and return true if successful.

Does nothing unless overloaded below.

Definition at line 122 of file volFieldValueTemplates.C.

◆ processValues() [2/4]

bool processValues ( const Field< Type > &  values,
const scalarField weights,
const scalarField V,
Result< Type > &  result 
) const
protected

Apply Type -> Type operation to the values. Calls.

processValuesTypeType.

Definition at line 135 of file volFieldValueTemplates.C.

◆ processValues() [3/4]

bool processValues ( const Field< Type > &  values,
const scalarField weights,
const scalarField V,
Result< scalar > &  result 
) const
protected

Apply Type -> scalar operation to the values.

Definition at line 148 of file volFieldValueTemplates.C.

References Foam::mag().

Here is the call graph for this function:

◆ processValues() [4/4]

bool processValues ( const Field< scalar > &  values,
const scalarField weights,
const scalarField V,
Result< scalar > &  result 
) const
protected

Apply scalar -> scalar operation to the values. Calls.

processValuesTypeType.

Definition at line 157 of file volFieldValue.C.

References Foam::mag(), Foam::max(), and Foam::min().

Here is the call graph for this function:

◆ processValuesTypeType()

bool processValuesTypeType ( const Field< Type > &  values,
const scalarField weights,
const scalarField V,
Result< Type > &  result 
) const
protected

◆ writeFileHeaderLocation() [1/2]

void writeFileHeaderLocation
protected

Output file header location information for a given type.

Definition at line 74 of file volFieldValue.C.

References logFiles::file(), volFieldValue::maxMag, volFieldValue::minMag, volFieldValue::operation_, UPstream::parRun(), and Foam::tab.

Here is the call graph for this function:

◆ writeFileHeader()

void writeFileHeader ( const label  i)
protectedvirtual

Output file header information.

Implements logFiles.

Definition at line 115 of file volFieldValue.C.

References Foam::endl(), Foam::file, Foam::FOR_ALL_FIELD_TYPES(), forAll, Foam::tab, and writeFileHeaderLocationFieldType.

Here is the call graph for this function:

◆ TypeName()

TypeName ( "volFieldValue"  )

Run-time type information.

◆ writeValues() [1/2]

bool writeValues ( const word fieldName,
const scalarField weights,
const scalarField V 
)

Templated helper function to output field values.

Definition at line 279 of file volFieldValueTemplates.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::FOR_ALL_FIELD_TYPES(), IOobject::NO_READ, IOobject::NO_WRITE, regIOobject::write(), and writeValuesFieldType.

Here is the call graph for this function:

◆ writeValues() [2/2]

bool writeValues ( const word fieldName,
const Field< Type > &  values,
const scalarField weights,
const scalarField V 
)

Templated helper function to output field values.

Definition at line 347 of file volFieldValueTemplates.C.

References Foam::endl(), Foam::file, Log, UPstream::master(), Foam::tab, VectorSpace< Form, Cmpt, Ncmpts >::uniform(), and Foam::Zero.

Here is the call graph for this function:

◆ filterField() [1/2]

tmp<Field<Type> > filterField ( const Field< Type > &  field) const

Filter a field according to cellIds.

◆ read()

bool read ( const dictionary dict)
virtual

Read from dictionary.

Reimplemented from fieldValue.

Definition at line 244 of file volFieldValue.C.

References dict, Foam::endl(), forAll, Foam::Info, Foam::name(), Foam::nl, fieldValue::read(), and Foam::type().

Referenced by volFieldValue::volFieldValue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ write()

bool write ( )
virtual

Calculate and write.

Reimplemented from fieldValue.

Definition at line 292 of file volFieldValue.C.

References Foam::endl(), Foam::file, Foam::FOR_ALL_FIELD_TYPES(), forAll, Log, UPstream::master(), fvMeshFunctionObject::mesh_, Foam::tab, validFieldType, fieldValue::write(), and writeValuesFieldType.

Here is the call graph for this function:

◆ movePoints()

void movePoints ( const polyMesh mesh)
virtual

Update for mesh motion.

Reimplemented from functionObject.

Definition at line 377 of file volFieldValue.C.

References mesh, and functionObject::movePoints().

Here is the call graph for this function:

◆ topoChange()

void topoChange ( const polyTopoChangeMap map)
virtual

Update topology using the given map.

Reimplemented from functionObject.

Definition at line 390 of file volFieldValue.C.

References polyTopoChangeMap::mesh(), mesh, and functionObject::topoChange().

Here is the call graph for this function:

◆ mapMesh()

void mapMesh ( const polyMeshMap map)
virtual

Update from another mesh using the given map.

Reimplemented from functionObject.

Definition at line 403 of file volFieldValue.C.

References functionObject::mapMesh(), polyMeshMap::mesh(), and mesh.

Here is the call graph for this function:

◆ distribute()

void distribute ( const polyDistributionMap map)
virtual

Redistribute or update using the given distribution map.

Reimplemented from functionObject.

Definition at line 416 of file volFieldValue.C.

References functionObject::distribute(), polyDistributionMap::mesh(), and mesh.

Here is the call graph for this function:

◆ writeFileHeaderLocation() [2/2]

void writeFileHeaderLocation ( )
protected

◆ getFieldValues() [2/2]

Foam::tmp<Foam::Field<Type> > getFieldValues ( const word fieldName) const

Definition at line 52 of file volFieldValueTemplates.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ filterField() [2/2]

Foam::tmp<Foam::Field<Type> > filterField ( const Field< Type > &  field) const

Definition at line 400 of file volFieldValueTemplates.C.

Member Data Documentation

◆ operationTypeNames_

Initial value:
{
"none",
"sum",
"sumMag",
"average",
"volAverage",
"volIntegrate",
"min",
"max",
"minMag",
"maxMag",
"CoV",
"UI"
}

Operation type names.

Definition at line 271 of file volFieldValue.H.

◆ zone_

fvCellZone zone_
protected

The cellZone to operate on.

Definition at line 286 of file volFieldValue.H.

◆ operation_

operationType operation_
protected

Operation to apply to values.

Definition at line 289 of file volFieldValue.H.

Referenced by volFieldValue::writeFileHeaderLocation().

◆ weightFieldNames_

wordList weightFieldNames_
protected

Weight field names.

Definition at line 292 of file volFieldValue.H.

◆ scaleFactor_

scalar scaleFactor_
protected

Scale factor.

Definition at line 295 of file volFieldValue.H.

◆ writeNCells_

const bool writeNCells_
protected

Optionally write the number of faces in the surface.

Definition at line 298 of file volFieldValue.H.

◆ writeVolume_

const bool writeVolume_
protected

Optionally write the area of the surface.

Definition at line 301 of file volFieldValue.H.

◆ writeLocation_

const bool writeLocation_
protected

Optionally write the location if available for this operation.

Definition at line 304 of file volFieldValue.H.


The documentation for this class was generated from the following files: