Calculates the forces and moments by integrating the pressure and skin-friction forces over a given list of patches of a moving rigid body. More...
Public Member Functions | |
TypeName ("rigidBodyForces") | |
Runtime type information. More... | |
rigidBodyForces (const word &name, const Time &runTime, const dictionary &dict) | |
Construct from Time and dictionary. More... | |
rigidBodyForces (const word &name, const objectRegistry &obr, const dictionary &) | |
Construct from objectRegistry and dictionary. More... | |
rigidBodyForces (const rigidBodyForces &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~rigidBodyForces () |
Destructor. More... | |
virtual bool | read (const dictionary &) |
Read the forces data. More... | |
void | operator= (const rigidBodyForces &)=delete |
Disallow default bitwise assignment. More... | |
![]() | |
TypeName ("forcesBase") | |
Runtime type information. More... | |
forcesBase (const word &name, const Time &runTime, const dictionary &dict) | |
Construct from Time and dictionary. More... | |
forcesBase (const word &name, const objectRegistry &obr, const dictionary &) | |
Construct from objectRegistry and dictionary. More... | |
forcesBase (const forcesBase &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~forcesBase () |
Destructor. More... | |
virtual wordList | fields () const |
Return the list of fields required. More... | |
virtual void | calcForcesMoments () |
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 forcesBase &)=delete |
Disallow default bitwise assignment. 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... | |
fvMeshFunctionObject (const fvMeshFunctionObject &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~fvMeshFunctionObject () |
Destructor. More... | |
void | operator= (const fvMeshFunctionObject &)=delete |
Disallow default bitwise assignment. 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... | |
regionFunctionObject (const regionFunctionObject &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~regionFunctionObject () |
Destructor. More... | |
void | operator= (const regionFunctionObject &)=delete |
Disallow default bitwise assignment. More... | |
![]() | |
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, const Time &runTime) | |
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 | timeToNextAction () |
Called by Time::adjustTimeStep(). Allows the functionObject to. More... | |
virtual scalar | maxDeltaT () const |
Return the maximum time-step for stable operation. More... | |
virtual void | movePoints (const polyMesh &mesh) |
Update topology using the given map. More... | |
virtual void | topoChange (const polyTopoChangeMap &map) |
Update topology using the given map. More... | |
virtual void | mapMesh (const polyMeshMap &) |
Update from another mesh using the given map. More... | |
virtual void | distribute (const polyDistributionMap &) |
Redistribute or update using the given distribution map. More... | |
void | operator= (const functionObject &)=delete |
Disallow default bitwise assignment. More... | |
![]() | |
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 & | toc () const |
Return the list of log file names. More... | |
const wordList & | names () const |
Return the list of log file 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... | |
![]() | |
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 Member Functions | |
virtual vector | CofR () const |
Return the current centre of the rigid body. More... | |
![]() | |
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 | calcForcesMoments (const vector &CofR) |
Calculate the forces and moments. More... | |
virtual void | writeCoRValueHeader (Ostream &file) |
Write the constant centre of rotation value in the header. More... | |
virtual void | writeCoRHeader (Ostream &file) |
Write the time varying centre of rotation column header. More... | |
virtual void | writeCofR (Ostream &file) |
Write the time varying centre of rotation. More... | |
void | writeForces () |
Helper function to write force data. More... | |
void | writeBins () |
Helper function to write bin data. More... | |
OFstream & | file () |
Return access to the file (if only 1) More... | |
OFstream & | file (const label i) |
Return file 'i'. More... | |
![]() | |
labelHashSet | patchSet (const dictionary &, const bool optional=false) const |
Return the patch set corresponding to the patch selection entries. More... | |
![]() | |
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... | |
void | cannotFindObjects (const wordList &fieldNames) |
Prints a warning message that fieldNames 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... | |
![]() | |
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... | |
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... | |
Switch | executeAtStart_ |
Switch write log to Info. More... | |
![]() | |
static bool | postProcess |
Global post-processing mode switch. More... | |
![]() | |
static const word | outputPrefix |
Directory prefix. More... | |
static label | addChars = 8 |
Additional characters for writing. More... | |
![]() | |
enum class | fileID { mainFile = 0 , binsFile = 1 } |
Enumeration for ensuring the right file is accessed. More... | |
![]() | |
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... | |
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 objectRegistry & | obr_ |
Reference to the region objectRegistry. More... | |
![]() | |
const Time & | time_ |
Reference to time. 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... | |
Calculates the forces and moments by integrating the pressure and skin-friction forces over a given list of patches of a moving rigid body.
The centre of rotation (CofR) of the moving rigid object is obtained directly from the corresponding Foam::RBD::rigidBodyMotion of the specified body.
Member function rigidBodyForces::write() calculates the forces/moments and writes the forces/moments into the file <timeDir>/rigidBodyForces.dat and bin data (if selected) to the file <timeDir>/rigidBodyForces_bin.dat
Example of function object specification:
rigidBodyForces1 { type rigidBodyForces; libs ("librigidBodyForces.so"); body hull; patches (walls); log yes; }
Property | Description | Required | Default value |
---|---|---|---|
type | Type name: rigidBodyForces | yes | |
log | Write force data to standard output | no | no |
body | Name of the rigid body | yes | |
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 | |
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 |
Note
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
entryDefinition at line 184 of file rigidBodyForces.H.
rigidBodyForces | ( | const word & | name, |
const Time & | runTime, | ||
const dictionary & | dict | ||
) |
Construct from Time and dictionary.
Definition at line 63 of file rigidBodyForces.C.
References dict, and rigidBodyForces::read().
rigidBodyForces | ( | const word & | name, |
const objectRegistry & | obr, | ||
const dictionary & | dict | ||
) |
Construct from objectRegistry and dictionary.
Definition at line 76 of file rigidBodyForces.C.
References dict, and rigidBodyForces::read().
|
delete |
Disallow default bitwise copy construction.
|
virtual |
Destructor.
Definition at line 91 of file rigidBodyForces.C.
|
protectedvirtual |
Return the current centre of the rigid body.
Implements forcesBase.
Definition at line 47 of file rigidBodyForces.C.
References rigidBodyModel::bodyIndex(), fvMeshFunctionObject::mesh_, motionSolver::motion(), fvMesh::mover(), spatialTransform::r(), and rigidBodyModel::X0().
TypeName | ( | "rigidBodyForces" | ) |
Runtime type information.
|
virtual |
Read the forces data.
Reimplemented from forcesBase.
Definition at line 97 of file rigidBodyForces.C.
References dict, and forcesBase::read().
Referenced by rigidBodyForces::rigidBodyForces().
|
delete |
Disallow default bitwise assignment.