41 const Foam::scalar Foam::atmosphericBoundaryLayer::kappaDefault_ = 0.41;
42 const Foam::scalar Foam::atmosphericBoundaryLayer::CmuDefault_ = 0.09;
52 return z0_->value(flowDir_ &
C, yDir_ &
C);
61 return kappa_*Uref_/(
log((Zref_ + z0)/z0));
85 yDir_(zDir_ ^ flowDir_),
86 kappa_(lookupOrDefault<scalar>(
"kappa",
dimless, kappaDefault_)),
87 Cmu_(lookupOrDefault<scalar>(
"Cmu",
dimless, CmuDefault_)),
112 offset_(
found(
"Ulower")),
113 Ulower_(lookupOrDefault<scalar>(
"Ulower",
dimVelocity, 0)),
117 lookupOrDefault<scalar>
125 if (
mag(flowDir_) < small ||
mag(zDir_) < small)
128 <<
"magnitude of n or z must be greater than zero"
173 *
log(
max(z - zGround + z0, z0)/z0)
178 return flowDir_*Un + flowDir_*Ulower_;
226 pow3(Ustar(z0))/(kappa_*(zmg + z0))
231 tepsilon.
ref() =
pos0(zmg)*tepsilon() +
neg(zmg)*epsilonLower_;
251 writeEntry(os,
"epsilonLower", epsilonLower_);
Graphite solid properties.
Run-time selectable function of two variables.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
This class provides functions to evaluate the velocity and turbulence distributions appropriate for a...
tmp< scalarField > z0(const vectorField &C) const
Return surface roughness height.
atmosphericBoundaryLayer(const objectRegistry &obr)
Read construct from objectRegistry.
static const atmosphericBoundaryLayer & New(const objectRegistry &db)
Return a reference to the atmosphericBoundaryLayer.
static const word dictName
The name of the dictionary.
tmp< scalarField > Ustar(const scalarField &z0) const
Return friction velocity.
tmp< vectorField > U(const vectorField &p) const
Return the velocity field.
virtual bool write(const bool write=true) const
Inherit write from regIOobject.
tmp< scalarField > k(const vectorField &p) const
Return the turbulent kinetic energy field.
tmp< scalarField > epsilon(const vectorField &p) const
Return the turbulent dissipation rate field.
Registry of regIOobjects.
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type and name.
bool foundObject(const word &name) const
Is the named Type in registry.
void store()
Transfer ownership of this object to its registry.
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
A class for handling words, derived from string.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const unitSet & lookup(const word &unitName)
Lookup and return the named unit from the table.
const dimensionSet & dimless
dimensionedScalar pos0(const dimensionedScalar &ds)
const dimensionSet & dimMass
const dimensionSet & dimLength
String typeName(const std::type_info &info)
Return the un-mangled name given the standard type info.
errorManip< error > abort(error &err)
dimensionedScalar log(const dimensionedScalar &ds)
tmp< DimensionedField< typename outerProduct< Type, Type >::type, GeoMesh, Field >> sqr(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
const dimensionSet & dimVelocity
const dimensionSet & dimTime
dimensionSet normalised(const dimensionSet &)
void pow3(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
dimensionedScalar neg(const dimensionedScalar &ds)
tmp< DimensionedField< scalar, GeoMesh, Field > > mag(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
const dimensionSet & dimEnergy
void sqrt(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
defineTypeNameAndDebug(atmosphericBoundaryLayer, 0)
tmp< DimensionedField< TypeR, GeoMesh, Field > > New(const tmp< DimensionedField< TypeR, GeoMesh, Field >> &tdf1, const word &name, const dimensionSet &dimensions)
void writeEntry(Ostream &os, const word &key, const DimensionedFieldFunction< DimensionedFieldType > &f)
dimensioned< Type > max(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)