This function object extends the Foam::forces function object by providing lift, drag and moment coefficients. The data can optionally be output into bins, defined in a given direction. More...
Public Member Functions | |
TypeName ("forceCoeffs") | |
Runtime type information. More... | |
forceCoeffs (const word &name, const objectRegistry &, const dictionary &, const bool loadFromFiles=false, const bool readFields=true) | |
Construct for given objectRegistry and dictionary. More... | |
virtual | ~forceCoeffs () |
Destructor. More... | |
virtual void | read (const dictionary &) |
Read the forces data. More... | |
virtual void | execute () |
Execute, currently does nothing. More... | |
virtual void | end () |
Execute at the final time-loop, currently does nothing. More... | |
virtual void | timeSet () |
Called when time was set at the end of the Time::operator++. More... | |
virtual void | write () |
Write the forces. More... | |
![]() | |
TypeName ("forces") | |
Runtime type information. More... | |
forces (const word &name, const objectRegistry &, const dictionary &, const bool loadFromFiles=false, const bool readFields=true) | |
Construct for given objectRegistry and dictionary. More... | |
forces (const word &name, const objectRegistry &, const labelHashSet &patchSet, const word &pName, const word &UName, const word &rhoName, const scalar rhoInf, const scalar pRef, const coordinateSystem &coordSys) | |
Construct from components. More... | |
virtual | ~forces () |
Destructor. More... | |
virtual const word & | name () const |
Return name of the set of forces. 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 void | updateMesh (const mapPolyMesh &) |
Update for changes of mesh. More... | |
virtual void | movePoints (const polyMesh &) |
Update for changes of mesh. More... | |
![]() | |
functionObjectState (const objectRegistry &obr, const word &name) | |
Construct from components. More... | |
virtual | ~functionObjectState () |
Destructor. More... | |
const word & | name () const |
Return the name. More... | |
bool | active () const |
Return the active flag. More... | |
const IOdictionary & | stateDict () const |
Return access to the state dictionary. More... | |
dictionary & | propertyDict () |
Return access to the property dictionary. More... | |
template<class Type > | |
bool | setActive () |
Set the active status by querying objectRegistry type. More... | |
bool | foundProperty (const word &entryName) const |
Return true if the property exists. More... | |
template<class Type > | |
Type | getProperty (const word &entryName, const Type &defaultValue=pTraits< Type >::zero) const |
Retrieve generic property. More... | |
template<class Type > | |
void | getProperty (const word &entryName, Type &value) const |
Retrieve generic property. 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=pTraits< Type >::zero) const |
Retrieve generic property from named object. More... | |
template<class Type > | |
void | getObjectProperty (const word &objectName, const word &entryName, Type &value) const |
Retrieve generic property from named object. 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=pTraits< Type >::zero) const |
Retrieve result. More... | |
template<class Type > | |
Type | getObjectResult (const word &objectName, const word &entryName, const Type &defaultValue=pTraits< Type >::zero) const |
Retrieve result from named object. More... | |
template<class Type > | |
void | getObjectResult (const word &objectName, const word &entryName, Type &value) const |
Retrieve result from named object. 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... | |
List< word > | objectResultEntries () const |
Retrieve the result entries. More... | |
List< word > | objectResultEntries (const word &objectName) const |
Return result entries for named object. More... | |
![]() | |
functionObjectFile (const objectRegistry &obr, const word &prefix) | |
Construct null. More... | |
functionObjectFile (const objectRegistry &obr, const word &prefix, const word &fileName, const dictionary &dict) | |
Construct from components and read options from dictionary. More... | |
virtual | ~functionObjectFile () |
Destructor. More... | |
void | read (const dictionary &dict) |
Read. More... | |
OFstream & | file () |
Return access to the file (if only 1) More... | |
bool | writeToFile () const |
Return true if can write to file. 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 Member Functions | |
void | createFiles () |
Create the output files. More... | |
void | writeIntegratedHeader (const word &header, Ostream &os) const |
Write header for integrated data. More... | |
void | writeBinHeader (const word &header, Ostream &os) const |
Write header for binned data. More... | |
void | writeIntegratedData (const word &title, const List< Field< scalar > > &coeff) const |
Write integrated data. More... | |
void | writeBinData (const List< Field< scalar > > coeffs, Ostream &os) const |
Write binned data. More... | |
![]() | |
word | fieldName (const word &name) const |
Create a field name. More... | |
void | createFiles () |
Create the output files. More... | |
void | writeIntegratedHeader (const word &header, Ostream &os) const |
Write header for integrated data. More... | |
void | writeBinHeader (const word &header, Ostream &os) const |
Write header for binned data. More... | |
void | initialise () |
Initialise the fields. More... | |
void | initialiseBins () |
Initialise the collection bins. More... | |
void | resetFields () |
Reset the fields prior to accumulation of force/moments. 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 rhoName is 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 | addToFields (const label patchI, const vectorField &Md, const vectorField &fN, const vectorField &fT, const vectorField &fP) |
Add patch contributions to force and moment fields. More... | |
void | addToFields (const labelList &cellIDs, const vectorField &Md, const vectorField &fN, const vectorField &fT, const vectorField &fP) |
Add cell contributions to force and moment fields. More... | |
void | writeIntegratedForceMoment (const string &descriptor, const vectorField &fm0, const vectorField &fm1, const vectorField &fm2, autoPtr< OFstream > &osPtr) const |
Helper function to write integrated forces and moments. More... | |
void | writeForces () |
Write force data. More... | |
void | writeBinnedForceMoment (const List< Field< vector > > &fm, autoPtr< OFstream > &osPtr) const |
Helper function to write binned forces and moments. More... | |
void | writeBins () |
Write binned data. More... | |
forces (const forces &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const forces &) |
Disallow default bitwise assignment. More... | |
![]() | |
functionObjectState (const functionObjectState &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const functionObjectState &) |
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 autoPtr< OFstream > | createFile (const word &name) const |
Return an autoPtr to a new file. More... | |
virtual void | resetFile (const word &name) |
Reset internal file pointer to new file with new name. More... | |
virtual Omanip< int > | valueWidth (const label offset=0) const |
Return the value width when writing to stream with optional offset. More... | |
functionObjectFile (const functionObjectFile &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const functionObjectFile &) |
Disallow default bitwise assignment. More... | |
Private Member Functions | |
forceCoeffs (const forceCoeffs &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const forceCoeffs &) |
Disallow default bitwise assignment. More... | |
Private Attributes | |
vector | liftDir_ |
Lift. More... | |
vector | dragDir_ |
Drag. More... | |
vector | pitchAxis_ |
Pitch. More... | |
scalar | magUInf_ |
Velocity magnitude. More... | |
scalar | lRef_ |
Length. More... | |
scalar | Aref_ |
Area. More... | |
autoPtr< OFstream > | coeffFilePtr_ |
Integrated coefficients. More... | |
autoPtr< OFstream > | CmBinFilePtr_ |
Moment coefficient. More... | |
autoPtr< OFstream > | CdBinFilePtr_ |
Drag coefficient. More... | |
autoPtr< OFstream > | ClBinFilePtr_ |
Lift coefficient. More... | |
Additional Inherited Members | |
![]() | |
static const word | outputPrefix = "postProcessing" |
Directory prefix. More... | |
static label | addChars = 7 |
Additional characters for writing. More... | |
![]() | |
const objectRegistry & | obr_ |
Reference to the database. More... | |
Switch | log_ |
Switch to send output to Info as well as to file. 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... | |
autoPtr< OFstream > | forceFilePtr_ |
Forces. More... | |
autoPtr< OFstream > | momentFilePtr_ |
Moments. More... | |
autoPtr< OFstream > | forceBinFilePtr_ |
Force bins. More... | |
autoPtr< OFstream > | momentBinFilePtr_ |
Moment bins. More... | |
autoPtr< OFstream > | localForceFilePtr_ |
Local force. More... | |
autoPtr< OFstream > | localMomentFilePtr_ |
Local moment. More... | |
autoPtr< OFstream > | localForceBinFilePtr_ |
Local force bins. More... | |
autoPtr< OFstream > | localMomentBinFilePtr_ |
Local moment bins. 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 | writeFields_ |
Write fields flag. More... | |
bool | initialised_ |
Initialised flag. More... | |
![]() | |
const word | name_ |
Name of model. More... | |
bool | active_ |
Flag to indicate whether the object is active. More... | |
IOdictionary & | stateDict_ |
Reference to the state dictionary. More... | |
![]() | |
bool | writeToFile_ |
Flag to enable/disable writing to file. More... | |
This function object extends the Foam::forces function object by providing lift, drag and moment coefficients. The data can optionally be output into bins, defined in a given direction.
The binned data provides the total and consitituentcomponents per bin:
Data is written into multiple files in the postProcessing/<functionObjectName> directory:
Example of function object specification:
forceCoeffs1 { type forceCoeffs; functionObjectLibs ("libforces.so"); ... log yes; writeFields yes; patches (walls); liftDir (0 1 0); dragDir (-1 0 0); pitchAxis (0 0 1); magUInf 100; lRef 3.5; Aref 2.2; binData { nBin 20; direction (1 0 0); cumulative yes; } }
Function object usage
Property | Description | Required | Default value |
---|---|---|---|
type | type name: forces | yes | |
log | write force data to standard output | no | no |
writeFields | write the force and moment coefficient fields | no | no |
patches | patches included in the forces calculation | yes | |
liftDir | lift direction | yes | |
dragDir | drag direction | yes | |
pitchAxis | picth axis | yes | |
magUInf | free stream velocity magnitude | yes | |
lRef | reference length scale for moment calculations | yes | |
Aref | reference area | yes | |
porosity | flag to include porosity contributions | no | no |
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 |
Definition at line 197 of file forceCoeffs.H.
|
private |
Disallow default bitwise copy construct.
forceCoeffs | ( | const word & | name, |
const objectRegistry & | obr, | ||
const dictionary & | dict, | ||
const bool | loadFromFiles = false , |
||
const bool | readFields = true |
||
) |
Construct for given objectRegistry and dictionary.
Allow the possibility to load fields from files
Definition at line 202 of file forceCoeffs.C.
References dict, Foam::endl(), Foam::Info, and Foam::read().
|
virtual |
Destructor.
Definition at line 232 of file forceCoeffs.C.
|
private |
Disallow default bitwise assignment.
|
protected |
Create the output files.
Definition at line 45 of file forceCoeffs.C.
References forceCoeffs::CdBinFilePtr_, forceCoeffs::ClBinFilePtr_, forceCoeffs::CmBinFilePtr_, forceCoeffs::coeffFilePtr_, functionObjectFile::createFile(), forces::nBin_, forceCoeffs::writeBinHeader(), forceCoeffs::writeIntegratedHeader(), and functionObjectFile::writeToFile().
Write header for integrated data.
Definition at line 68 of file forceCoeffs.C.
References Foam::endl().
Referenced by forceCoeffs::createFiles().
Write header for binned data.
Definition at line 93 of file forceCoeffs.C.
References Foam::endl(), forAll, Foam::jn(), Foam::name(), Foam::nl, and Foam::tab.
Referenced by forceCoeffs::createFiles().
|
protected |
Write integrated data.
Definition at line 148 of file forceCoeffs.C.
References coeff, Foam::endl(), Foam::Info, Foam::sum(), and token::TAB.
Write binned data.
Definition at line 176 of file forceCoeffs.C.
References Foam::endl(), and Foam::tab.
TypeName | ( | "forceCoeffs" | ) |
Runtime type information.
|
virtual |
Read the forces data.
Reimplemented from forces.
Definition at line 238 of file forceCoeffs.C.
References dict, Foam::dimless, dictionary::lookup(), mesh, IOobject::NO_READ, IOobject::NO_WRITE, tmp::ptr(), forces::read(), fvMesh::time(), Time::timeName(), and Vector< scalar >::zero.
|
virtual |
Execute, currently does nothing.
Reimplemented from forces.
Definition at line 304 of file forceCoeffs.C.
References forces::calcForcesMoment(), Foam::dimForce, Foam::dimLength, dragCoeffs(), Foam::endl(), forAll, Foam::Info, Foam::nl, pDyn(), List::setSize(), Foam::sum(), Foam::tab, and Foam::type().
|
virtual |
Execute at the final time-loop, currently does nothing.
Reimplemented from forces.
Definition at line 426 of file forceCoeffs.C.
|
virtual |
Called when time was set at the end of the Time::operator++.
Reimplemented from forces.
Definition at line 432 of file forceCoeffs.C.
|
virtual |
|
private |
Lift.
Definition at line 206 of file forceCoeffs.H.
|
private |
Drag.
Definition at line 209 of file forceCoeffs.H.
|
private |
Pitch.
Definition at line 212 of file forceCoeffs.H.
|
private |
Velocity magnitude.
Definition at line 218 of file forceCoeffs.H.
|
private |
Length.
Definition at line 224 of file forceCoeffs.H.
|
private |
Area.
Definition at line 227 of file forceCoeffs.H.
Integrated coefficients.
Definition at line 233 of file forceCoeffs.H.
Referenced by forceCoeffs::createFiles().
Moment coefficient.
Definition at line 236 of file forceCoeffs.H.
Referenced by forceCoeffs::createFiles().
Drag coefficient.
Definition at line 239 of file forceCoeffs.H.
Referenced by forceCoeffs::createFiles().
Lift coefficient.
Definition at line 242 of file forceCoeffs.H.
Referenced by forceCoeffs::createFiles().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.