Refactored nutSpalartAllmarasStandardWallFunction
This wall function is now the same as nutUWallFunction, we simply derive from it to enable backward compatibility.
This commit is contained in:
parent
68d275b2b8
commit
b31f23321a
2 changed files with 10 additions and 128 deletions
|
@ -38,76 +38,6 @@ namespace incompressible
|
||||||
namespace RASModels
|
namespace RASModels
|
||||||
{
|
{
|
||||||
|
|
||||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
|
||||||
|
|
||||||
tmp<scalarField>
|
|
||||||
nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::calcNut() const
|
|
||||||
{
|
|
||||||
const label patchI = patch().index();
|
|
||||||
|
|
||||||
const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
|
|
||||||
const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI];
|
|
||||||
const scalarField magUp = mag(Uw.patchInternalField() - Uw);
|
|
||||||
const scalarField& nuw = rasModel.nu().boundaryField()[patchI];
|
|
||||||
|
|
||||||
tmp<scalarField> tyPlus = calcYPlus(magUp);
|
|
||||||
scalarField& yPlus = tyPlus();
|
|
||||||
|
|
||||||
tmp<scalarField> tnutw(new scalarField(patch().size(), 0.0));
|
|
||||||
scalarField& nutw = tnutw();
|
|
||||||
|
|
||||||
forAll(yPlus, facei)
|
|
||||||
{
|
|
||||||
if (yPlus[facei] > yPlusLam_)
|
|
||||||
{
|
|
||||||
nutw[facei] =
|
|
||||||
nuw[facei]*(yPlus[facei]*kappa_/log(E_*yPlus[facei]) - 1.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return tnutw;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
tmp<scalarField>
|
|
||||||
nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::calcYPlus
|
|
||||||
(
|
|
||||||
const scalarField& magUp
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
const label patchI = patch().index();
|
|
||||||
|
|
||||||
const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
|
|
||||||
const scalarField& y = rasModel.y()[patchI];
|
|
||||||
const scalarField& nuw = rasModel.nu().boundaryField()[patchI];
|
|
||||||
|
|
||||||
tmp<scalarField> tyPlus(new scalarField(patch().size(), 0.0));
|
|
||||||
scalarField& yPlus = tyPlus();
|
|
||||||
|
|
||||||
forAll(yPlus, facei)
|
|
||||||
{
|
|
||||||
scalar kappaRe = kappa_*magUp[facei]*y[facei]/nuw[facei];
|
|
||||||
|
|
||||||
scalar yp = yPlusLam_;
|
|
||||||
scalar ryPlusLam = 1.0/yp;
|
|
||||||
|
|
||||||
int iter = 0;
|
|
||||||
scalar yPlusLast = 0.0;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
yPlusLast = yp;
|
|
||||||
yp = (kappaRe + yp)/(1.0 + log(E_*yp));
|
|
||||||
|
|
||||||
} while(mag(ryPlusLam*(yp - yPlusLast)) > 0.01 && ++iter < 10 );
|
|
||||||
|
|
||||||
yPlus[facei] = max(0.0, yp);
|
|
||||||
}
|
|
||||||
|
|
||||||
return tyPlus;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::
|
nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::
|
||||||
|
@ -117,7 +47,7 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
nutWallFunctionFvPatchScalarField(p, iF)
|
nutUWallFunctionFvPatchScalarField(p, iF)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
@ -130,7 +60,7 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
||||||
const fvPatchFieldMapper& mapper
|
const fvPatchFieldMapper& mapper
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
nutWallFunctionFvPatchScalarField(ptf, p, iF, mapper)
|
nutUWallFunctionFvPatchScalarField(ptf, p, iF, mapper)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
@ -142,7 +72,7 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
||||||
const dictionary& dict
|
const dictionary& dict
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
nutWallFunctionFvPatchScalarField(p, iF, dict)
|
nutUWallFunctionFvPatchScalarField(p, iF, dict)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
@ -152,7 +82,7 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
||||||
const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField& sawfpsf
|
const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField& sawfpsf
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
nutWallFunctionFvPatchScalarField(sawfpsf)
|
nutUWallFunctionFvPatchScalarField(sawfpsf)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
@ -163,35 +93,10 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
nutWallFunctionFvPatchScalarField(sawfpsf, iF)
|
nutUWallFunctionFvPatchScalarField(sawfpsf, iF)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
tmp<scalarField>
|
|
||||||
nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::yPlus() const
|
|
||||||
{
|
|
||||||
const label patchI = patch().index();
|
|
||||||
const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
|
|
||||||
const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI];
|
|
||||||
const scalarField magUp = mag(Uw.patchInternalField() - Uw);
|
|
||||||
|
|
||||||
return calcYPlus(magUp);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::write
|
|
||||||
(
|
|
||||||
Ostream& os
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
fvPatchField<scalar>::write(os);
|
|
||||||
writeLocalEntries(os);
|
|
||||||
writeEntry("value", os);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
makePatchTypeField
|
makePatchTypeField
|
||||||
|
|
|
@ -26,7 +26,9 @@ Class
|
||||||
nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Wall function boundary condition for walls
|
This boundary condition is the same as nutUWallFunction. We will simply
|
||||||
|
derive from nutUWallFunctionFvPatchScalarField to enable backward
|
||||||
|
compatibility.
|
||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
|
nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
|
||||||
|
@ -36,7 +38,7 @@ SourceFiles
|
||||||
#ifndef nutSpalartAllmarasStandardWallFunctionFvPatchScalarField_H
|
#ifndef nutSpalartAllmarasStandardWallFunctionFvPatchScalarField_H
|
||||||
#define nutSpalartAllmarasStandardWallFunctionFvPatchScalarField_H
|
#define nutSpalartAllmarasStandardWallFunctionFvPatchScalarField_H
|
||||||
|
|
||||||
#include "nutWallFunctionFvPatchScalarField.H"
|
#include "nutUWallFunctionFvPatchScalarField.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
@ -53,19 +55,8 @@ namespace RASModels
|
||||||
|
|
||||||
class nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
class nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
|
||||||
:
|
:
|
||||||
public nutWallFunctionFvPatchScalarField
|
public nutUWallFunctionFvPatchScalarField
|
||||||
{
|
{
|
||||||
protected:
|
|
||||||
|
|
||||||
// Protected member functions
|
|
||||||
|
|
||||||
//- Calculate yPLus
|
|
||||||
virtual tmp<scalarField> calcYPlus(const scalarField& magUp) const;
|
|
||||||
|
|
||||||
//- Calculate the turbulence viscosity
|
|
||||||
virtual tmp<scalarField> calcNut() const;
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
|
@ -140,20 +131,6 @@ public:
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Member functions
|
|
||||||
|
|
||||||
// Evaluation functions
|
|
||||||
|
|
||||||
//- Calculate and return the yPlus at the boundary
|
|
||||||
virtual tmp<scalarField> yPlus() const;
|
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
|
||||||
|
|
||||||
//- Write
|
|
||||||
virtual void write(Ostream& os) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in a new issue