44 const label patchi = patch().index();
51 internalField().group()
59 const scalarField magUpn(
mag(Up - (Up & patch().nf())*patch().nf()));
66 const scalar t = db().time().timeOutputValue();
70 for (
const scalar z : z0)
75 <<
"z0 field can only contain positive values. "
76 <<
"Please check input field z0."
83 auto&
nutw = tnutw.ref();
87 const scalar Edash = (
y[facei] + z0[facei])/(z0[facei] + 1
e-4);
88 const scalar uStar = magUpn[facei]*kappa/
log(
max(Edash, 1.0 + 1
e-4));
90 nutw[facei] =
sqr(uStar)/
max(magUpn[facei], 1
e-6)*
y[facei] - nuw[facei];
139 boundNut_(ptf.boundNut_),
140 z0_(ptf.z0_.clone(
p.patch()))
152 boundNut_(
dict.getOrDefault<
bool>(
"boundNut", true)),
163 boundNut_(rwfpsf.boundNut_),
164 z0_(rwfpsf.z0_.clone(this->patch().patch()))
175 boundNut_(rwfpsf.boundNut_),
176 z0_(rwfpsf.z0_.clone(this->patch().patch()))
205 refCast<const atmNutUWallFunctionFvPatchScalarField>(ptf);
209 z0_->rmap(nrwfpsf.z0_(), addr);
218 writeEntry(
"value",
os);
Macros for easy insertion into run-time selection tables.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
static word groupName(StringType base, const word &group)
Create dot-delimited name.group string.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Ostream & writeEntryIfDifferent(const word &key, const T &value1, const T &value2)
Write a keyword/value entry only when the two values differ.
Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a c...
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
void rmap(const atmBoundaryLayer &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
This boundary condition provides a wall constraint on the turbulent viscosity (i.e....
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
void writeLocalEntries(Ostream &) const
Write local wall function variables.
virtual void rmap(const fvPatchScalarField &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
virtual tmp< scalarField > calcNut() const
Calculate the turbulent viscosity.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
virtual bool write()
Write the output fields.
A FieldMapper for finite-volume patch fields.
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
This boundary condition provides a wall function for the turbulent viscosity (i.e....
static const nutWallFunctionFvPatchScalarField & nutw(const turbulenceModel &turbModel, const label patchi)
Return the nut patchField for the given wall patch.
wallFunctionCoefficients wallCoeffs_
Wall-function coefficients.
A class for managing temporary objects.
Abstract base class for turbulence models (RAS, LES and laminar).
static const word propertiesName
Default name of the turbulence properties dictionary.
scalar kappa() const noexcept
Return the object: kappa.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
OBJstream os(runTime.globalPath()/outputName)
#define makePatchTypeField(PatchTypeField, typePatchTypeField)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar log(const dimensionedScalar &ds)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define forAll(list, i)
Loop across all elements in list.