Computes forces and moments over a given list of patches by integrating pressure and viscous forces and moments, and optionally resistance forces and moments from porous zones.
More...
|
| TypeName ("forces") |
| Runtime type information. More...
|
|
| forces (const word &name, const Time &runTime, const dictionary &dict, const bool readFields=true) |
| Construct from Time and dictionary. More...
|
|
| forces (const word &name, const objectRegistry &obr, const dictionary &dict, const bool readFields=true) |
| Construct from objectRegistry and dictionary. More...
|
|
| forces (const forces &)=delete |
| No copy construct. More...
|
|
void | operator= (const forces &)=delete |
| No copy assignment. More...
|
|
virtual | ~forces ()=default |
| Destructor. More...
|
|
virtual bool | read (const dictionary &dict) |
| Read the dictionary. More...
|
|
virtual void | calcForcesMoments () |
| Calculate forces and moments. More...
|
|
virtual vector | forceEff () const |
| Return the total force. More...
|
|
virtual vector | momentEff () const |
| Return the total moment. More...
|
|
virtual bool | execute () |
| Execute the function object. More...
|
|
virtual bool | write () |
| Write to data files/fields and to streams. More...
|
|
| 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...
|
|
| 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...
|
|
| stateFunctionObject (const word &name, const Time &runTime) |
| Construct from components. More...
|
|
virtual | ~stateFunctionObject ()=default |
| Destructor. More...
|
|
dictionary & | propertyDict () |
| Return access to the property dictionary. More...
|
|
bool | foundProperty (const word &entryName) const |
| Return true if the property exists. More...
|
|
void | clearTrigger () |
| Remove the trigger index from the properties. More...
|
|
label | getTrigger () const |
| Get the current trigger index. More...
|
|
bool | setTrigger (const label triggeri) |
| Set new 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...
|
|
wordList | objectResultEntries () const |
| Retrieve the result entries. More...
|
|
wordList | objectResultEntries (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...
|
|
| timeFunctionObject (const word &name, const Time &runTime) |
| Construct from Time. More...
|
|
virtual | ~timeFunctionObject ()=default |
| Destructor. More...
|
|
const Time & | time () const |
| Return time database. More...
|
|
objectRegistry & | storedObjects () |
| Write access to the output objects ("functionObjectObjects") registered on Time. More...
|
|
const objectRegistry & | storedObjects () const |
| Const access to the output objects ("functionObjectObjects") registered on Time. More...
|
|
| declareRunTimeSelectionTable (autoPtr, functionObject, dictionary,(const word &name, const Time &runTime, const dictionary &dict),(name, runTime, dict)) |
|
| functionObject (const word &name, const bool withNamePrefix=defaultUseNamePrefix) |
| Construct from components. More...
|
|
autoPtr< functionObject > | clone () const |
| Return clone. More...
|
|
virtual | ~functionObject ()=default |
| Destructor. More...
|
|
virtual const word & | type () const =0 |
| Runtime type information. More...
|
|
const word & | name () const noexcept |
| Return the name of this functionObject. More...
|
|
bool | useNamePrefix () const noexcept |
| Return the flag for adding a scoping name prefix. More...
|
|
bool | useNamePrefix (bool on) noexcept |
| Modify the flag for adding a scoping name prefix. 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...
|
|
virtual void | updateMesh (const mapPolyMesh &mpm) |
| Update for changes of mesh. More...
|
|
virtual void | movePoints (const polyMesh &mesh) |
| Update for changes of mesh. More...
|
|
| 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) |
| Construct from objectRegistry, prefix, fileName and read options from dictionary. More...
|
|
| writeFile (const writeFile &wf) |
| Construct copy. More...
|
|
virtual | ~writeFile ()=default |
| Destructor. More...
|
|
virtual OFstream & | file () |
| Return access to the file (if only 1) More...
|
|
virtual bool | writeToFile () const |
| Flag to allow writing to file. More...
|
|
virtual bool | canWriteToFile () const |
| Flag to allow writing to the file. More...
|
|
virtual bool | canResetFile () const |
| Flag to allow resetting the 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...
|
|
template<class Type > |
void | writeValue (Ostream &os, const Type &val) const |
| Write a given value to stream with the space delimiter. More...
|
|
|
void | setCoordinateSystem (const dictionary &dict, const word &e3Name=word::null, const word &e1Name=word::null) |
| Set the co-ordinate system from dictionary and axes names. More...
|
|
volVectorField & | force () |
| Return access to the force field. More...
|
|
volVectorField & | moment () |
| Return access to the moment field. More...
|
|
void | initialise () |
| Initialise containers and fields. More...
|
|
void | reset () |
| Reset containers and fields. More...
|
|
tmp< symmTensorField > | devRhoReff (const tensorField &gradUp, const label patchi) const |
| Return the effective stress (viscous + turbulent) for patch. More...
|
|
tmp< volScalarField > | mu () const |
| Return dynamic viscosity field. More...
|
|
tmp< volScalarField > | rho () const |
| Return rho if specified otherwise rhoRef. More...
|
|
tmp< scalarField > | rho (const label patchi) const |
| Return rho if specified otherwise rhoRef for patch. More...
|
|
scalar | rho (const volScalarField &p) const |
| Return rhoRef if the pressure field is dynamic (i.e. p/rho), otherwise return 1. More...
|
|
void | addToPatchFields (const label patchi, const vectorField &Md, const vectorField &fP, const vectorField &fV) |
| Add patch contributions to force and moment fields. More...
|
|
void | addToInternalField (const labelList &cellIDs, const vectorField &Md, const vectorField &f) |
| Add cell contributions to force and moment fields, and include porosity effects. More...
|
|
void | createIntegratedDataFiles () |
| Create the integrated-data files. More...
|
|
void | writeIntegratedDataFileHeader (const word &header, OFstream &os) const |
| Write header for an integrated-data file. More...
|
|
void | writeIntegratedDataFiles () |
| Write integrated data to files. More...
|
|
void | writeIntegratedDataFile (const vector &pres, const vector &vis, const vector &internal, OFstream &os) const |
| Write integrated data to a file. More...
|
|
void | logIntegratedData (const string &descriptor, const vector &pres, const vector &vis, const vector &internal) const |
| Write integrated data to stream. More...
|
|
| fvMeshFunctionObject (const fvMeshFunctionObject &)=delete |
| No copy construct. More...
|
|
void | operator= (const fvMeshFunctionObject &)=delete |
| No copy assignment. More...
|
|
virtual const objectRegistry & | obr () const |
| The region or sub-region registry being used. More...
|
|
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 |
| Return const pointer to the object (eg, a field) in the (sub) objectRegistry. More...
|
|
template<class ObjectType > |
const ObjectType * | findObject (const word &fieldName) const |
| Return const pointer to the object (eg, a field) in the (sub) objectRegistry. More...
|
|
template<class ObjectType > |
ObjectType * | findObject (const word &fieldName) |
| Return non-const pointer to the object of the given Type, (sub) objectRegistry. More...
|
|
template<class ObjectType > |
ObjectType * | getObjectPtr (const word &fieldName) const |
| Return non-const pointer to the object of the given Type, using a const-cast to have it behave like a mutable. More...
|
|
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...
|
|
template<class ObjectType > |
bool | storeInDb (const word &fieldName, const tmp< ObjectType > &tfield, const objectRegistry &obr) |
| Store the field in an optional 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...
|
|
const functionObjects::properties & | stateDict () const |
| Return a const reference to the state dictionary. More...
|
|
functionObjects::properties & | stateDict () |
| 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...
|
|
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...
|
|
word | scopedName (const word &name) const |
| Return a scoped (prefixed) name. 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...
|
|
fileName | filePath (const fileName &fName) const |
| Return the full path for the supplied file name. More...
|
|
virtual autoPtr< OFstream > | newFile (const fileName &fName) const |
| Return autoPtr to a new file using file name. More...
|
|
virtual autoPtr< OFstream > | newFileAtTime (const word &name, scalar timeValue) const |
| Return autoPtr to a new file for a given time. More...
|
|
virtual autoPtr< OFstream > | newFileAtStartTime (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...
|
|
virtual autoPtr< OFstream > | createFile (const word &name, scalar timeValue) const |
| Deprecated(2022-09) Return autoPtr to a new file for a given time. More...
|
|
virtual autoPtr< OFstream > | createFile (const word &name) const |
| Deprecated(2022-09) Return autoPtr to a new file using the simulation start time. More...
|
|
Computes forces and moments over a given list of patches by integrating pressure and viscous forces and moments, and optionally resistance forces and moments from porous zones.
Forces and moments are output in their total and constituent components:
- total forces and moments
- pressure contributions
- viscous contributions
- porous resistance contributions (optional)
Forces and moments can be computed and output in:
- the global Cartesian coordinate system (default)
- a user-defined Cartesian coordinate system
Operands:
Operand | Type | Location |
input | - | - |
output file | dat | postProcessing/<FO>/<time>/<file>s |
output field | volVectorField | <time>/<outField>s |
where <file>s:
force.dat | Forces
moment.dat | Moments
where <outField>s:
<namePrefix>:force | Force field
<namePrefix>:moment | Moment field
- Usage
- Minimal example by using
system/controlDict.functions
: <namePrefix>
{
// Mandatory entries
type forces;
libs (forces);
patches (<wordRes>);
// Optional entries
directForceDensity <bool>;
porosity <bool>;
writeFields <bool>;
useNamePrefix <bool>;
// Conditional mandatory entries
// if directForceDensity == true
fD <word>;
// Cartesian coordinate system specification when
// evaluating forces and moments, either of the below
// Define the centre of rotation
// with implicit directions e1=(1 0 0) and e3=(0 0 1)
CofR (0 0 0); // Centre of rotation
// Define local coordinate system by origin + axes
origin (0 0 0);
e1 (1 0 0);
e3 (0 0 1); // (e1, e2) or (e2, e3) or (e3, e1)
// General coordinate system specification (always cartesian)
coordinateSystem
{
origin (0 0 0);
rotation
{
type axes;
e3 (0 0 1);
e1 (1 0 0); // (e1, e2) or (e2, e3) or (e3, e1)
}
}
// Conditional optional entries
// if directForceDensity == false
p <word>;
U <word>;
rho <word>;
rhoInf <scalar>; // enabled if rho=rhoInf
pRef <scalar>;
// Inherited entries
...
}
where the entries mean:
Property | Description | Type | Reqd | Deflt |
type | Type name: forces | word | yes | - |
libs | Library name: forces | word | yes | - |
patches | Names of operand patches | wordRes | yes | - |
directForceDensity | Flag to directly supply force density | bool | no | false |
porosity | Flag to include porosity contributions | bool | no | false |
writeFields | Flag to write force and moment fields | bool | no | false |
useNamePrefix | Flag to include prefix for field names | bool | no | false |
coordinateSystem | Coordinate system specifier | dictionary | cndtnl | - |
CofR | Centre of rotation | vector | cndtnl | - |
origin | Origin of coordinate system | vector | cndtnl | - |
e3 | e3 coordinate axis | vector | cndtnl | - |
e1 | e1 coordinate axis | vector | cndtnl | - |
fD | Name of force density field | word | cndtnl | - |
p | Name of pressure field | word | cndtnl | p |
U | Name of velocity field | word | cndtnl | U |
rho | Name of density field | word | cndtnl | rho |
rhoInf | Value of reference density | scalar | cndtnl | - |
pRef | Value of reference pressure | scalar | cndtnl | 0 |
The inherited entries are elaborated in:
- Note
- For incompressible cases, set
rho
to rhoInf
. You will then be required to provide a rhoInf
value corresponding to the constant freestream density.
writeControl
and writeInterval
entries of function object do control when to output force and moment files and fields.
- If a
coordinateSystem
entry exists, it is taken in favour of CofR
.
- Source files
-
Definition at line 317 of file forces.H.