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... | |
forces (const forces &)=delete | |
Disallow default bitwise copy construction. 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... | |
void | operator= (const forces &)=delete |
Disallow default bitwise assignment. 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... | |
fvMeshFunctionObject (const fvMeshFunctionObject &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~fvMeshFunctionObject () |
Destructor. More... | |
void | operator= (const fvMeshFunctionObject &)=delete |
Disallow default bitwise assignment. More... | |
Public Member Functions inherited from regionFunctionObject | |
TypeName ("regionFunctionObject") | |
Runtime type information. More... | |
regionFunctionObject (const word &name, const Time &runTime, const dictionary &dict) | |
Construct from Time and dictionary. More... | |
regionFunctionObject (const word &name, const objectRegistry &obr, const dictionary &dict) | |
Construct from the region objectRegistry and dictionary. More... | |
regionFunctionObject (const regionFunctionObject &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~regionFunctionObject () |
Destructor. More... | |
void | operator= (const regionFunctionObject &)=delete |
Disallow default bitwise assignment. More... | |
Public Member Functions inherited from functionObject | |
ClassName ("functionObject") | |
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... | |
functionObject (const functionObject &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~functionObject () |
Destructor. More... | |
const word & | name () const |
Return the name of this functionObject. More... | |
virtual bool | executeAtStart () const |
Return true if the functionObject should be executed at the start. More... | |
virtual bool | end () |
Called when Time::run() determines that the time-loop exits. More... | |
virtual scalar | timeToNextWrite () |
Called by Time::adjustTimeStep(). Allows the functionObject to. 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... | |
void | operator= (const functionObject &)=delete |
Disallow default bitwise assignment. More... | |
Public Member Functions inherited from logFiles | |
logFiles (const objectRegistry &obr, const word &prefix) | |
Construct from objectRegistry and prefix. More... | |
logFiles (const logFiles &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~logFiles () |
Destructor. More... | |
const 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... | |
void | operator= (const logFiles &)=delete |
Disallow default bitwise assignment. More... | |
Public Member Functions inherited from writeFile | |
writeFile (const objectRegistry &obr, const word &prefix) | |
Construct from objectRegistry and prefix. More... | |
writeFile (const writeFile &)=delete | |
Disallow default bitwise copy construction. More... | |
~writeFile () | |
Destructor. More... | |
void | initStream (Ostream &os) const |
Initialise the output stream for writing. More... | |
fileName | baseFileDir () const |
Return the base directory for output. More... | |
fileName | baseTimeDir () const |
Return the base directory for the current time value. More... | |
Omanip< int > | valueWidth (const label offset=0) const |
Return the value width when writing to stream with optional offset. More... | |
void | writeCommented (Ostream &os, const string &str) const |
Write a commented string to stream. More... | |
void | writeTabbed (Ostream &os, const string &str) const |
Write a tabbed string to stream. More... | |
void | writeHeader (Ostream &os, const string &str) const |
Write a commented header to stream. More... | |
void | writeTime (Ostream &os) const |
Write the current time to stream. More... | |
template<class Type > | |
void | writeHeaderValue (Ostream &os, const string &property, const Type &value) const |
Write a (commented) header property and value pair. More... | |
label | charWidth () const |
Return width of character stream output. More... | |
void | operator= (const writeFile &)=delete |
Disallow default bitwise assignment. More... | |
Protected Types | |
enum | fileID { mainFile = 0, binsFile = 1 } |
Enumeration for ensuring the right file is accessed. More... | |
Protected Member Functions | |
Ostream & | file (const fileID fid) |
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 > | devTau () 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... | |
tmp< volScalarField > | alpha () const |
Get the volume fraction field. More... | |
tmp< scalarField > | alpha (const label patchi) const |
Get the volume fraction field on a patch. 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... | |
Protected Member Functions inherited from regionFunctionObject | |
template<class ObjectType > | |
bool | foundObject (const word &fieldName) const |
Find field in the objectRegistry. More... | |
template<class ObjectType > | |
void | cannotFindObject (const word &fieldName) |
Prints a warning message that fieldName cannot be found. More... | |
void | cannotFindObject (const word &fieldName) |
Prints a warning message that fieldName cannot be found. More... | |
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 (const tmp< ObjectType > &tfield) |
Store the given field in the objectRegistry. More... | |
template<class ObjectType > | |
bool | store (const word &fieldName, const tmp< ObjectType > &tfield, bool cacheable=false) |
Store the given field in the objectRegistry under the given name. More... | |
bool | writeObject (const word &fieldName) |
Write field if present in objectRegistry. More... | |
bool | clearObject (const word &fieldName) |
Clear field from the objectRegistry if present. More... | |
Protected Member Functions inherited from logFiles | |
virtual void | createFiles () |
Create the output file. More... | |
virtual void | resetNames (const wordList &names) |
Reset the list of names from a wordList. More... | |
virtual void | resetName (const word &name) |
Reset the list of names to a single name entry. More... | |
Protected Attributes | |
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... | |
word | phaseName_ |
The name of the phase (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 evaluating 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... | |
Protected Attributes inherited from fvMeshFunctionObject | |
const fvMesh & | mesh_ |
Reference to the fvMesh. More... | |
Protected Attributes inherited from regionFunctionObject | |
const Time & | time_ |
Reference to the Time. More... | |
const objectRegistry & | obr_ |
Reference to the region objectRegistry. More... | |
Protected Attributes inherited from logFiles | |
wordList | names_ |
File names. More... | |
PtrList< OFstream > | filePtrs_ |
File pointer. More... | |
Protected Attributes inherited from writeFile | |
const objectRegistry & | fileObr_ |
Reference to the region objectRegistry. More... | |
const word | prefix_ |
Prefix. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from functionObject | |
static autoPtr< functionObject > | New (const word &name, const Time &, const dictionary &) |
Select from dictionary, based on its "type" entry. More... | |
Public Attributes inherited from functionObject | |
Switch | log |
Switch write log to Info. More... | |
Switch | executeAtStart_ |
Switch write log to Info. More... | |
Static Public Attributes inherited from functionObject | |
static bool | postProcess |
Global post-processing mode switch. More... | |
Static Public Attributes inherited from writeFile | |
static const word | outputPrefix |
Directory prefix. More... | |
static label | addChars = 8 |
Additional characters for writing. More... | |
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 |
phase | Phase name for phase-fraction | no | |
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 increasing distance | yes |
rho
to rhoInf
and provide a rhoInf
value corresponding to the free-stream constant density.phase
name is specified the corresponding phase-fraction field alpha
.<phase> is used to filter the surface force field before integration.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
origin (0 0 0); coordinateRotation { type axesRotation; e1 (1 0 0); e3 (0 0 1); }
|
strongprotected |
forces | ( | const word & | name, |
const Time & | runTime, | ||
const dictionary & | dict | ||
) |
Construct from Time and dictionary.
Definition at line 650 of file forces.C.
References Foam::read().
Referenced by forces::file(), and forces::writeBins().
forces | ( | const word & | name, |
const objectRegistry & | obr, | ||
const dictionary & | dict | ||
) |
Construct from objectRegistry and dictionary.
Definition at line 685 of file forces.C.
References Foam::read().
|
virtual |
Destructor.
Definition at line 721 of file forces.C.
Referenced by forces::file().
Definition at line 296 of file forces.H.
References forces::alpha(), forces::applyBins(), forces::calcForcesMoment(), forces::createFileNames(), forces::devTau(), dict, forces::execute(), logFiles::file(), forces::forceEff(), forces::forces(), forces::initialise(), forces::momentEff(), forces::mu(), functionObject::name(), forces::operator=(), p, patchi, forces::read(), forces::rho(), runTime, forces::TypeName(), forces::write(), forces::writeBins(), forces::writeFileHeader(), forces::writeForces(), and forces::~forces().
|
protected |
Create file names for forces and bins.
Definition at line 52 of file forces.C.
References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), dictionary::found(), dictionary::lookup(), and dictionary::subDict().
Referenced by forces::file().
|
protectedvirtual |
Output file header information.
Implements logFiles.
Reimplemented in forceCoeffs.
Definition at line 78 of file forces.C.
References Foam::abort(), Foam::endl(), f(), Foam::FatalError, FatalErrorInFunction, Foam::file, forAll, Foam::jn(), Foam::name(), Foam::nl, Foam::tab, and Foam::vtkWriteOps::writeHeader().
Referenced by forces::file().
|
protected |
Initialise the fields.
Definition at line 180 of file forces.C.
References Foam::exit(), Foam::FatalError, and FatalErrorInFunction.
Referenced by forces::file().
|
protected |
Return the effective viscous stress (laminar + turbulent).
Definition at line 227 of file forces.C.
References alpha(), Foam::dev(), IncompressibleMomentumTransportModel< TransportModel >::devSigma(), Foam::dimViscosity, Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::fvc::grad(), IOobject::groupName(), dictionary::lookup(), word::null, GeometricField< symmTensor, fvPatchField, volMesh >::null(), rho, Foam::twoSymm(), and U.
Referenced by forces::file().
|
protected |
Dynamic viscosity field.
Definition at line 297 of file forces.C.
References Foam::dimViscosity, Foam::exit(), Foam::FatalError, FatalErrorInFunction, IOobject::groupName(), dictionary::lookup(), word::null, GeometricField< scalar, fvPatchField, volMesh >::null(), rho, and MomentumTransportModel< Alpha, Rho, BasicMomentumTransportModel, TransportModel >::transport().
Referenced by forces::file().
|
protected |
Return rho if specified otherwise rhoRef.
Definition at line 365 of file forces.C.
References Foam::dimDensity, and GeometricField< scalar, fvPatchField, volMesh >::New().
Referenced by forces::file().
|
protected |
Return rhoRef if the pressure field is dynamic, i.e. p/rho.
otherwise return 1
Definition at line 383 of file forces.C.
References DimensionedField< Type, GeoMesh >::dimensions(), Foam::dimPressure, Foam::exit(), Foam::FatalError, and FatalErrorInFunction.
|
protected |
Get the volume fraction field.
Definition at line 403 of file forces.C.
References Foam::dimless, IOobject::groupName(), GeometricField< scalar, fvPatchField, volMesh >::New(), and word::null.
Referenced by forces::file().
|
protected |
Get the volume fraction field on a patch.
Definition at line 425 of file forces.C.
References forces::applyBins(), IOobject::groupName(), word::null, and patchi.
|
protected |
Accumulate bin data.
Definition at line 447 of file forces.C.
References forAll, Foam::max(), Foam::min(), and Foam::sum().
Referenced by forces::alpha(), and forces::file().
|
protected |
Helper function to write force data.
Definition at line 483 of file forces.C.
References Foam::endl(), Foam::file, Log, Foam::name(), Foam::nl, Foam::setw(), Foam::sum(), Foam::tab, and Foam::type().
Referenced by forces::file().
|
protected |
Helper function to write bin data.
Definition at line 543 of file forces.C.
References Foam::endl(), f(), Foam::file, forAll, forces::forces(), Foam::setw(), List< T >::size(), and Foam::tab.
Referenced by forces::file().
TypeName | ( | "forces" | ) |
|
virtual |
Read the forces data.
Reimplemented from regionFunctionObject.
Reimplemented in forceCoeffs.
Definition at line 727 of file forces.C.
References Foam::endl(), Foam::exit(), polyPatch::faceCentres(), Foam::FatalIOError, FatalIOErrorInFunction, forAll, forAllConstIter(), dictionary::found(), IOobject::groupName(), Log, dictionary::lookup(), dictionary::lookupOrDefault(), Foam::mag(), Foam::max(), Foam::min(), Foam::name(), Foam::nl, word::null, patchi, polyBoundaryMesh::patchSet(), regionFunctionObject::read(), dictionary::readIfPresent(), Foam::reduce(), dictionary::subDict(), and Foam::type().
Referenced by forces::file(), and forceCoeffs::read().
|
virtual |
Calculate the forces and moments.
Porous force
Definition at line 884 of file forces.C.
References alpha(), 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 forces::file(), sixDoFRigidBodyMotionSolver::solve(), rigidBodyMeshMotionSolver::solve(), rigidBodyMeshMotion::solve(), and forceCoeffs::write().
|
virtual |
Return the total force.
Definition at line 1019 of file forces.C.
References Foam::sum().
Referenced by forces::file(), sixDoFRigidBodyMotionSolver::solve(), rigidBodyMeshMotionSolver::solve(), and rigidBodyMeshMotion::solve().
|
virtual |
Return the total moment.
Definition at line 1025 of file forces.C.
References Foam::sum().
Referenced by forces::file(), sixDoFRigidBodyMotionSolver::solve(), rigidBodyMeshMotionSolver::solve(), and rigidBodyMeshMotion::solve().
|
virtual |
Execute, currently does nothing.
Implements functionObject.
Reimplemented in forceCoeffs.
Definition at line 1031 of file forces.C.
Referenced by forces::file().
|
virtual |
Write the forces.
Reimplemented from logFiles.
Reimplemented in forceCoeffs.
Definition at line 1037 of file forces.C.
References Foam::endl(), Log, UPstream::master(), and logFiles::write().
Referenced by forces::file().
|
delete |
Disallow default bitwise assignment.
Referenced by forces::file().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |