Go to the documentation of this file.
44 const label patchi =
patch().index();
46 const auto& turbModel =
52 internalField().
group()
65 const scalar t = db().time().timeOutputValue();
69 for (
const scalar z : z0)
74 <<
"z0 field can only contain positive values. "
75 <<
"Please check input field z0."
82 auto&
nutw = tnutw.ref();
86 const scalar Edash = (
y[facei] + z0[facei])/(z0[facei] + 1
e-4);
87 const scalar uStar = magUpn[facei]*
kappa_/
log(
max(Edash, 1.0 + 1
e-4));
89 nutw[facei] =
sqr(uStar)/
max(magUpn[facei], 1
e-6)*
y[facei] - nuw[facei];
124 boundNut_(ptf.boundNut_),
125 z0_(ptf.z0_.clone(
p.
patch()))
137 boundNut_(
dict.getOrDefault<
bool>(
"boundNut", true)),
148 boundNut_(rwfpsf.boundNut_),
160 boundNut_(rwfpsf.boundNut_),
172 nutUWallFunctionFvPatchScalarField::autoMap(m);
183 nutUWallFunctionFvPatchScalarField::rmap(ptf, addr);
186 refCast<const atmNutUWallFunctionFvPatchScalarField>(ptf);
188 z0_->rmap(nrwfpsf.z0_(), addr);
196 os.writeEntry(
"boundNut", boundNut_);
198 writeEntry(
"value",
os);
207 atmNutUWallFunctionFvPatchScalarField
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
fvPatchField< scalar > fvPatchScalarField
virtual void write(Ostream &) const
virtual tmp< scalarField > calcNut() const
constexpr const char *const group
virtual void write(Ostream &) const
A class for managing temporary objects.
atmNutUWallFunctionFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
static const word propertiesName
virtual const volVectorField & U(const turbulenceModel &turb) const
virtual void rmap(const fvPatchScalarField &, const labelList &)
This boundary condition provides a wall constraint on the turbulent viscosity (i.e....
Generic templated field type.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
virtual tmp< Field< Type > > patchInternalField() const
label max(const labelHashSet &set, label maxValue=labelMin)
Abstract base class for turbulence models (RAS, LES and laminar).
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
dimensionedScalar log(const dimensionedScalar &ds)
OBJstream os(runTime.globalPath()/outputName)
Macros for easy insertion into run-time selection tables.
Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a c...
errorManipArg< error, int > exit(error &err, const int errNo=1)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
#define FatalErrorInFunction
This boundary condition provides a wall constraint on the turbulent viscosity, i.e....
dimensionedSymmTensor sqr(const dimensionedVector &dv)
virtual void autoMap(const fvPatchFieldMapper &)
static const nutWallFunctionFvPatchScalarField & nutw(const turbulenceModel &turbModel, const label patchi)
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
const dimensionedScalar e
static tmp< T > New(Args &&... args)
Foam::fvPatchFieldMapper.
static word groupName(StringType base, const word &group)
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
makePatchTypeField(fvPatchScalarField, atmBoundaryLayerInletEpsilonFvPatchScalarField)
T getOrDefault(const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
virtual void writeLocalEntries(Ostream &) const
const Boundary & boundaryField() const
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...