37 namespace compressible
44 void mutWallFunctionFvPatchScalarField::checkType()
46 if (!isA<wallFvPatch>(patch()))
48 FatalErrorIn(
"mutWallFunctionFvPatchScalarField::checkType()")
49 <<
"Invalid wall function specification" <<
nl
50 <<
" Patch type for patch " << patch().name()
51 <<
" must be wall" <<
nl
52 <<
" Current patch type is " << patch().type() <<
nl <<
endl
58 scalar mutWallFunctionFvPatchScalarField::calcYPlusLam
66 for (
int i=0; i<10; i++)
77 const label patchI = patch().index();
85 const scalar Cmu25 =
pow(Cmu_, 0.25);
92 label faceCellI = patch().faceCells()[faceI];
95 Cmu25*y[faceI]*
sqrt(k[faceCellI])/(muw[faceI]/rhow[faceI]);
97 if (yPlus > yPlusLam_)
99 mutw[faceI] = muw[faceI]*(yPlus*kappa_/
log(E_*yPlus) - 1);
107 void mutWallFunctionFvPatchScalarField::writeLocalEntries(
Ostream& os)
const
117 mutWallFunctionFvPatchScalarField::mutWallFunctionFvPatchScalarField
123 fixedValueFvPatchScalarField(p, iF),
127 yPlusLam_(calcYPlusLam(kappa_, E_))
131 mutWallFunctionFvPatchScalarField::mutWallFunctionFvPatchScalarField
139 fixedValueFvPatchScalarField(ptf, p, iF, mapper),
147 mutWallFunctionFvPatchScalarField::mutWallFunctionFvPatchScalarField
154 fixedValueFvPatchScalarField(p, iF, dict),
158 yPlusLam_(calcYPlusLam(kappa_, E_))
162 mutWallFunctionFvPatchScalarField::mutWallFunctionFvPatchScalarField
167 fixedValueFvPatchScalarField(wfpsf),
175 mutWallFunctionFvPatchScalarField::mutWallFunctionFvPatchScalarField
181 fixedValueFvPatchScalarField(wfpsf, iF),
191 void mutWallFunctionFvPatchScalarField::updateCoeffs()
195 fixedValueFvPatchScalarField::updateCoeffs();
201 const label patchI = patch().index();
212 return pow(Cmu_, 0.25)*y*
sqrt(kwc)/(muw/rhow);
216 void mutWallFunctionFvPatchScalarField::write(
Ostream& os)
const
219 writeLocalEntries(os);
220 writeEntry(
"value", os);