Calculates the forces and moments by integrating the pressure and skin-friction forces over a given list of patches. More...
Public Member Functions | |
TypeName ("forces") | |
Runtime type information. More... | |
forces (const word &name, const Time &runTime, const dictionary &dict) | |
Construct from Time and dictionary. More... | |
forces (const word &name, const objectRegistry &obr, const dictionary &) | |
Construct from objectRegistry and dictionary. More... | |
virtual | ~forces () |
Destructor. More... | |
virtual bool | read (const dictionary &) |
Read the forces data. More... | |
virtual void | calcForcesMoment () |
Calculate the 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, currently does nothing. More... | |
virtual bool | write () |
Write the forces. 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 () |
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 () |
Destructor. More... | |
![]() | |
virtual const word & | type () 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< functionObject > | clone () const |
Return clone. More... | |
virtual | ~functionObject () |
Destructor. More... | |
const word & | name () const |
Return the name of this functionObject. 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 void | updateMesh (const mapPolyMesh &mpm) |
Update for changes of mesh. More... | |
virtual void | movePoints (const polyMesh &mesh) |
Update for changes of mesh. More... | |
![]() | |
logFiles (const objectRegistry &obr, const word &prefix) | |
Construct from objectRegistry and prefix. More... | |
virtual | ~logFiles () |
Destructor. More... | |
const wordList & | names () const |
Return const access to the names. More... | |
PtrList< OFstream > & | files () |
Return access to the files. More... | |
OFstream & | file () |
Return access to the file (if only 1) More... | |
OFstream & | file (const label i) |
Return file 'i'. More... | |
![]() | |
writeFile (const objectRegistry &obr, const word &prefix) | |
Construct from objectRegistry and prefix. 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... | |
Protected Types | |
enum | fileID { MAIN_FILE = 0, BINS_FILE = 1 } |
Enumeration for ensuring the right file is accessed. More... | |
Protected Member Functions | |
wordList | createFileNames (const dictionary &dict) const |
Create file names for forces and bins. More... | |
virtual void | writeFileHeader (const label i) |
Output file header information. More... | |
void | initialise () |
Initialise the fields. More... | |
tmp< volSymmTensorField > | devRhoReff () const |
Return the effective viscous stress (laminar + turbulent). More... | |
tmp< volScalarField > | mu () const |
Dynamic viscosity field. More... | |
tmp< volScalarField > | rho () const |
Return rho if specified otherwise rhoRef. More... | |
scalar | rho (const volScalarField &p) const |
Return rhoRef if the pressure field is dynamic, i.e. p/rho. More... | |
void | applyBins (const vectorField &Md, const vectorField &fN, const vectorField &fT, const vectorField &fP, const vectorField &d) |
Accumulate bin data. More... | |
void | writeForces () |
Helper function to write force data. More... | |
void | writeBins () |
Helper function to write bin data. More... | |
forces (const forces &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const forces &) |
Disallow default bitwise assignment. More... | |
![]() | |
template<class ObjectType > | |
bool | foundObject (const word &fieldName) const |
Find field in the objectRegistry. 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 > | |
bool | store (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... | |
![]() | |
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 | |
List< Field< vector > > | force_ |
Pressure, viscous and porous force per bin. More... | |
List< Field< vector > > | moment_ |
Pressure, viscous and porous moment per bin. More... | |
labelHashSet | patchSet_ |
Patches to integrate forces over. More... | |
word | pName_ |
Name of pressure field. More... | |
word | UName_ |
Name of velocity field. More... | |
word | rhoName_ |
Name of density field (optional) More... | |
Switch | directForceDensity_ |
Is the force density being supplied directly? More... | |
word | fDName_ |
The name of the force density (fD) field. More... | |
scalar | rhoRef_ |
Reference density needed for incompressible calculations. More... | |
scalar | pRef_ |
Reference pressure. More... | |
coordinateSystem | coordSys_ |
Coordinate system used when evaluting forces/moments. More... | |
bool | localSystem_ |
Flag to indicate whether we are using a local co-ordinate sys. More... | |
bool | porosity_ |
Flag to include porosity effects. More... | |
label | nBin_ |
Number of bins. More... | |
vector | binDir_ |
Direction used to determine bin orientation. More... | |
scalar | binDx_ |
Distance between bin divisions. More... | |
scalar | binMin_ |
Minimum bin bounds. More... | |
List< point > | binPoints_ |
Bin positions along binDir. More... | |
bool | binCumulative_ |
Should bin data be cumulative? More... | |
bool | initialised_ |
Initialised flag. More... | |
![]() | |
const fvMesh & | mesh_ |
Reference to the fvMesh. More... | |
![]() | |
const Time & | time_ |
Reference to the Time. More... | |
const objectRegistry & | obr_ |
Reference to the region objectRegistry. More... | |
![]() | |
wordList | names_ |
File names. More... | |
PtrList< OFstream > | filePtrs_ |
File pointer. More... | |
![]() | |
const objectRegistry & | fileObr_ |
Reference to the region objectRegistry. More... | |
const word | prefix_ |
Prefix. More... | |
Additional Inherited Members | |
![]() | |
static autoPtr< functionObject > | New (const word &name, const Time &, const dictionary &) |
Select from dictionary, based on its "type" entry. More... | |
![]() | |
Switch | log |
Switch write log to Info. More... | |
![]() | |
static int | debug |
static bool | postProcess |
Global post-processing mode switch. More... | |
![]() | |
static const word | outputPrefix |
Directory prefix. More... | |
static label | addChars = 7 |
Additional characters for writing. More... | |
Calculates the forces and moments by integrating the pressure and skin-friction forces over a given list of patches.
Member function forces::write() calculates the forces/moments and writes the forces/moments into the file <timeDir>/forces.dat and bin data (if selected) to the file <timeDir>/forces_bin.dat
Example of function object specification:
forces1 { type forces; libs ("libforces.so"); ... log yes; patches (walls); binData { nBin 20; direction (1 0 0); cumulative yes; } }
Property | Description | Required | Default value |
---|---|---|---|
type | Type name: forces | yes | |
log | Write force data to standard output | no | no |
patches | Patches included in the forces calculation | yes | |
p | Pressure field name | no | p |
U | Velocity field name | no | U |
rho | Density field name (see below) | no | rho |
CofR | Centre of rotation (see below) | no | |
directForceDensity | Force density supplied directly (see below) | no | no |
fD | Name of force density field (see below) | no | fD |
Bin data is optional, but if the dictionary is present, the entries must be defined according o
nBin | number of data bins | yes | |
---|---|---|---|
direction | direction along which bins are defined | yes | |
cumulative | bin data accumulated with incresing distance | yes |
rho
to rhoInf
. You will then be required to provide a rhoInf
value corresponding to the free-stream constant density.directForceDensity
flag to 'yes', and supply the force density field using the fDName
entryCofR
entry, or be taken from origin of the local coordinate system. For example, CofR (0 0 0);or
coordinateSystem { origin (0 0 0); e3 (0 0 1); e1 (1 0 0); }
|
protected |
Disallow default bitwise copy construct.
Referenced by forces::forces(), and forces::writeBins().
forces | ( | const word & | name, |
const Time & | runTime, | ||
const dictionary & | dict | ||
) |
Construct from Time and dictionary.
Definition at line 535 of file forces.C.
References forces::forces(), and Foam::read().
forces | ( | const word & | name, |
const objectRegistry & | obr, | ||
const dictionary & | dict | ||
) |
Construct from objectRegistry and dictionary.
Definition at line 570 of file forces.C.
References Foam::read().
|
protected |
Create file names for forces and bins.
Definition at line 49 of file forces.C.
References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), dictionary::found(), dictionary::lookup(), Foam::readLabel(), and dictionary::subDict().
|
protectedvirtual |
Output file header information.
Implements logFiles.
Reimplemented in forceCoeffs.
Definition at line 75 of file forces.C.
References Foam::abort(), Foam::endl(), f(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::jn(), Foam::name(), Foam::nl, and Foam::tab.
|
protected |
Initialise the fields.
Definition at line 172 of file forces.C.
References Foam::exit(), Foam::FatalError, and FatalErrorInFunction.
|
protected |
Return the effective viscous stress (laminar + turbulent).
Definition at line 219 of file forces.C.
References Foam::dev(), IncompressibleTurbulenceModel< TransportModel >::devReff(), dictionaryName::dictName(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::fvc::grad(), dictionary::lookup(), fluidThermo::mu(), transportModel::nu(), nu, GeometricField< symmTensor, fvPatchField, volMesh >::null(), rho, turb, Foam::twoSymm(), and U.
|
protected |
Dynamic viscosity field.
Definition at line 281 of file forces.C.
References dictionaryName::dictName(), Foam::dimViscosity, Foam::exit(), Foam::FatalError, FatalErrorInFunction, dictionary::lookup(), fluidThermo::mu(), transportModel::nu(), nu, GeometricField< scalar, fvPatchField, volMesh >::null(), and rho.
|
protected |
Return rho if specified otherwise rhoRef.
Definition at line 325 of file forces.C.
References Foam::dimDensity.
|
protected |
Return rhoRef if the pressure field is dynamic, i.e. p/rho.
otherwise return 1
Definition at line 351 of file forces.C.
References forces::applyBins(), DimensionedField< Type, GeoMesh >::dimensions(), Foam::dimPressure, Foam::exit(), Foam::FatalError, and FatalErrorInFunction.
|
protected |
Accumulate bin data.
Definition at line 372 of file forces.C.
References forAll, Foam::max(), Foam::min(), and Foam::sum().
Referenced by forces::rho().
|
protected |
Helper function to write force data.
Definition at line 408 of file forces.C.
References Foam::endl(), Log, Foam::name(), Foam::nl, Foam::setw(), Foam::sum(), Foam::tab, and Foam::type().
|
protected |
Helper function to write bin data.
Definition at line 453 of file forces.C.
References Foam::endl(), f(), forAll, forces::forces(), Foam::setw(), List< T >::size(), and Foam::tab.
|
protected |
Disallow default bitwise assignment.
TypeName | ( | "forces" | ) |
Runtime type information.
|
virtual |
Read the forces data.
Reimplemented from regionFunctionObject.
Reimplemented in forceCoeffs.
Definition at line 612 of file forces.C.
References Foam::endl(), Foam::exit(), polyPatch::faceCentres(), Foam::FatalIOError, FatalIOErrorInFunction, forAll, forAllConstIter(), dictionary::found(), Log, dictionary::lookup(), dictionary::lookupOrDefault(), Foam::mag(), Foam::max(), Foam::min(), Foam::name(), Foam::nl, patchi, polyBoundaryMesh::patchSet(), regionFunctionObject::read(), dictionary::readIfPresent(), Foam::reduce(), dictionary::subDict(), and Foam::type().
Referenced by forceCoeffs::read().
|
virtual |
Calculate the forces and moments.
Porous force
Definition at line 746 of file forces.C.
References GeometricField< Type, PatchField, GeoMesh >::boundaryField(), porosityModel::cellZoneIDs(), HashTable< T, Key, Hash >::empty(), Foam::endl(), forAll, forAllConstIter(), porosityModel::force(), Pstream::listCombineGather(), Pstream::listCombineScatter(), Foam::mag(), Foam::constant::physicoChemical::mu, p, patchi, pRef, rho, List< T >::size(), U, WarningInFunction, and Foam::Zero.
Referenced by sixDoFRigidBodyMotionSolver::solve(), rigidBodyMeshMotionSolver::solve(), rigidBodyMeshMotion::solve(), and forceCoeffs::write().
|
virtual |
Return the total force.
Definition at line 879 of file forces.C.
References Foam::sum().
Referenced by sixDoFRigidBodyMotionSolver::solve(), rigidBodyMeshMotionSolver::solve(), and rigidBodyMeshMotion::solve().
|
virtual |
Return the total moment.
Definition at line 885 of file forces.C.
References Foam::sum().
Referenced by sixDoFRigidBodyMotionSolver::solve(), rigidBodyMeshMotionSolver::solve(), and rigidBodyMeshMotion::solve().
|
virtual |
|
virtual |
Write the forces.
Reimplemented from logFiles.
Reimplemented in forceCoeffs.
Definition at line 897 of file forces.C.
References Foam::endl(), Log, UPstream::master(), and logFiles::write().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |