This function object 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... | |
![]() | |
writeFiles (const word &name, const Time &time, const dictionary &dict, const word &prefix) | |
Construct from name, Time, dictionary and prefix. More... | |
writeFiles (const word &name, const objectRegistry &obr, const dictionary &dict, const word &prefix) | |
Construct from name, objectRegistry, dictionary and prefix. More... | |
virtual | ~writeFiles () |
Destructor. More... | |
const wordList & | names () const |
Return const access to the names. More... | |
OFstream & | file () |
Return access to the file (if only 1) More... | |
PtrList< OFstream > & | files () |
Return access to the files. More... | |
OFstream & | file (const label i) |
Return file 'i'. More... | |
![]() | |
writeFile (const word &name, const Time &t, const dictionary &dict, const word &prefix) | |
Construct from name, Time, dictionary and prefix. More... | |
writeFile (const word &name, const objectRegistry &obr, const dictionary &dict, const word &prefix) | |
Construct from name, objectRegistry, dictionary and prefix. More... | |
virtual | ~writeFile () |
Destructor. 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... | |
![]() | |
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... | |
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... | |
![]() | |
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... | |
writeFiles (const writeFiles &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const writeFiles &) |
Disallow default bitwise assignment. More... | |
![]() | |
virtual void | initStream (Ostream &os) const |
Initialise the output stream for writing. More... | |
virtual fileName | baseFileDir () const |
Return the base directory for output. More... | |
virtual fileName | baseTimeDir () const |
Return the base directory for the current time value. More... | |
virtual Omanip< int > | valueWidth (const label offset=0) const |
Return the value width when writing to stream with optional offset. More... | |
writeFile (const writeFile &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const writeFile &) |
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 field 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... | |
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 word | prefix_ |
Prefix. More... | |
![]() | |
const Time & | time_ |
Reference to the Time. More... | |
const objectRegistry & | obr_ |
Reference to the region objectRegistry. 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 const word | outputPrefix |
Directory prefix. More... | |
static label | addChars = 7 |
Additional characters for writing. More... | |
![]() | |
static int | debug |
static bool | postProcess |
Global post-processing mode switch. More... | |
This function object 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); }
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 525 of file forces.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, forces::forces(), and Foam::read().
forces | ( | const word & | name, |
const objectRegistry & | obr, | ||
const dictionary & | dict | ||
) |
Construct from objectRegistry and dictionary.
Definition at line 565 of file forces.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, and 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.
Reimplemented from writeFile.
Reimplemented in forceCoeffs.
Definition at line 72 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 160 of file forces.C.
References Foam::exit(), Foam::FatalError, and FatalErrorInFunction.
|
protected |
Return the effective viscous stress (laminar + turbulent).
Definition at line 207 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 269 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 313 of file forces.C.
References Foam::dimDensity, mesh, fvMesh::time(), and Time::timeName().
|
protected |
Return rhoRef if the pressure field is dynamic, i.e. p/rho.
otherwise return 1
Definition at line 341 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 362 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 398 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 443 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 polyMesh::boundaryMesh(), Foam::endl(), Foam::exit(), polyPatch::faceCentres(), Foam::FatalIOError, FatalIOErrorInFunction, forAll, forAllConstIter(), dictionary::found(), Log, dictionary::lookup(), dictionary::lookupOrDefault(), Foam::mag(), Foam::max(), mesh, Foam::min(), Foam::name(), Foam::nl, patchi, polyBoundaryMesh::patchSet(), regionFunctionObject::read(), dictionary::readIfPresent(), Foam::readScalar(), Foam::reduce(), dictionary::subDict(), and Foam::type().
Referenced by forceCoeffs::read().
|
virtual |
Calculate the forces and moments.
Porous force
Definition at line 747 of file forces.C.
References GeometricField< Type, PatchField, GeoMesh >::boundaryField(), fvMesh::C(), porosityModel::cellZoneIDs(), polyMesh::cellZones(), HashTable< T, Key, Hash >::empty(), Foam::endl(), forAll, forAllConstIter(), porosityModel::force(), Pstream::listCombineGather(), Pstream::listCombineScatter(), Foam::mag(), mesh, DimensionedField< Type, GeoMesh >::mesh(), Foam::constant::physicoChemical::mu, p, patchi, pRef, rho, List< T >::size(), U, WarningInFunction, and Foam::Zero.
Referenced by sixDoFRigidBodyMotionSolver::solve(), rigidBodyMeshMotion::solve(), sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs(), and forceCoeffs::write().
|
virtual |
Return the total force.
Definition at line 887 of file forces.C.
References Foam::sum().
Referenced by sixDoFRigidBodyMotionSolver::solve(), rigidBodyMeshMotion::solve(), and sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs().
|
virtual |
Return the total moment.
Definition at line 893 of file forces.C.
References Foam::sum().
Referenced by sixDoFRigidBodyMotionSolver::solve(), rigidBodyMeshMotion::solve(), and sixDoFRigidBodyDisplacementPointPatchVectorField::updateCoeffs().
|
virtual |
|
virtual |
Write the forces.
Reimplemented from writeFiles.
Reimplemented in forceCoeffs.
Definition at line 905 of file forces.C.
References Foam::endl(), Log, UPstream::master(), and writeFiles::write().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |