Skip to content
Snippets Groups Projects
Commit 64c025c4 authored by Henry's avatar Henry
Browse files

epsilonLowReWallFunction: Debugged and changed handling of G in the low-Re limit to leave unchanged

parent a9ef9101
Branches
Tags
No related merge requests found
......@@ -29,14 +29,9 @@ License
#include "volFields.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
scalar epsilonLowReWallFunctionFvPatchScalarField::yPlusLam
Foam::scalar Foam::epsilonLowReWallFunctionFvPatchScalarField::yPlusLam
(
const scalar kappa,
const scalar E
......@@ -53,35 +48,43 @@ scalar epsilonLowReWallFunctionFvPatchScalarField::yPlusLam
}
void epsilonLowReWallFunctionFvPatchScalarField::calculate
void Foam::epsilonLowReWallFunctionFvPatchScalarField::calculate
(
const turbulenceModel& turbulence,
const turbulenceModel& turbModel,
const List<scalar>& cornerWeights,
const fvPatch& patch,
scalarField& G,
scalarField& epsilon
scalarField& G0,
scalarField& epsilon0
)
{
const label patchi = patch.index();
const scalarField& y = turbulence.y()[patchi];
const scalarField& y = turbModel.y()[patchi];
const scalar Cmu25 = pow025(Cmu_);
const scalar Cmu75 = pow(Cmu_, 0.75);
const tmp<volScalarField> tk = turbulence.k();
const tmp<volScalarField> tk = turbModel.k();
const volScalarField& k = tk();
const tmp<scalarField> tnuw = turbulence.nu(patchi);
const tmp<scalarField> tnuw = turbModel.nu(patchi);
const scalarField& nuw = tnuw();
const tmp<scalarField> tnutw = turbulence.nut(patchi);
const tmp<scalarField> tnutw = turbModel.nut(patchi);
const scalarField& nutw = tnutw();
const fvPatchVectorField& Uw = turbulence.U().boundaryField()[patchi];
const fvPatchVectorField& Uw = turbModel.U().boundaryField()[patchi];
const scalarField magGradUw(mag(Uw.snGrad()));
typedef DimensionedField<scalar, volMesh> FieldType;
const DimensionedField<scalar, volMesh>& G =
db().lookupObject<DimensionedField<scalar, volMesh> >
(
turbModel.GName()
);
// Set epsilon and G
forAll(nutw, facei)
{
......@@ -93,27 +96,27 @@ void epsilonLowReWallFunctionFvPatchScalarField::calculate
if (yPlus > yPlusLam_)
{
epsilon[celli] = w*Cmu75*pow(k[celli], 1.5)/(kappa_*y[facei]);
epsilon0[celli] += w*Cmu75*pow(k[celli], 1.5)/(kappa_*y[facei]);
G0[celli] +=
w
*(nutw[facei] + nuw[facei])
*magGradUw[facei]
*Cmu25*sqrt(k[celli])
/(kappa_*y[facei]);
}
else
{
epsilon[celli] = w*2.0*k[celli]*nuw[facei]/sqr(y[facei]);
epsilon0[celli] += w*2.0*k[celli]*nuw[facei]/sqr(y[facei]);
G0[celli] += G[celli];
}
// It is not clear that G should be adjusted for low-Re BCs
G[celli] +=
w
*(nutw[facei] + nuw[facei])
*magGradUw[facei]
*Cmu25*sqrt(k[celli])
/(kappa_*y[facei]);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
epsilonLowReWallFunctionFvPatchScalarField::
Foam::epsilonLowReWallFunctionFvPatchScalarField::
epsilonLowReWallFunctionFvPatchScalarField
(
const fvPatch& p,
......@@ -125,7 +128,7 @@ epsilonLowReWallFunctionFvPatchScalarField
{}
epsilonLowReWallFunctionFvPatchScalarField::
Foam::epsilonLowReWallFunctionFvPatchScalarField::
epsilonLowReWallFunctionFvPatchScalarField
(
const epsilonLowReWallFunctionFvPatchScalarField& ptf,
......@@ -139,7 +142,7 @@ epsilonLowReWallFunctionFvPatchScalarField
{}
epsilonLowReWallFunctionFvPatchScalarField::
Foam::epsilonLowReWallFunctionFvPatchScalarField::
epsilonLowReWallFunctionFvPatchScalarField
(
const fvPatch& p,
......@@ -152,7 +155,7 @@ epsilonLowReWallFunctionFvPatchScalarField
{}
epsilonLowReWallFunctionFvPatchScalarField::
Foam::epsilonLowReWallFunctionFvPatchScalarField::
epsilonLowReWallFunctionFvPatchScalarField
(
const epsilonLowReWallFunctionFvPatchScalarField& ewfpsf
......@@ -163,7 +166,7 @@ epsilonLowReWallFunctionFvPatchScalarField
{}
epsilonLowReWallFunctionFvPatchScalarField::
Foam::epsilonLowReWallFunctionFvPatchScalarField::
epsilonLowReWallFunctionFvPatchScalarField
(
const epsilonLowReWallFunctionFvPatchScalarField& ewfpsf,
......@@ -177,14 +180,14 @@ epsilonLowReWallFunctionFvPatchScalarField
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makePatchTypeField
(
fvPatchScalarField,
epsilonLowReWallFunctionFvPatchScalarField
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
makePatchTypeField
(
fvPatchScalarField,
epsilonLowReWallFunctionFvPatchScalarField
);
}
} // End namespace Foam
// ************************************************************************* //
......@@ -31,18 +31,13 @@ License
#include "wallFvPatch.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
scalar epsilonWallFunctionFvPatchScalarField::tolerance_ = 1e-5;
Foam::scalar Foam::epsilonWallFunctionFvPatchScalarField::tolerance_ = 1e-5;
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
void epsilonWallFunctionFvPatchScalarField::checkType()
void Foam::epsilonWallFunctionFvPatchScalarField::checkType()
{
if (!isA<wallFvPatch>(patch()))
{
......@@ -56,7 +51,10 @@ void epsilonWallFunctionFvPatchScalarField::checkType()
}
void epsilonWallFunctionFvPatchScalarField::writeLocalEntries(Ostream& os) const
void Foam::epsilonWallFunctionFvPatchScalarField::writeLocalEntries
(
Ostream& os
) const
{
os.writeKeyword("Cmu") << Cmu_ << token::END_STATEMENT << nl;
os.writeKeyword("kappa") << kappa_ << token::END_STATEMENT << nl;
......@@ -64,7 +62,7 @@ void epsilonWallFunctionFvPatchScalarField::writeLocalEntries(Ostream& os) const
}
void epsilonWallFunctionFvPatchScalarField::setMaster()
void Foam::epsilonWallFunctionFvPatchScalarField::setMaster()
{
if (master_ != -1)
{
......@@ -94,7 +92,7 @@ void epsilonWallFunctionFvPatchScalarField::setMaster()
}
void epsilonWallFunctionFvPatchScalarField::createAveragingWeights()
void Foam::epsilonWallFunctionFvPatchScalarField::createAveragingWeights()
{
const volScalarField& epsilon =
static_cast<const volScalarField&>(this->dimensionedInternalField());
......@@ -153,8 +151,8 @@ void epsilonWallFunctionFvPatchScalarField::createAveragingWeights()
}
epsilonWallFunctionFvPatchScalarField&
epsilonWallFunctionFvPatchScalarField::epsilonPatch(const label patchi)
Foam::epsilonWallFunctionFvPatchScalarField&
Foam::epsilonWallFunctionFvPatchScalarField::epsilonPatch(const label patchi)
{
const volScalarField& epsilon =
static_cast<const volScalarField&>(this->dimensionedInternalField());
......@@ -168,7 +166,7 @@ epsilonWallFunctionFvPatchScalarField::epsilonPatch(const label patchi)
}
void epsilonWallFunctionFvPatchScalarField::calculateTurbulenceFields
void Foam::epsilonWallFunctionFvPatchScalarField::calculateTurbulenceFields
(
const turbulenceModel& turbulence,
scalarField& G0,
......@@ -201,7 +199,7 @@ void epsilonWallFunctionFvPatchScalarField::calculateTurbulenceFields
}
void epsilonWallFunctionFvPatchScalarField::calculate
void Foam::epsilonWallFunctionFvPatchScalarField::calculate
(
const turbulenceModel& turbulence,
const List<scalar>& cornerWeights,
......@@ -251,7 +249,8 @@ void epsilonWallFunctionFvPatchScalarField::calculate
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
Foam::epsilonWallFunctionFvPatchScalarField::
epsilonWallFunctionFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF
......@@ -271,7 +270,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
}
epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
Foam::epsilonWallFunctionFvPatchScalarField::
epsilonWallFunctionFvPatchScalarField
(
const epsilonWallFunctionFvPatchScalarField& ptf,
const fvPatch& p,
......@@ -293,7 +293,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
}
epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
Foam::epsilonWallFunctionFvPatchScalarField::
epsilonWallFunctionFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
......@@ -317,7 +318,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
}
epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
Foam::epsilonWallFunctionFvPatchScalarField::
epsilonWallFunctionFvPatchScalarField
(
const epsilonWallFunctionFvPatchScalarField& ewfpsf
)
......@@ -336,7 +338,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
}
epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
Foam::epsilonWallFunctionFvPatchScalarField::
epsilonWallFunctionFvPatchScalarField
(
const epsilonWallFunctionFvPatchScalarField& ewfpsf,
const DimensionedField<scalar, volMesh>& iF
......@@ -358,7 +361,7 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
scalarField& epsilonWallFunctionFvPatchScalarField::G(bool init)
Foam::scalarField& Foam::epsilonWallFunctionFvPatchScalarField::G(bool init)
{
if (patch().index() == master_)
{
......@@ -374,7 +377,10 @@ scalarField& epsilonWallFunctionFvPatchScalarField::G(bool init)
}
scalarField& epsilonWallFunctionFvPatchScalarField::epsilon(bool init)
Foam::scalarField& Foam::epsilonWallFunctionFvPatchScalarField::epsilon
(
bool init
)
{
if (patch().index() == master_)
{
......@@ -390,7 +396,7 @@ scalarField& epsilonWallFunctionFvPatchScalarField::epsilon(bool init)
}
void epsilonWallFunctionFvPatchScalarField::updateCoeffs()
void Foam::epsilonWallFunctionFvPatchScalarField::updateCoeffs()
{
if (updated())
{
......@@ -439,7 +445,7 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs()
}
void epsilonWallFunctionFvPatchScalarField::updateCoeffs
void Foam::epsilonWallFunctionFvPatchScalarField::updateCoeffs
(
const scalarField& weights
)
......@@ -500,7 +506,7 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs
}
void epsilonWallFunctionFvPatchScalarField::manipulateMatrix
void Foam::epsilonWallFunctionFvPatchScalarField::manipulateMatrix
(
fvMatrix<scalar>& matrix
)
......@@ -516,7 +522,7 @@ void epsilonWallFunctionFvPatchScalarField::manipulateMatrix
}
void epsilonWallFunctionFvPatchScalarField::manipulateMatrix
void Foam::epsilonWallFunctionFvPatchScalarField::manipulateMatrix
(
fvMatrix<scalar>& matrix,
const Field<scalar>& weights
......@@ -569,7 +575,7 @@ void epsilonWallFunctionFvPatchScalarField::manipulateMatrix
}
void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
void Foam::epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
{
writeLocalEntries(os);
fixedValueFvPatchField<scalar>::write(os);
......@@ -578,14 +584,14 @@ void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makePatchTypeField
(
fvPatchScalarField,
epsilonWallFunctionFvPatchScalarField
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
makePatchTypeField
(
fvPatchScalarField,
epsilonWallFunctionFvPatchScalarField
);
}
} // End namespace Foam
// ************************************************************************* //
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment