surfaceFieldValue Class Reference

A face regionType variant of the fieldValues function object. More...

Inheritance diagram for surfaceFieldValue:
[legend]
Collaboration diagram for surfaceFieldValue:
[legend]

Public Types

enum  regionTypes { stFaceZone = 0x01, stPatch = 0x02, stObject = 0x11, stSampled = 0x12 }
 Region type enumeration. More...
 
enum  operationVariant { typeBase = 0, typeScalar = 0x100, typeWeighted = 0x200, typeAbsolute = 0x400 }
 Bitmask values for operation variants. More...
 
enum  operationType {
  opNone = 0, opMin, opMax, opSum,
  opSumMag, opSumDirection, opSumDirectionBalance, opAverage,
  opAreaAverage, opAreaIntegrate, opCoV, opAreaNormalAverage = typeScalar,
  opAreaNormalIntegrate, opUniformity, opWeightedSum = (opSum | typeWeighted), opWeightedAverage = (opAverage | typeWeighted),
  opWeightedAreaAverage = (opAreaAverage | typeWeighted), opWeightedAreaIntegrate = (opAreaIntegrate | typeWeighted), opWeightedUniformity = (opUniformity | typeWeighted), opAbsWeightedSum = (opWeightedSum | typeAbsolute),
  opAbsWeightedAverage = (opWeightedAverage | typeAbsolute), opAbsWeightedAreaAverage = (opWeightedAreaAverage | typeAbsolute), opAbsWeightedAreaIntegrate, opAbsWeightedUniformity
}
 Operation type enumeration. More...
 
enum  postOperationType { postOpNone, postOpMag, postOpSqrt }
 Post-operation type enumeration. More...
 

Public Member Functions

 TypeName ("surfaceFieldValue")
 Declare type-name, virtual type (with debug switch) More...
 
 surfaceFieldValue (const word &name, const Time &runTime, const dictionary &dict)
 Construct from name, Time and dictionary. More...
 
 surfaceFieldValue (const word &name, const objectRegistry &obr, const dictionary &dict)
 Construct from name, objectRegistry and dictionary. More...
 
 surfaceFieldValue (const surfaceFieldValue &)=delete
 No copy construct. More...
 
void operator= (const surfaceFieldValue &)=delete
 No copy assignment. More...
 
virtual ~surfaceFieldValue ()=default
 Destructor. More...
 
regionTypes regionType () const
 Return the region type. More...
 
fileName outputDir () const
 Return the output directory. More...
 
virtual bool read (const dictionary &dict)
 Read from dictionary. More...
 
virtual bool write ()
 Calculate and write. More...
 
virtual void updateMesh (const mapPolyMesh &mpm)
 Update for changes of mesh. More...
 
virtual void movePoints (const polyMesh &mesh)
 Update for changes of mesh. More...
 
template<>
Foam::scalar processValues (const Field< scalar > &values, const vectorField &Sf, const scalarField &weightField) const
 
template<>
Foam::vector processValues (const Field< vector > &values, const vectorField &Sf, const scalarField &weightField) const
 
template<>
Foam::tmp< Foam::scalarFieldweightingFactor (const Field< scalar > &weightField) const
 
template<>
Foam::tmp< Foam::scalarFieldweightingFactor (const Field< scalar > &weightField, const vectorField &Sf) const
 
template<>
Foam::tmp< Foam::scalarFieldweightingFactor (const Field< vector > &weightField, const vectorField &Sf) const
 
template<>
scalar processValues (const Field< scalar > &values, const vectorField &Sf, const scalarField &weightField) const
 Specialisation for scalar fields. More...
 
template<>
vector processValues (const Field< vector > &values, const vectorField &Sf, const scalarField &weightField) const
 Specialisation for vector fields. More...
 
template<>
tmp< scalarFieldweightingFactor (const Field< scalar > &weightField) const
 Specialisation for scalar - pass through. More...
 
template<>
tmp< scalarFieldweightingFactor (const Field< scalar > &weightField, const vectorField &Sf) const
 Specialisation for scalar - scalar * Area. More...
 
template<>
tmp< scalarFieldweightingFactor (const Field< vector > &weightField, const vectorField &Sf) const
 Specialisation for vector - vector (dot) Area. More...
 
template<class Type >
Foam::tmp< Foam::Field< Type > > getFieldValues (const word &fieldName, const bool mandatory) const
 
template<class WeightType >
Foam::tmp< Foam::scalarFieldweightingFactor (const Field< WeightType > &weightField) const
 
template<class WeightType >
Foam::label writeAll (const vectorField &Sf, const Field< WeightType > &weightField, const pointField &points, const faceList &faces)
 
template<class Type >
Foam::tmp< Foam::Field< Type > > filterField (const GeometricField< Type, fvPatchField, volMesh > &field) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > filterField (const GeometricField< Type, fvsPatchField, surfaceMesh > &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 ()=default
 Destructor. More...
 
const dictionarydict () const
 Return the reference to the construction dictionary. More...
 
const wordregionName () const
 Return the region name. More...
 
const wordListfields () const
 Return the list of field names. More...
 
bool writeFields () const
 Return the output field values flag. 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, const dictionary &dict)
 Construct from the region objectRegistry and dictionary. More...
 
virtual ~fvMeshFunctionObject ()=default
 Destructor. 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, const dictionary &dict)
 Construct from the region objectRegistry and dictionary. More...
 
virtual ~regionFunctionObject ()=default
 Destructor. More...
 
template<class ObjectType >
const ObjectType * lookupObjectPtr (const word &fieldName) const
 Deprecated(2018-10) More...
 
template<class ObjectType >
ObjectType * lookupObjectRefPtr (const word &fieldName) const
 Deprecated(2018-10) More...
 
- Public Member Functions inherited from stateFunctionObject
 stateFunctionObject (const word &name, const Time &runTime)
 Construct from components. More...
 
virtual ~stateFunctionObject ()=default
 Destructor. More...
 
dictionarypropertyDict ()
 Return access to the property dictionary. More...
 
bool foundProperty (const word &entryName) const
 Return true if the property exists. More...
 
label getTrigger () const
 Get the current trigger index. More...
 
bool setTrigger (const label triggeri)
 Set the current trigger index. More...
 
bool getDict (const word &entryName, dictionary &dict) const
 Set dictionary, return true if set. More...
 
bool getObjectDict (const word &objectName, const word &entryName, dictionary &dict) const
 Set dictionary from named object, return true if set. More...
 
template<class Type >
Type getProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const
 Retrieve generic property. More...
 
template<class Type >
bool getProperty (const word &entryName, Type &value) const
 Set generic property, return true if set. More...
 
template<class Type >
void setProperty (const word &entryName, const Type &value)
 Add generic property. More...
 
template<class Type >
Type getObjectProperty (const word &objectName, const word &entryName, const Type &defaultValue=Type(Zero)) const
 Retrieve generic property from named object. More...
 
template<class Type >
bool getObjectProperty (const word &objectName, const word &entryName, Type &value) const
 Set generic property from named object, return true if set. More...
 
template<class Type >
void setObjectProperty (const word &objectName, const word &entryName, const Type &value)
 Add generic property from named object. More...
 
template<class Type >
void setResult (const word &entryName, const Type &value)
 Add result. More...
 
template<class Type >
void setObjectResult (const word &objectName, const word &entryName, const Type &value)
 Add result from named object. More...
 
template<class Type >
Type getResult (const word &entryName, const Type &defaultValue=Type(Zero)) const
 Retrieve result. More...
 
template<class Type >
Type getObjectResult (const word &objectName, const word &entryName, const Type &defaultValue=Type(Zero)) const
 Retrieve result from named object. More...
 
template<class Type >
bool getObjectResult (const word &objectName, const word &entryName, Type &value) const
 Set result from named object, return true if set. More...
 
word resultType (const word &entryName) const
 Retrieve the result type. More...
 
word objectResultType (const word &objectName, const word &entryName) const
 Return the type of result. More...
 
List< wordobjectResultEntries () const
 Retrieve the result entries. More...
 
List< wordobjectResultEntries (const word &objectName) const
 Return result entries for named object. More...
 
void writeResultEntries (Ostream &os) const
 Write the results entries for all objects to stream. More...
 
void writeResultEntries (const word &objectName, Ostream &os) const
 Write the results entries for named object to stream. More...
 
void writeAllResultEntries (Ostream &os) const
 Write the results entries for all objects to stream. More...
 
- Public Member Functions inherited from timeFunctionObject
 timeFunctionObject (const word &name, const Time &runTime)
 Construct from Time. More...
 
virtual ~timeFunctionObject ()=default
 Destructor. More...
 
const Timetime () const
 Return time database. More...
 
objectRegistrystoredObjects ()
 
const objectRegistrystoredObjects () const
 
- Public Member Functions inherited from 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)
 Construct from components. More...
 
autoPtr< functionObjectclone () const
 Return clone. More...
 
virtual ~functionObject ()=default
 Destructor. More...
 
const wordname () const
 Return the name of this functionObject. More...
 
virtual bool execute (const label subIndex)
 Execute using the specified subIndex. More...
 
virtual bool end ()
 Called when Time::run() determines that the time-loop exits. More...
 
virtual bool adjustTimeStep ()
 Called at the end of Time::adjustDeltaT() if adjustTime is true. More...
 
virtual bool filesModified () const
 Did any file get changed during execution? More...
 
- Public Member Functions inherited from writeFile
 writeFile (const objectRegistry &obr, const fileName &prefix, const word &name="undefined", const bool writeToFile=true)
 Construct from objectRegistry, prefix, fileName. More...
 
 writeFile (const objectRegistry &obr, const fileName &prefix, const word &name, const dictionary &dict, const bool writeToFile=true)
 
 writeFile (const writeFile &wf)
 Construct copy. More...
 
virtual ~writeFile ()=default
 Destructor. More...
 
virtual OFstreamfile ()
 Return access to the file (if only 1) More...
 
virtual bool writeToFile () const
 Flag to allow writing to file. More...
 
virtual bool canWriteHeader () const
 Flag to allow writing the header. More...
 
virtual label charWidth () const
 Return width of character stream output. More...
 
virtual void writeCommented (Ostream &os, const string &str) const
 Write a commented string to stream. More...
 
virtual void writeTabbed (Ostream &os, const string &str) const
 Write a tabbed string to stream. More...
 
virtual void writeHeader (Ostream &os, const string &str) const
 Write a commented header to stream. More...
 
virtual void writeCurrentTime (Ostream &os) const
 Write the current time to stream. More...
 
virtual void writeBreak (Ostream &os) const
 Write a break marker to the 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...
 

Static Public Attributes

static const Enum< regionTypesregionTypeNames_
 Region type names. More...
 
static const Enum< operationTypeoperationTypeNames_
 Operation type names. More...
 
static const Enum< postOperationTypepostOperationTypeNames_
 Operation type names. More...
 
- Static Public Attributes inherited from functionObject
static int debug
 Flag to execute debug content. More...
 
static bool postProcess
 Global post-processing mode switch. More...
 
static word outputPrefix
 Directory prefix. More...
 
- Static Public Attributes inherited from writeFile
static label addChars = 8
 Additional characters for writing. More...
 

Protected Member Functions

const objectRegistryobr () const
 The volume mesh or surface registry being used. More...
 
bool withSurfaceFields () const
 Can the surface definition sample surface-fields? More...
 
bool withTopologicalMerge () const
 Can use mesh topological merge? More...
 
const labelListfaceId () const
 Return the local list of face IDs. More...
 
const labelListfacePatch () const
 Return the local list of patch ID per face. More...
 
const boolListfaceFlip () const
 Return the local true/false list representing the face flip map. More...
 
bool usesSf () const
 True if the operation needs a surface Sf. More...
 
bool usesMag () const
 True if the operation variant uses mag. More...
 
bool usesWeight () const
 True if the operation variant uses a weight-field. More...
 
template<class WeightType >
bool canWeight (const Field< WeightType > &weightField) const
 True if operation variant uses a weight-field that is available. More...
 
bool update ()
 Update the surface and surface information as required. More...
 
template<class Type >
bool validField (const word &fieldName) const
 Return true if the field name is known and a valid type. More...
 
template<class Type >
tmp< Field< Type > > getFieldValues (const word &fieldName, const bool mandatory=false) const
 Return field values by looking up field name. More...
 
template<class Type , class WeightType >
Type processSameTypeValues (const Field< Type > &values, const vectorField &Sf, const Field< WeightType > &weightField) const
 Apply the 'operation' to the values. Operation must preserve Type. More...
 
template<class Type , class WeightType >
Type processValues (const Field< Type > &values, const vectorField &Sf, const Field< WeightType > &weightField) const
 Apply the 'operation' to the values. Wrapper around. More...
 
template<class Type >
tmp< Field< Type > > filterField (const GeometricField< Type, fvsPatchField, surfaceMesh > &field) const
 Filter a surface field according to faceIds. More...
 
template<class Type >
tmp< Field< Type > > filterField (const GeometricField< Type, fvPatchField, volMesh > &field) const
 Filter a volume field according to faceIds. More...
 
template<class WeightType >
tmp< scalarFieldweightingFactor (const Field< WeightType > &weightField) const
 Weighting factor. More...
 
template<class WeightType >
tmp< scalarFieldweightingFactor (const Field< WeightType > &weightField, const vectorField &Sf) const
 Weighting factor, weight field with the area. More...
 
template<class WeightType >
label writeAll (const vectorField &Sf, const Field< WeightType > &weightField, const pointField &points, const faceList &faces)
 Templated helper function to output field values. More...
 
template<class Type , class WeightType >
bool writeValues (const word &fieldName, const vectorField &Sf, const Field< WeightType > &weightField, const pointField &points, const faceList &faces)
 Templated helper function to output field values. More...
 
virtual void writeFileHeader (Ostream &os)
 Output file header information. More...
 
- Protected Member Functions inherited from fieldValue
template<class Type >
void combineFields (Field< Type > &field)
 Combine fields from all processor domains into single field. More...
 
template<class Type >
void combineFields (tmp< Field< Type >> &)
 Combine fields from all processor domains into single field. More...
 
- Protected Member Functions inherited from fvMeshFunctionObject
 fvMeshFunctionObject (const fvMeshFunctionObject &)=delete
 No copy construct. More...
 
void operator= (const fvMeshFunctionObject &)=delete
 No copy assignment. More...
 
- Protected Member Functions inherited from regionFunctionObject
template<class ObjectType >
bool foundObject (const word &fieldName) const
 Find object (eg, a field) in the (sub) objectRegistry. More...
 
template<class ObjectType >
const ObjectType * cfindObject (const word &fieldName) const
 
template<class ObjectType >
const ObjectType * findObject (const word &fieldName) const
 
template<class ObjectType >
ObjectType * findObject (const word &fieldName)
 
template<class ObjectType >
ObjectType * getObjectPtr (const word &fieldName) const
 
template<class ObjectType >
const ObjectType & lookupObject (const word &fieldName) const
 Lookup and return object (eg, a field) from the (sub) objectRegistry. More...
 
template<class ObjectType >
ObjectType & lookupObjectRef (const word &fieldName) const
 Lookup and return object (eg, a field) from the (sub) objectRegistry. More...
 
template<class ObjectType >
bool store (word &fieldName, const tmp< ObjectType > &tfield, bool cacheable=false)
 Store the field in the (sub) objectRegistry under the given name. More...
 
bool writeObject (const word &fieldName)
 Write field if present in the (sub) objectRegistry. More...
 
bool clearObject (const word &fieldName)
 Clear field from the (sub) objectRegistry if present. More...
 
void clearObjects (const wordList &objNames)
 Clear fields from the (sub) objectRegistry if present. More...
 
 regionFunctionObject (const regionFunctionObject &)=delete
 No copy construct. More...
 
void operator= (const regionFunctionObject &)=delete
 No copy assignment. More...
 
- Protected Member Functions inherited from stateFunctionObject
const IOdictionarystateDict () const
 Return a const reference to the state dictionary. More...
 
IOdictionarystateDict ()
 Return non-const access to the state dictionary. More...
 
 stateFunctionObject (const stateFunctionObject &)=delete
 No copy construct. More...
 
void operator= (const stateFunctionObject &)=delete
 No copy assignment. More...
 
- Protected Member Functions inherited from timeFunctionObject
void clearOutputObjects (const wordList &objNames)
 Remove specified items from "functionObjectObjects". More...
 
 timeFunctionObject (const timeFunctionObject &)=delete
 No copy construct. More...
 
void operator= (const timeFunctionObject &)=delete
 No copy assignment. More...
 
- Protected Member Functions inherited from functionObject
word scopedName (const word &name) const
 Return a scoped name, e.g. used to construct local field names. More...
 
- Protected Member Functions inherited from writeFile
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...
 
virtual autoPtr< OFstreamcreateFile (const word &name, scalar timeValue) const
 Return autoPtr to a new file for a given time. More...
 
virtual autoPtr< OFstreamcreateFile (const word &name) const
 Return autoPtr to a new file using the simulation start time. More...
 
virtual void resetFile (const word &name)
 Reset internal file pointer to new file with new name. More...
 
Omanip< int > valueWidth (const label offset=0) const
 Return the value width when writing to stream with optional offset. More...
 
void operator= (const writeFile &)=delete
 No copy assignment. More...
 

Protected Attributes

regionTypes regionType_
 Region type. More...
 
operationType operation_
 Operation to apply to values. More...
 
postOperationType postOperation_
 Optional post-evaluation operation. More...
 
bool needsUpdate_
 Track if the surface needs an update. More...
 
bool writeArea_
 Optionally write the area of the surfaceFieldValue. More...
 
wordRes selectionNames_
 Extended selections. More...
 
wordList weightFieldNames_
 Weight field name(s) - optional. More...
 
scalar totalArea_
 Total area of the surfaceFieldValue. More...
 
label nFaces_
 Global number of faces. More...
 
labelList faceId_
 Local list of face IDs. More...
 
labelList facePatchId_
 Local list of patch ID per face. More...
 
boolList faceFlip_
 List representing the face flip map. More...
 
autoPtr< sampledSurfacesampledPtr_
 The sampledSurface (when operating on sampledSurface) More...
 
autoPtr< surfaceWritersurfaceWriterPtr_
 Surface writer. More...
 
- Protected Attributes inherited from fieldValue
bool writeFields_
 Flag to output field values. More...
 
word regionName_
 Name of region (patch, zone, etc.) More...
 
scalar scaleFactor_
 Scaling factor. More...
 
dictionary dict_
 Construction dictionary. More...
 
wordList fields_
 Names of operand fields. More...
 
- Protected Attributes inherited from fvMeshFunctionObject
const fvMeshmesh_
 Reference to the fvMesh. More...
 
- Protected Attributes inherited from regionFunctionObject
word subRegistryName_
 Name for alternative object registry. More...
 
const objectRegistryobr_
 Reference to the region objectRegistry. More...
 
const objectRegistryobrPtr_
 Pointer to alternative (eg, sub-region) objectRegistry. More...
 
- Protected Attributes inherited from timeFunctionObject
const Timetime_
 Reference to the time database. More...
 
- Protected Attributes inherited from writeFile
const objectRegistryfileObr_
 Reference to the region objectRegistry. More...
 
const fileName prefix_
 Prefix. More...
 
word fileName_
 Name of file. More...
 
autoPtr< OFstreamfilePtr_
 File pointer. More...
 
label writePrecision_
 Write precision. More...
 
bool writeToFile_
 Flag to enable/disable writing to file. More...
 
bool updateHeader_
 
bool writtenHeader_
 Flag to identify whether the header has been written. More...
 
bool useUserTime_
 
scalar startTime_
 Start time value. 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 &runTime, const dictionary &dict)
 Select from dictionary, based on its "type" entry. More...
 
- Public Attributes inherited from functionObject
bool log
 Flag to write log into Info. More...
 

Detailed Description

A face regionType variant of the fieldValues function object.

Given a list of user-specified fields and a selection of mesh (or general surface) faces, a number of operations can be performed, such as sums, averages and integrations.

For example, to calculate the volumetric or mass flux across a patch, apply the sum operator to the flux field (typically phi).

Usage
A minimal example:
surfaceFieldValuePatch1
{
    // Mandatory entries (unmodifiable)
    type            surfaceFieldValue;
    libs            (fieldFunctionObjects);

    // Mandatory entries (runtime modifiable)
    fields          (<field1> <field2> ... <fieldN>);
    operation       <operationType>;
    regionType      patch;
    name            <patch>;

    // Optional entries (runtime modifiable)
    names           (<patch-name> <patch-regex>);

    postOperation   none;
    weightField     alpha1;
    scaleFactor     1.0;
    writeArea       false;
    surfaceFormat   none;

    // Optional (inherited) entries
    ...
}

surfaceFieldValueFaceZone1
{
    // Mandatory entries (unmodifiable)
    type            surfaceFieldValue;
    libs            (fieldFunctionObjects);

    // Mandatory entries (runtime modifiable)
    fields          (<field1> <field2> ... <fieldN>);
    operation       <operationType>;
    regionType      faceZone;
    name            <faceZone>;

    // Optional entries (runtime modifiable)
    names           (<zone-name> <zone-regex>);

    postOperation   none;
    weightFields    (rho U);
    scaleFactor     1.0;
    writeArea       false;
    surfaceFormat   none;

    // Optional (inherited) entries
    ...
}

where the entries mean:

Property Description Type Reqd Dflt
type Type name: surfaceFieldValue word yes -
libs Libraries: fieldFunctionObjects wordList yes -
regionType Face regionType: see below word yes -
fields Names of operand fields wordList yes -
name Name of the regionType word yes -
names Extended selection word/regex list no -
operation Operation type: see below word yes -
postOperation Post-operation type: see below word no none
weightField Name of field to apply weighting word maybe
weightFields Names of fields to apply weighting wordList maybe
scaleFactor Output value scaling factor scalar no 1.0
writeArea Write the surface area bool no false
surfaceFormat Output value format word conditional on writeFields none

The inherited entries are elaborated in:

Options for the regionType entry:

faceZone : The name entry specifies a faceZone. Supports names
patch : The name entry specifies a patch. Supports names
functionObjectSurface : The name entry specifies a polySurface
sampledSurface : A sampledSurfaceDict sub-dictionary and name

Options for the operation entry:

none : no operation
min : minimum
max : maximum
sum : sum
sumMag : sum of component magnitudes
sumDirection : sum values that are positive in given direction
sumDirectionBalance : sum of balance of values in given direction
average : ensemble average
areaAverage : area-weighted average
areaIntegrate : area integral
CoV : coefficient of variation: standard deviation/mean
areaNormalAverage : area-weighted average in face normal direction
areaNormalIntegrate : area-weighted integral in face normal directon
uniformity : uniformity index
weightedSum : weighted sum
weightedAverage : weighted average
weightedAreaAverage : weighted area average
weightedAreaIntegrate : weighted area integral
weightedUniformity : weighted uniformity index
absWeightedSum : sum using absolute weighting
absWeightedAverage : average using absolute weighting
absWeightedAreaAverage : area average using absolute weighting
absWeightedAreaIntegrate : area integral using absolute weighting
absWeightedUniformity : uniformity index using absolute weighting

Options for the postOperation entry:

none : No additional operation after calculation
mag : Component-wise mag() after normal operation
sqrt : Component-wise sqrt() after normal operation

Usage by the postProcess utility is not available.

Note
  • Some types (eg, patch or faceZone) support the selection of multiple entries, which can be specified as list of words or regular expressions by names entry.
    If the names enty exists and contains a literal that can be used as a suitable value for name, the name entry becomes optional instead of being mandatory.
  • The values reported by the areaNormalAverage and areaNormalIntegrate operations are written as the first component of a field with the same rank as the input field.
  • Faces on empty patches are ignored.
  • Using functionObjectSurface:
    • The keyword subRegion should not be used to select surfaces. Instead specify the regionType 'functionObjectSurface' and provide the name.
  • Using sampledSurface:
    • not available for surface fields
    • if interpolate=true they use interpolationCellPoint otherwise they use cell values
    • each triangle in sampledSurface is logically only in one cell so interpolation will be wrong when triangles are larger than cells. This can only happen for sampling on a triSurfaceMesh
    • take care when using isoSurfaces - these might have duplicate triangles and so integration might be wrong

Uniformity:

\[ UI(\phi) = 1 - \frac{1}{2 \overline{\phi} A} \int{\left| W \phi \cdot \hat{n} - \bar{W} \bar{\phi}\right| d\vec{A}} \,,\; \bar{\phi} = \frac{\int{W \phi \cdot d\vec{A}}}{\int{W \cdot d\vec{A}}} \]

A velocity uniformity index is calculated with no weighting (W=1) and \( \phi = \vec{U} \).

A scalar concentration uniformity index is calculated with either \( \rho \vec U \) or \( \vec U \) for weighting and \( \phi = conc \).

See also
  • Foam::functionObject
  • Foam::functionObjects::fieldValues::fieldValue
  • ExtendedCodeGuide::functionObjects::field::surfaceFieldValue
Source files

Definition at line 453 of file surfaceFieldValue.H.

Member Enumeration Documentation

◆ regionTypes

Region type enumeration.

Enumerator
stFaceZone 

Calculate with faceZone(s)

stPatch 

Calculate with patch(es)

stObject 

Calculate with function object surface.

stSampled 

Sample onto surface and calculate.

Definition at line 462 of file surfaceFieldValue.H.

◆ operationVariant

Bitmask values for operation variants.

Enumerator
typeBase 

Base operation.

typeScalar 

Operation returns a scalar.

typeWeighted 

Operation using weighting.

typeAbsolute 

Operation using mag (eg, for weighting)

Definition at line 474 of file surfaceFieldValue.H.

◆ operationType

Operation type enumeration.

Enumerator
opNone 

No operation.

opMin 

Minimum value.

opMax 

Maximum value.

opSum 

Sum of values.

opSumMag 

Sum of component magnitudes.

opSumDirection 

Sum in a given direction.

opSumDirectionBalance 

Sum of balance of values in given direction.

opAverage 

Ensemble average.

opAreaAverage 

Area average.

opAreaIntegrate 

Area integral.

opCoV 

Coefficient of variation.

opAreaNormalAverage 

Area average in normal direction (output is always scalar)

opAreaNormalIntegrate 

Area integral in normal direction (output is always scalar)

opUniformity 

Uniformity index (output is always scalar)

opWeightedSum 

Weighted sum.

opWeightedAverage 

Weighted average.

opWeightedAreaAverage 

Weighted area average.

opWeightedAreaIntegrate 

Weighted area integral.

opWeightedUniformity 

Weighted uniformity index.

opAbsWeightedSum 

Sum using abs weighting.

opAbsWeightedAverage 

Average using abs weighting.

opAbsWeightedAreaAverage 

Area average using abs weighting.

opAbsWeightedAreaIntegrate 

Area integral using abs weighting.

opAbsWeightedUniformity 

Uniformity index using abs weighting.

Definition at line 483 of file surfaceFieldValue.H.

◆ postOperationType

Post-operation type enumeration.

Enumerator
postOpNone 

No additional operation after calculation.

postOpMag 

Component-wise mag after normal operation.

postOpSqrt 

Component-wise sqrt after normal operation.

Definition at line 555 of file surfaceFieldValue.H.

Constructor & Destructor Documentation

◆ surfaceFieldValue() [1/3]

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

Construct from name, Time and dictionary.

Definition at line 901 of file surfaceFieldValue.C.

References dict, and Foam::read().

Here is the call graph for this function:

◆ surfaceFieldValue() [2/3]

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

Construct from name, objectRegistry and dictionary.

Definition at line 935 of file surfaceFieldValue.C.

References dict, and Foam::read().

Here is the call graph for this function:

◆ surfaceFieldValue() [3/3]

surfaceFieldValue ( const surfaceFieldValue )
delete

No copy construct.

◆ ~surfaceFieldValue()

virtual ~surfaceFieldValue ( )
virtualdefault

Destructor.

Member Function Documentation

◆ obr()

const Foam::objectRegistry & obr ( ) const
protectedvirtual

The volume mesh or surface registry being used.

Reimplemented from regionFunctionObject.

Definition at line 120 of file surfaceFieldValue.C.

References objectRegistry::lookupObject(), fvMeshFunctionObject::mesh_, fieldValue::regionName_, surfaceFieldValue::regionType_, surfaceFieldValue::stObject, and timeFunctionObject::storedObjects().

Here is the call graph for this function:

◆ withSurfaceFields()

bool withSurfaceFields ( ) const
inlineprotected

Can the surface definition sample surface-fields?

Definition at line 35 of file surfaceFieldValueI.H.

References surfaceFieldValue::regionType_, surfaceFieldValue::sampledPtr_, surfaceFieldValue::stFaceZone, and surfaceFieldValue::stPatch.

◆ withTopologicalMerge()

bool withTopologicalMerge ( ) const
inlineprotected

Can use mesh topological merge?

Definition at line 47 of file surfaceFieldValueI.H.

◆ faceId()

const Foam::labelList & faceId ( ) const
inlineprotected

Return the local list of face IDs.

Definition at line 54 of file surfaceFieldValueI.H.

◆ facePatch()

const Foam::labelList & facePatch ( ) const
inlineprotected

Return the local list of patch ID per face.

Definition at line 61 of file surfaceFieldValueI.H.

◆ faceFlip()

const Foam::boolList & faceFlip ( ) const
inlineprotected

Return the local true/false list representing the face flip map.

Definition at line 68 of file surfaceFieldValueI.H.

◆ usesSf()

bool usesSf ( ) const
protected

True if the operation needs a surface Sf.

Definition at line 552 of file surfaceFieldValue.C.

◆ usesMag()

bool usesMag ( ) const
inlineprotected

True if the operation variant uses mag.

Definition at line 77 of file surfaceFieldValueI.H.

◆ usesWeight()

bool usesWeight ( ) const
inlineprotected

True if the operation variant uses a weight-field.

Definition at line 85 of file surfaceFieldValueI.H.

◆ canWeight()

bool canWeight ( const Field< WeightType > &  weightField) const
inlineprotected

True if operation variant uses a weight-field that is available.

Checks for availability on any processor.

Definition at line 42 of file surfaceFieldValueTemplates.C.

References Foam::returnReduce().

Here is the call graph for this function:

◆ update()

bool update ( )
protected

Update the surface and surface information as required.

Do nothing (and return false) if no update was required

Definition at line 574 of file surfaceFieldValue.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Log, Foam::name(), Foam::nl, Foam::returnReduce(), s, and Foam::type().

Here is the call graph for this function:

◆ validField()

bool validField ( const word fieldName) const
protected

Return true if the field name is known and a valid type.

Definition at line 56 of file surfaceFieldValueTemplates.C.

◆ getFieldValues() [1/2]

tmp<Field<Type> > getFieldValues ( const word fieldName,
const bool  mandatory = false 
) const
protected

Return field values by looking up field name.

◆ processSameTypeValues()

Type processSameTypeValues ( const Field< Type > &  values,
const vectorField Sf,
const Field< WeightType > &  weightField 
) const
protected

Apply the 'operation' to the values. Operation must preserve Type.

Definition at line 132 of file surfaceFieldValueTemplates.C.

References Foam::cmptMag(), Foam::component(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::gMax(), Foam::gMin(), Foam::gSum(), Foam::mag(), n, Foam::returnReduce(), Foam::setComponent(), Foam::sqr(), Foam::sqrt(), Foam::HashTableOps::values(), and Foam::Zero.

Here is the call graph for this function:

◆ processValues() [1/5]

Type processValues ( const Field< Type > &  values,
const vectorField Sf,
const Field< WeightType > &  weightField 
) const
protected

Apply the 'operation' to the values. Wrapper around.

processSameTypeValues. See also template specialisation below.

Definition at line 293 of file surfaceFieldValueTemplates.C.

References Foam::HashTableOps::values().

Here is the call graph for this function:

◆ filterField() [1/4]

tmp<Field<Type> > filterField ( const GeometricField< Type, fvsPatchField, surfaceMesh > &  field) const
protected

Filter a surface field according to faceIds.

◆ filterField() [2/4]

tmp<Field<Type> > filterField ( const GeometricField< Type, fvPatchField, volMesh > &  field) const
protected

Filter a volume field according to faceIds.

◆ weightingFactor() [1/9]

tmp<scalarField> weightingFactor ( const Field< WeightType > &  weightField) const
protected

Weighting factor.

Possibly applies mag() depending on the operation type.

◆ weightingFactor() [2/9]

tmp<scalarField> weightingFactor ( const Field< WeightType > &  weightField,
const vectorField Sf 
) const
protected

Weighting factor, weight field with the area.

Possibly applies mag() depending on the operation type. Reverts to mag(Sf) if the weight field is not available.

◆ writeAll() [1/2]

label writeAll ( const vectorField Sf,
const Field< WeightType > &  weightField,
const pointField points,
const faceList faces 
)
protected

Templated helper function to output field values.

◆ writeValues()

bool writeValues ( const word fieldName,
const vectorField Sf,
const Field< WeightType > &  weightField,
const pointField points,
const faceList faces 
)
protected

Templated helper function to output field values.

Definition at line 358 of file surfaceFieldValueTemplates.C.

References Foam::component(), Foam::endl(), Log, Foam::mag(), points, Foam::setComponent(), Foam::sqrt(), Foam::tab, and Foam::HashTableOps::values().

Here is the call graph for this function:

◆ writeFileHeader()

void writeFileHeader ( Ostream os)
protectedvirtual

Output file header information.

Definition at line 635 of file surfaceFieldValue.C.

References Foam::endl(), Foam::flatOutput(), Foam::nl, and Foam::tab.

Here is the call graph for this function:

◆ TypeName()

TypeName ( "surfaceFieldValue"  )

Declare type-name, virtual type (with debug switch)

◆ operator=()

void operator= ( const surfaceFieldValue )
delete

No copy assignment.

◆ regionType()

Return the region type.

Definition at line 93 of file surfaceFieldValueI.H.

◆ outputDir()

Foam::fileName outputDir ( ) const
inline

Return the output directory.

Definition at line 100 of file surfaceFieldValueI.H.

References Foam::name().

Here is the call graph for this function:

◆ read()

bool read ( const dictionary dict)
virtual

Read from dictionary.

Reimplemented from fieldValue.

Definition at line 971 of file surfaceFieldValue.C.

References List< T >::append(), Foam::expressions::patchExpr::debug, dict, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, Foam::flatOutput(), Foam::Info, keyType::LITERAL, Foam::name(), surfaceWriter::New(), sampledSurface::New(), Foam::nl, fieldValue::read(), Foam::type(), and WarningInFunction.

Here is the call graph for this function:

◆ write()

bool write ( )
virtual

Calculate and write.

Reimplemented from fieldValue.

Definition at line 1154 of file surfaceFieldValue.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, Foam::flatOutput(), Log, UPstream::master(), Foam::nl, points, s, Foam::tab, update(), and fieldValue::write().

Here is the call graph for this function:

◆ updateMesh()

void updateMesh ( const mapPolyMesh mpm)
virtual

Update for changes of mesh.

Reimplemented from functionObject.

Definition at line 1299 of file surfaceFieldValue.C.

◆ movePoints()

void movePoints ( const polyMesh mesh)
virtual

Update for changes of mesh.

Reimplemented from functionObject.

Definition at line 1308 of file surfaceFieldValue.C.

◆ processValues() [2/5]

Foam::scalar processValues ( const Field< scalar > &  values,
const vectorField Sf,
const scalarField weightField 
) const

Definition at line 682 of file surfaceFieldValue.C.

References Foam::gSum(), Foam::mag(), Foam::max(), Foam::min(), n, Foam::neg(), Foam::pos0(), and Foam::HashTableOps::values().

Here is the call graph for this function:

◆ processValues() [3/5]

Foam::vector processValues ( const Field< vector > &  values,
const vectorField Sf,
const scalarField weightField 
) const

Definition at line 753 of file surfaceFieldValue.C.

References Foam::gSum(), Foam::mag(), Foam::max(), Foam::min(), n, Vector< Cmpt >::normalise(), Foam::pos0(), and Foam::HashTableOps::values().

Here is the call graph for this function:

◆ weightingFactor() [3/9]

Foam::tmp<Foam::scalarField> weightingFactor ( const Field< scalar > &  weightField) const

Definition at line 836 of file surfaceFieldValue.C.

References Foam::mag().

Here is the call graph for this function:

◆ weightingFactor() [4/9]

Foam::tmp<Foam::scalarField> weightingFactor ( const Field< scalar > &  weightField,
const vectorField Sf 
) const

Definition at line 853 of file surfaceFieldValue.C.

References Foam::mag(), and Foam::returnReduce().

Here is the call graph for this function:

◆ weightingFactor() [5/9]

Foam::tmp<Foam::scalarField> weightingFactor ( const Field< vector > &  weightField,
const vectorField Sf 
) const

Definition at line 877 of file surfaceFieldValue.C.

References Foam::mag(), and Foam::returnReduce().

Here is the call graph for this function:

◆ processValues() [4/5]

scalar processValues ( const Field< scalar > &  values,
const vectorField Sf,
const scalarField weightField 
) const

Specialisation for scalar fields.

◆ processValues() [5/5]

vector processValues ( const Field< vector > &  values,
const vectorField Sf,
const scalarField weightField 
) const

Specialisation for vector fields.

◆ weightingFactor() [6/9]

tmp<scalarField> weightingFactor ( const Field< scalar > &  weightField) const

Specialisation for scalar - pass through.

◆ weightingFactor() [7/9]

tmp<scalarField> weightingFactor ( const Field< scalar > &  weightField,
const vectorField Sf 
) const

Specialisation for scalar - scalar * Area.

◆ weightingFactor() [8/9]

tmp<scalarField> weightingFactor ( const Field< vector > &  weightField,
const vectorField Sf 
) const

Specialisation for vector - vector (dot) Area.

◆ getFieldValues() [2/2]

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

Definition at line 76 of file surfaceFieldValueTemplates.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, fld, Foam::New(), and Foam::nl.

Here is the call graph for this function:

◆ weightingFactor() [9/9]

Foam::tmp<Foam::scalarField> weightingFactor ( const Field< WeightType > &  weightField) const

Definition at line 306 of file surfaceFieldValueTemplates.C.

References Foam::mag().

Here is the call graph for this function:

◆ writeAll() [2/2]

Foam::label writeAll ( const vectorField Sf,
const Field< WeightType > &  weightField,
const pointField points,
const faceList faces 
)

Definition at line 318 of file surfaceFieldValueTemplates.C.

References Foam::endl(), points, and WarningInFunction.

Here is the call graph for this function:

◆ filterField() [3/4]

Foam::tmp<Foam::Field<Type> > filterField ( const GeometricField< Type, fvPatchField, volMesh > &  field) const

Definition at line 494 of file surfaceFieldValueTemplates.C.

References field(), forAll, Foam::New(), and Foam::HashTableOps::values().

Here is the call graph for this function:

◆ filterField() [4/4]

Foam::tmp<Foam::Field<Type> > filterField ( const GeometricField< Type, fvsPatchField, surfaceMesh > &  field) const

Definition at line 530 of file surfaceFieldValueTemplates.C.

References Foam::expressions::patchExpr::debug, Foam::endl(), field(), forAll, Foam::New(), Foam::Pout, and Foam::HashTableOps::values().

Here is the call graph for this function:

Member Data Documentation

◆ regionTypeNames_

Region type names.

Definition at line 471 of file surfaceFieldValue.H.

◆ operationTypeNames_

Operation type names.

Definition at line 551 of file surfaceFieldValue.H.

◆ postOperationTypeNames_

Operation type names.

Definition at line 563 of file surfaceFieldValue.H.

◆ regionType_

regionTypes regionType_
protected

Region type.

Definition at line 599 of file surfaceFieldValue.H.

Referenced by surfaceFieldValue::obr(), and surfaceFieldValue::withSurfaceFields().

◆ operation_

operationType operation_
protected

Operation to apply to values.

Definition at line 602 of file surfaceFieldValue.H.

◆ postOperation_

postOperationType postOperation_
protected

Optional post-evaluation operation.

Definition at line 605 of file surfaceFieldValue.H.

◆ needsUpdate_

bool needsUpdate_
protected

Track if the surface needs an update.

Definition at line 608 of file surfaceFieldValue.H.

◆ writeArea_

bool writeArea_
protected

Optionally write the area of the surfaceFieldValue.

Definition at line 611 of file surfaceFieldValue.H.

◆ selectionNames_

wordRes selectionNames_
protected

Extended selections.

Definition at line 614 of file surfaceFieldValue.H.

◆ weightFieldNames_

wordList weightFieldNames_
protected

Weight field name(s) - optional.

Definition at line 617 of file surfaceFieldValue.H.

◆ totalArea_

scalar totalArea_
protected

Total area of the surfaceFieldValue.

Definition at line 620 of file surfaceFieldValue.H.

◆ nFaces_

label nFaces_
protected

Global number of faces.

Definition at line 623 of file surfaceFieldValue.H.

◆ faceId_

labelList faceId_
protected

Local list of face IDs.

Definition at line 629 of file surfaceFieldValue.H.

◆ facePatchId_

labelList facePatchId_
protected

Local list of patch ID per face.

Definition at line 632 of file surfaceFieldValue.H.

◆ faceFlip_

boolList faceFlip_
protected

List representing the face flip map.

(false: use as-is, true: negate)

Definition at line 636 of file surfaceFieldValue.H.

◆ sampledPtr_

autoPtr<sampledSurface> sampledPtr_
protected

The sampledSurface (when operating on sampledSurface)

Definition at line 642 of file surfaceFieldValue.H.

Referenced by surfaceFieldValue::withSurfaceFields().

◆ surfaceWriterPtr_

autoPtr<surfaceWriter> surfaceWriterPtr_
protected

Surface writer.

Definition at line 645 of file surfaceFieldValue.H.


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