Go to the documentation of this file.
52 if (!isA<wallFvPatch>(
patch()))
55 <<
"Invalid wall function specification" <<
nl
56 <<
" Patch type for patch " <<
patch().name()
57 <<
" must be wall" <<
nl
58 <<
" Current patch type is " <<
patch().type() <<
nl <<
endl
73 fixedValueFvPatchScalarField(
p, iF),
93 fixedValueFvPatchScalarField(ptf,
p, iF, mapper),
97 Prt_(ptf.Prt_.clone(
p.
patch())),
98 z0_(ptf.z0_.clone(
p.
patch()))
112 fixedValueFvPatchScalarField(
p, iF,
dict),
115 dict.getCheckOrDefault<scalar>
124 dict.getCheckOrDefault<scalar>
145 fixedValueFvPatchScalarField(wfpsf),
147 kappa_(wfpsf.kappa_),
149 Prt_(wfpsf.Prt_.clone(this->
patch().
patch())),
163 fixedValueFvPatchScalarField(wfpsf, iF),
165 kappa_(wfpsf.kappa_),
167 Prt_(wfpsf.Prt_.clone(this->
patch().
patch())),
183 const label patchi =
patch().index();
186 const auto& turbModel =
192 internalField().
group()
198 const tmp<scalarField> tnuw = turbModel.nu(patchi);
201 const tmp<volScalarField> tk = turbModel.k();
206 const scalar t = db().time().timeOutputValue();
207 const scalar
Pr =
Pr_->value(t);
213 <<
"Pr cannot be negative or zero. "
214 <<
"Please check input Pr = " <<
Pr
225 if (
Prt[i] < VSMALL || z0[i] < VSMALL)
228 <<
"Elements of input surface fields can only be positive. "
229 <<
"Please check input fields z0 and Prt."
241 const label celli = faceCells[facei];
244 const scalar Edash = (
y[facei] + z0[facei])/(z0[facei] + 1
e-4);
254 alphatw =
max(alphatw, scalar(0.01));
265 fixedValueFvPatchScalarField::autoMap(m);
277 fixedValueFvPatchScalarField::rmap(ptf, addr);
280 refCast<const atmAlphatkWallFunctionFvPatchScalarField>(ptf);
282 z0_->rmap(nrwfpsf.
z0_(), addr);
290 os.writeEntry(
"Cmu",
Cmu_);
295 writeEntry(
"value",
os);
304 atmAlphatkWallFunctionFvPatchScalarField
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
atmAlphatkWallFunctionFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
fvPatchField< scalar > fvPatchScalarField
virtual void write(Ostream &) const
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
virtual void updateCoeffs()
constexpr const char *const group
A class for managing temporary objects.
static const word propertiesName
Ostream & endl(Ostream &os)
Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a c...
virtual void write(Ostream &) const
autoPtr< PatchFunction1< scalar > > Prt_
dimensionedScalar pow025(const dimensionedScalar &ds)
Generic templated field type.
ThermalDiffusivity< CompressibleTurbulenceModel< fluidThermo > > turbulenceModel
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
dimensionedScalar Pr("Pr", dimless, laminarTransport)
dimensionedScalar Prt("Prt", dimless, laminarTransport)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
T getCheckOrDefault(const word &keyword, const T &deflt, const Predicate &pred, enum keyType::option matchOpt=keyType::REGEX) const
label max(const labelHashSet &set, label maxValue=labelMin)
autoPtr< PatchFunction1< scalar > > z0_
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...
errorManip< error > abort(error &err)
virtual void rmap(const fvPatchScalarField &, const labelList &)
virtual void updateCoeffs()
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
static MinMax< T > ge(const T &minVal)
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
dimensionedScalar sqrt(const dimensionedScalar &ds)
autoPtr< Function1< scalar > > Pr_
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
const dimensionedScalar e
virtual void autoMap(const fvPatchFieldMapper &)
This boundary condition provides a wall constraint on the kinematic turbulent thermal conductivity (i...
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)
UList< label > labelUList
A UList of labels.
Generic GeometricField class.
Smooth ATC in cells next to a set of patches supplied by type.
A min/max value pair with additional methods. In addition to conveniently storing values,...
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...