mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
wall-functions: reorganised the used of ROOTSMALL to avoid /0.
This commit is contained in:
@ -66,10 +66,9 @@ tmp<scalarField> mutUSpaldingWallFunctionFvPatchScalarField::calcUTau
|
||||
forAll(mutw, faceI)
|
||||
{
|
||||
scalar ut =
|
||||
sqrt((mutw[faceI] + muw[faceI])*magGradU[faceI]/rhow[faceI])
|
||||
+ ROOTVSMALL;
|
||||
sqrt((mutw[faceI] + muw[faceI])*magGradU[faceI]/rhow[faceI]);
|
||||
|
||||
if (ut > VSMALL)
|
||||
if (ut > ROOTVSMALL)
|
||||
{
|
||||
int iter = 0;
|
||||
scalar err = GREAT;
|
||||
@ -93,7 +92,7 @@ tmp<scalarField> mutUSpaldingWallFunctionFvPatchScalarField::calcUTau
|
||||
err = mag((ut - uTauNew)/ut);
|
||||
ut = uTauNew;
|
||||
|
||||
} while (ut > VSMALL && err > 0.01 && ++iter < 10);
|
||||
} while (ut > ROOTVSMALL && err > 0.01 && ++iter < 10);
|
||||
|
||||
uTau[faceI] = max(0.0, ut);
|
||||
}
|
||||
@ -109,11 +108,15 @@ tmp<scalarField> mutUSpaldingWallFunctionFvPatchScalarField::calcMut() const
|
||||
|
||||
const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
|
||||
const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI];
|
||||
const scalarField magGradU = mag(Uw.snGrad()) + ROOTVSMALL;
|
||||
const scalarField magGradU = mag(Uw.snGrad());
|
||||
const scalarField& rhow = rasModel.rho().boundaryField()[patchI];
|
||||
const scalarField& muw = rasModel.mu().boundaryField()[patchI];
|
||||
|
||||
return max(scalar(0), rhow*sqr(calcUTau(magGradU))/magGradU - muw);
|
||||
return max
|
||||
(
|
||||
scalar(0),
|
||||
rhow*sqr(calcUTau(magGradU))/(magGradU + ROOTVSMALL) - muw
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -46,10 +46,14 @@ tmp<scalarField> nutUSpaldingWallFunctionFvPatchScalarField::calcNut() const
|
||||
|
||||
const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
|
||||
const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI];
|
||||
const scalarField magGradU = mag(Uw.snGrad()) + ROOTVSMALL;
|
||||
const scalarField magGradU = mag(Uw.snGrad());
|
||||
const scalarField& nuw = rasModel.nu().boundaryField()[patchI];
|
||||
|
||||
return max(scalar(0), sqr(calcUTau(magGradU))/magGradU - nuw);
|
||||
return max
|
||||
(
|
||||
scalar(0),
|
||||
sqr(calcUTau(magGradU))/(magGradU + ROOTVSMALL) - nuw
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -73,10 +77,9 @@ tmp<scalarField> nutUSpaldingWallFunctionFvPatchScalarField::calcUTau
|
||||
|
||||
forAll(uTau, facei)
|
||||
{
|
||||
scalar ut =
|
||||
sqrt((nutw[facei] + nuw[facei])*magGradU[facei]) + ROOTVSMALL;
|
||||
scalar ut = sqrt((nutw[facei] + nuw[facei])*magGradU[facei]);
|
||||
|
||||
if (ut > VSMALL)
|
||||
if (ut > ROOTVSMALL)
|
||||
{
|
||||
int iter = 0;
|
||||
scalar err = GREAT;
|
||||
@ -100,7 +103,7 @@ tmp<scalarField> nutUSpaldingWallFunctionFvPatchScalarField::calcUTau
|
||||
err = mag((ut - uTauNew)/ut);
|
||||
ut = uTauNew;
|
||||
|
||||
} while (ut > VSMALL && err > 0.01 && ++iter < 10);
|
||||
} while (ut > ROOTVSMALL && err > 0.01 && ++iter < 10);
|
||||
|
||||
uTau[facei] = max(0.0, ut);
|
||||
}
|
||||
|
||||
@ -48,14 +48,16 @@ tmp<scalarField> nutUTabulatedWallFunctionFvPatchScalarField::calcNut() const
|
||||
const scalarField& y = rasModel.y()[patchI];
|
||||
const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI];
|
||||
const scalarField magUp = mag(Uw.patchInternalField() - Uw);
|
||||
const scalarField magGradU = mag(Uw.snGrad()) + ROOTVSMALL;
|
||||
const scalarField magGradU = mag(Uw.snGrad());
|
||||
const scalarField& nuw = rasModel.nu().boundaryField()[patchI];
|
||||
|
||||
return
|
||||
max
|
||||
(
|
||||
scalar(0),
|
||||
sqr(magUp/(calcUPlus(magUp*y/nuw) + ROOTVSMALL))/magGradU - nuw
|
||||
sqr(magUp/(calcUPlus(magUp*y/nuw) + ROOTVSMALL))
|
||||
/(magGradU + ROOTVSMALL)
|
||||
- nuw
|
||||
);
|
||||
}
|
||||
|
||||
@ -190,7 +192,6 @@ tmp<scalarField> nutUTabulatedWallFunctionFvPatchScalarField::yPlus() const
|
||||
void nutUTabulatedWallFunctionFvPatchScalarField::write(Ostream& os) const
|
||||
{
|
||||
fvPatchField<scalar>::write(os);
|
||||
// writeLocalEntries(os); // not applicable to this nut BC
|
||||
os.writeKeyword("uPlusTable") << uPlusTableName_
|
||||
<< token::END_STATEMENT << nl;
|
||||
writeEntry("value", os);
|
||||
|
||||
Reference in New Issue
Block a user