Computes the Obukhov length field and associated friction velocity field. More...
Public Member Functions | |
TypeName ("ObukhovLength") | |
ObukhovLength (const word &name, const Time &runTime, const dictionary &dict) | |
ObukhovLength (const ObukhovLength &)=delete | |
void | operator= (const ObukhovLength &)=delete |
virtual | ~ObukhovLength ()=default |
void | removeObukhovLength () |
virtual bool | read (const dictionary &dict) |
virtual bool | execute () |
virtual bool | write () |
virtual void | updateMesh (const mapPolyMesh &mpm) |
virtual void | movePoints (const polyMesh &m) |
![]() | |
TypeName ("fvMeshFunctionObject") | |
fvMeshFunctionObject (const word &name, const Time &runTime, const dictionary &dict) | |
fvMeshFunctionObject (const word &name, const objectRegistry &obr, const dictionary &dict) | |
virtual | ~fvMeshFunctionObject ()=default |
![]() | |
TypeName ("regionFunctionObject") | |
regionFunctionObject (const word &name, const Time &runTime, const dictionary &dict) | |
regionFunctionObject (const word &name, const objectRegistry &obr, const dictionary &dict) | |
virtual | ~regionFunctionObject ()=default |
template<class ObjectType > | |
const ObjectType * | lookupObjectPtr (const word &fieldName) const |
template<class ObjectType > | |
ObjectType * | lookupObjectRefPtr (const word &fieldName) const |
![]() | |
stateFunctionObject (const word &name, const Time &runTime) | |
virtual | ~stateFunctionObject ()=default |
dictionary & | propertyDict () |
bool | foundProperty (const word &entryName) const |
void | clearTrigger () |
label | getTrigger () const |
bool | setTrigger (const label triggeri, bool increaseOnly=true) |
bool | getDict (const word &entryName, dictionary &dict) const |
bool | getObjectDict (const word &objectName, const word &entryName, dictionary &dict) const |
template<class Type > | |
Type | getProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const |
template<class Type > | |
bool | getProperty (const word &entryName, Type &value) const |
template<class Type > | |
void | setProperty (const word &entryName, const Type &value) |
template<class Type > | |
Type | getObjectProperty (const word &objectName, const word &entryName, const Type &defaultValue=Type(Zero)) const |
template<class Type > | |
bool | getObjectProperty (const word &objectName, const word &entryName, Type &value) const |
template<class Type > | |
void | setObjectProperty (const word &objectName, const word &entryName, const Type &value) |
template<class Type > | |
void | setResult (const word &entryName, const Type &value) |
template<class Type > | |
void | setObjectResult (const word &objectName, const word &entryName, const Type &value) |
template<class Type > | |
Type | getResult (const word &entryName, const Type &defaultValue=Type(Zero)) const |
template<class Type > | |
Type | getObjectResult (const word &objectName, const word &entryName, const Type &defaultValue=Type(Zero)) const |
template<class Type > | |
bool | getObjectResult (const word &objectName, const word &entryName, Type &value) const |
word | resultType (const word &entryName) const |
word | objectResultType (const word &objectName, const word &entryName) const |
wordList | objectResultEntries () const |
wordList | objectResultEntries (const word &objectName) const |
void | writeResultEntries (Ostream &os) const |
void | writeResultEntries (const word &objectName, Ostream &os) const |
void | writeAllResultEntries (Ostream &os) const |
![]() | |
timeFunctionObject (const word &name, const Time &runTime) | |
virtual | ~timeFunctionObject ()=default |
const Time & | time () const |
objectRegistry & | storedObjects () |
const objectRegistry & | storedObjects () const |
![]() | |
declareRunTimeSelectionTable (autoPtr, functionObject, dictionary,(const word &name, const Time &runTime, const dictionary &dict),(name, runTime, dict)) | |
functionObject (const word &name, const bool withNamePrefix=defaultUseNamePrefix) | |
autoPtr< functionObject > | clone () const |
virtual | ~functionObject ()=default |
virtual const word & | type () const =0 |
const word & | name () const noexcept |
bool | useNamePrefix () const noexcept |
bool | useNamePrefix (bool on) noexcept |
virtual bool | execute (const label subIndex) |
virtual bool | end () |
virtual bool | adjustTimeStep () |
virtual bool | filesModified () const |
Protected Member Functions | |
bool | calcOL () |
![]() | |
fvMeshFunctionObject (const fvMeshFunctionObject &)=delete | |
void | operator= (const fvMeshFunctionObject &)=delete |
![]() | |
virtual const objectRegistry & | obr () const |
template<class ObjectType > | |
bool | foundObject (const word &fieldName) const |
template<class ObjectType > | |
const ObjectType * | cfindObject (const word &fieldName) const |
template<class ObjectType > | |
const ObjectType * | findObject (const word &fieldName) const |
template<class ObjectType > | |
ObjectType * | findObject (const word &fieldName) |
template<class ObjectType > | |
ObjectType * | getObjectPtr (const word &fieldName) const |
template<class ObjectType > | |
const ObjectType & | lookupObject (const word &fieldName) const |
template<class ObjectType > | |
ObjectType & | lookupObjectRef (const word &fieldName) const |
template<class ObjectType > | |
bool | store (word &fieldName, const tmp< ObjectType > &tfield, bool cacheable=false) |
template<class ObjectType > | |
bool | storeInDb (const word &fieldName, const tmp< ObjectType > &tfield, const objectRegistry &obr) |
bool | writeObject (const word &fieldName) |
bool | clearObject (const word &fieldName) |
void | clearObjects (const wordList &objNames) |
regionFunctionObject (const regionFunctionObject &)=delete | |
void | operator= (const regionFunctionObject &)=delete |
![]() | |
const functionObjects::properties & | stateDict () const |
functionObjects::properties & | stateDict () |
stateFunctionObject (const stateFunctionObject &)=delete | |
void | operator= (const stateFunctionObject &)=delete |
![]() | |
void | clearOutputObjects (const wordList &objNames) |
timeFunctionObject (const timeFunctionObject &)=delete | |
void | operator= (const timeFunctionObject &)=delete |
![]() | |
word | scopedName (const word &name) const |
Protected Attributes | |
word | UName_ |
word | resultName1_ |
word | resultName2_ |
scalar | rhoRef_ |
scalar | kappa_ |
dimensionedScalar | beta_ |
const dimensionedVector | g_ |
![]() | |
const fvMesh & | mesh_ |
![]() | |
word | subRegistryName_ |
const objectRegistry & | obr_ |
const objectRegistry * | obrPtr_ |
![]() | |
const Time & | time_ |
Additional Inherited Members | |
![]() | |
static autoPtr< functionObject > | New (const word &name, const Time &runTime, const dictionary &dict) |
![]() | |
bool | log |
![]() | |
static int | debug |
static bool | postProcess |
static bool | defaultUseNamePrefix |
static word | outputPrefix |
Computes the Obukhov length field and associated friction velocity field.
When scaled by the ground-normal height, i.e. z
, the Obukhov length becomes a dimensionless stability parameter, i.e. z/L
, for atmospheric boundary layer modelling, expressing the relative roles of buoyancy and shear in the production and dissipation of turbulent kinetic energy.
with
where
![]() | = | Friction velocity [m/s] |
![]() | = | Turbulent viscosity [m2/s] |
![]() | = | Velocity [m/s] |
![]() | = | Obukhov length [m] |
![]() | = | Buoyancy production term [m2/s3] |
![]() | = | Kinematic turbulent thermal conductivity [m2/s]/[kg/m/s] |
![]() | = | Density of fluid [-]/[kg/m3] |
![]() | = | Thermal expansion coefficient [1/K] |
![]() | = | Temperature [K] |
![]() | = | Gravitational acceleration [m/s2] |
![]() | = | A very small number to avoid floating point exceptions |
References:
Definition of the Obukhov length (tag:O): Obukhov, A. M. (1946). Turbulentnost'v temperaturnoj-neodnorodnoj atmosfere. Trudy Inst. Theor. Geofiz. AN SSSR, 1, 95-115. Obukhov, A. M. (1971). Turbulence in an atmosphere with a non-uniform temperature. Boundary-layer meteorology, 2(1), 7-29. DOI:10.1007/BF00718085 Obukhov length. (2016). In American Meteorological Society - Glossary of meteorology. Retrieved Apr 1, 2020, from glossary.ametsoc.org/wiki/Obukhov_length
Required fields:
U | Velocity [m/s] T | Temperature [K] nut | Turbulent viscosity [m2/s] alphat | Kinematic turbulent thermal conductivity [m2/s]/[kg/m/s] g | Gravitational acceleration [m/s2]
Operand | Type | Location |
---|---|---|
input | - | - |
output file | - | - |
output field 1 | volScalarField | $FOAM_CASE/<time>/<ObukhovLength> |
output field 2 | volScalarField | $FOAM_CASE/<time>/<Ustar> |
system/controlDict.functions
: ObukhovLength1 { // Mandatory entries (unmodifiable) type ObukhovLength; libs (fieldFunctionObjects); // Optional entries (runtime modifiable) U U; result1 ObukhovLength; result2 Ustar; rhoRef 1.0; kappa 0.4; beta 3e-3; // Optional (inherited) entries ... }
where the entries mean:
Property | Description | Type | Req'd | Dflt |
---|---|---|---|---|
type | Type name: ObukhovLength | word | yes | - |
libs | Library name: fieldFunctionObjects | word | yes | - |
U | Name of the velocity field | word | no | U |
result1 | Name of the output field for ObukhovLength | word | no | ObukhovLength |
result2 | Name of the output field for Ustar | word | no | Ustar |
rhoRef | Reference density (to convert from kinematic to static pressure) | scalar | no | 1.0 |
kappa | von Kármán constant | scalar | no | 0.40 |
beta | Thermal expansion coefficient | scalar | no | 3e-3 |
The inherited entries are elaborated in:
Minimal example by using the postProcess
utility:
postProcess -func "ObukhovLength(<UField>)"
Definition at line 293 of file ObukhovLength.H.
ObukhovLength | ( | const word & | name, |
const Time & | runTime, | ||
const dictionary & | dict | ||
) |
Definition at line 137 of file ObukhovLength.C.
References dict, and Foam::read().
|
delete |
|
virtualdefault |
|
protected |
Definition at line 44 of file ObukhovLength.C.
References B, ObukhovLength::beta_, dimensioned::dimensions(), Foam::dimLength, Foam::dimless, Foam::dimVelocity, objectRegistry::findObject(), ObukhovLength::g_, objectRegistry::getObjectPtr(), Foam::fvc::grad(), ObukhovLength::kappa_, objectRegistry::lookupObject(), Foam::mag(), Foam::magSqr(), Foam::max(), fvMeshFunctionObject::mesh_, Foam::min(), IOobject::NO_READ, IOobject::NO_WRITE, nut, Foam::pow3(), ObukhovLength::resultName1_, ObukhovLength::resultName2_, rho, rhoPtr, ObukhovLength::rhoRef_, Foam::sign(), Foam::sqr(), Foam::sqrt(), Foam::symm(), Foam::T(), fvMesh::time(), Time::timeName(), U, and ObukhovLength::UName_.
TypeName | ( | "ObukhovLength" | ) |
|
delete |
void removeObukhovLength | ( | ) |
Definition at line 234 of file ObukhovLength.C.
|
virtual |
Reimplemented from regionFunctionObject.
Definition at line 175 of file ObukhovLength.C.
References dict, Foam::constant::electromagnetic::e, and regionFunctionObject::read().
|
virtual |
Implements functionObject.
Definition at line 201 of file ObukhovLength.C.
References Foam::endl(), Log, Foam::name(), Foam::nl, and Foam::type().
|
virtual |
Implements functionObject.
Definition at line 215 of file ObukhovLength.C.
References Foam::endl(), Log, Foam::name(), IOobject::name(), Foam::nl, Foam::type(), Ostream::write(), and regIOobject::write().
|
virtual |
Reimplemented from functionObject.
Definition at line 241 of file ObukhovLength.C.
References mapPolyMesh::mesh().
|
virtual |
Reimplemented from functionObject.
Definition at line 250 of file ObukhovLength.C.
|
protected |
Definition at line 302 of file ObukhovLength.H.
Referenced by ObukhovLength::calcOL().
|
protected |
Definition at line 305 of file ObukhovLength.H.
Referenced by ObukhovLength::calcOL().
|
protected |
Definition at line 308 of file ObukhovLength.H.
Referenced by ObukhovLength::calcOL().
|
protected |
Definition at line 311 of file ObukhovLength.H.
Referenced by ObukhovLength::calcOL().
|
protected |
Definition at line 314 of file ObukhovLength.H.
Referenced by ObukhovLength::calcOL().
|
protected |
Definition at line 317 of file ObukhovLength.H.
Referenced by ObukhovLength::calcOL().
|
protected |
Definition at line 320 of file ObukhovLength.H.
Referenced by ObukhovLength::calcOL().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.