57 if (!isA<wallFvPatch>(patch()))
60 <<
"Patch type for patch " << patch().name() <<
" must be wall\n"
61 <<
"Current patch type is " << patch().type() <<
nl
73 return 9.24*(
pow(Prat, 0.75) - 1)*(1 + 0.28*
exp(-0.007*Prat));
85 auto& ypsf = typsf.ref();
93 const scalar
f = ypt - (
log(
E_*ypt)/
kappa_ + P[facei])/Prat[facei];
94 const scalar df = 1.0 - 1.0/(ypt*
kappa_*Prat[facei]);
95 const scalar yptNew = ypt -
f/df;
103 ypsf[facei] = yptNew;
130 const label patchi = patch().index();
133 const auto& turbModel =
164 (prevAlphat + alphaw)*hew.
snGrad()
183 auto& alphatConv = talphatConv.ref();
192 const scalar
A = qDot[facei]*rhow[facei]*
uTau[facei]*
y[facei];
193 const scalar
B = qDot[facei]*
Pr[facei]*
yPlus[facei];
200 const scalar
A = qDot[facei]*rhow[facei]*
uTau[facei]*
y[facei];
206 0.5*rhow[facei]*
uTau[facei]
212 alphatConv[facei] =
max(0.0,
alphaEff - alphaw[facei]);
221alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::
222alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
238alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::
239alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
247 Prt_(
dict.getOrDefault<scalar>(
"Prt", 0.85)),
248 Cmu_(
dict.getOrDefault<scalar>(
"Cmu", 0.09)),
249 kappa_(
dict.getOrDefault<scalar>(
"kappa", 0.41)),
250 E_(
dict.getOrDefault<scalar>(
"E", 9.8))
254alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::
255alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
271alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::
272alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
280 kappa_(awfpsf.kappa_),
285alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::
286alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
295 kappa_(awfpsf.kappa_),
311 fixedValueFvPatchScalarField::updateCoeffs();
326 writeEntry(
"value",
os);
static const Foam::dimensionedScalar A("", Foam::dimPressure, 611.21)
static const Foam::dimensionedScalar B("", Foam::dimless, 18.678)
Macros for easy insertion into run-time selection tables.
Graphite solid properties.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
void writeEntry(const word &keyword, Ostream &os) const
Write the field as a dictionary entry.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
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 & writeEntry(const keyType &key, const T &value)
Write a keyword/value entry.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
This boundary condition provides a thermal wall function for turbulent thermal diffusivity (usuallyal...
scalar kappa_
Von Karman constant.
static scalar tolerance_
Absolute tolerance.
tmp< scalarField > calcAlphat(const scalarField &prevAlphat) const
Update turbulent thermal diffusivity.
tmp< scalarField > yPlusTherm(const scalarField &P, const scalarField &Prat) const
Calculate y+ at the edge of the thermal laminar sublayer.
tmp< scalarField > Psmooth(const scalarField &Prat) const
'P' function
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
scalar Cmu_
Empirical model coefficient.
scalar E_
Wall roughness parameter.
static label maxIters_
Maximum number of iterations.
void checkType()
Check the type of the patch.
scalar Prt_
Turbulent Prandtl number.
Abstract base-class for all alphatWallFunctions supporting phase-change.
scalarField dmdt_
Rate of phase-change.
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.
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Class to represent a system of phases and model interfacial transfers between them.
static const word propertiesName
Default name of the phase properties dictionary.
const phaseModelList & phases() const
Return the phase models.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
const word & name() const
A class for managing temporary objects.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
OBJstream os(runTime.globalPath()/outputName)
#define makePatchTypeField(PatchTypeField, typePatchTypeField)
volScalarField alphaEff("alphaEff", turbulence->nu()/Pr+alphat)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedScalar exp(const dimensionedScalar &ds)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar log(const dimensionedScalar &ds)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
tmp< faMatrix< Type > > operator==(const faMatrix< Type > &, const faMatrix< Type > &)
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
errorManipArg< error, int > exit(error &err, const int errNo=1)
dimensionedScalar pow025(const dimensionedScalar &ds)
constexpr char nl
The newline '\n' character (0x0a)
dimensionedScalar Pr("Pr", dimless, laminarTransport)
#define forAll(list, i)
Loop across all elements in list.