Skip to content
Snippets Groups Projects
Commit 391d5b9a authored by Henry's avatar Henry
Browse files

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

parent 23987984
Branches
Tags
No related merge requests found
...@@ -29,14 +29,9 @@ License ...@@ -29,14 +29,9 @@ License
#include "volFields.H" #include "volFields.H"
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
scalar epsilonLowReWallFunctionFvPatchScalarField::yPlusLam Foam::scalar Foam::epsilonLowReWallFunctionFvPatchScalarField::yPlusLam
( (
const scalar kappa, const scalar kappa,
const scalar E const scalar E
...@@ -53,35 +48,43 @@ scalar epsilonLowReWallFunctionFvPatchScalarField::yPlusLam ...@@ -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 List<scalar>& cornerWeights,
const fvPatch& patch, const fvPatch& patch,
scalarField& G, scalarField& G0,
scalarField& epsilon scalarField& epsilon0
) )
{ {
const label patchi = patch.index(); const label patchi = patch.index();
const scalarField& y = turbulence.y()[patchi]; const scalarField& y = turbModel.y()[patchi];
const scalar Cmu25 = pow025(Cmu_); const scalar Cmu25 = pow025(Cmu_);
const scalar Cmu75 = pow(Cmu_, 0.75); const scalar Cmu75 = pow(Cmu_, 0.75);
const tmp<volScalarField> tk = turbulence.k(); const tmp<volScalarField> tk = turbModel.k();
const volScalarField& k = tk(); const volScalarField& k = tk();
const tmp<scalarField> tnuw = turbulence.nu(patchi); const tmp<scalarField> tnuw = turbModel.nu(patchi);
const scalarField& nuw = tnuw(); const scalarField& nuw = tnuw();
const tmp<scalarField> tnutw = turbulence.nut(patchi); const tmp<scalarField> tnutw = turbModel.nut(patchi);
const scalarField& nutw = tnutw(); const scalarField& nutw = tnutw();
const fvPatchVectorField& Uw = turbulence.U().boundaryField()[patchi]; const fvPatchVectorField& Uw = turbModel.U().boundaryField()[patchi];
const scalarField magGradUw(mag(Uw.snGrad())); 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 // Set epsilon and G
forAll(nutw, facei) forAll(nutw, facei)
{ {
...@@ -93,27 +96,27 @@ void epsilonLowReWallFunctionFvPatchScalarField::calculate ...@@ -93,27 +96,27 @@ void epsilonLowReWallFunctionFvPatchScalarField::calculate
if (yPlus > yPlusLam_) 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 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 * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
epsilonLowReWallFunctionFvPatchScalarField:: Foam::epsilonLowReWallFunctionFvPatchScalarField::
epsilonLowReWallFunctionFvPatchScalarField epsilonLowReWallFunctionFvPatchScalarField
( (
const fvPatch& p, const fvPatch& p,
...@@ -125,7 +128,7 @@ epsilonLowReWallFunctionFvPatchScalarField ...@@ -125,7 +128,7 @@ epsilonLowReWallFunctionFvPatchScalarField
{} {}
epsilonLowReWallFunctionFvPatchScalarField:: Foam::epsilonLowReWallFunctionFvPatchScalarField::
epsilonLowReWallFunctionFvPatchScalarField epsilonLowReWallFunctionFvPatchScalarField
( (
const epsilonLowReWallFunctionFvPatchScalarField& ptf, const epsilonLowReWallFunctionFvPatchScalarField& ptf,
...@@ -139,7 +142,7 @@ epsilonLowReWallFunctionFvPatchScalarField ...@@ -139,7 +142,7 @@ epsilonLowReWallFunctionFvPatchScalarField
{} {}
epsilonLowReWallFunctionFvPatchScalarField:: Foam::epsilonLowReWallFunctionFvPatchScalarField::
epsilonLowReWallFunctionFvPatchScalarField epsilonLowReWallFunctionFvPatchScalarField
( (
const fvPatch& p, const fvPatch& p,
...@@ -152,7 +155,7 @@ epsilonLowReWallFunctionFvPatchScalarField ...@@ -152,7 +155,7 @@ epsilonLowReWallFunctionFvPatchScalarField
{} {}
epsilonLowReWallFunctionFvPatchScalarField:: Foam::epsilonLowReWallFunctionFvPatchScalarField::
epsilonLowReWallFunctionFvPatchScalarField epsilonLowReWallFunctionFvPatchScalarField
( (
const epsilonLowReWallFunctionFvPatchScalarField& ewfpsf const epsilonLowReWallFunctionFvPatchScalarField& ewfpsf
...@@ -163,7 +166,7 @@ epsilonLowReWallFunctionFvPatchScalarField ...@@ -163,7 +166,7 @@ epsilonLowReWallFunctionFvPatchScalarField
{} {}
epsilonLowReWallFunctionFvPatchScalarField:: Foam::epsilonLowReWallFunctionFvPatchScalarField::
epsilonLowReWallFunctionFvPatchScalarField epsilonLowReWallFunctionFvPatchScalarField
( (
const epsilonLowReWallFunctionFvPatchScalarField& ewfpsf, const epsilonLowReWallFunctionFvPatchScalarField& ewfpsf,
...@@ -177,14 +180,14 @@ epsilonLowReWallFunctionFvPatchScalarField ...@@ -177,14 +180,14 @@ epsilonLowReWallFunctionFvPatchScalarField
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makePatchTypeField namespace Foam
( {
fvPatchScalarField, makePatchTypeField
epsilonLowReWallFunctionFvPatchScalarField (
); fvPatchScalarField,
epsilonLowReWallFunctionFvPatchScalarField
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // );
}
} // End namespace Foam
// ************************************************************************* // // ************************************************************************* //
...@@ -31,18 +31,13 @@ License ...@@ -31,18 +31,13 @@ License
#include "wallFvPatch.H" #include "wallFvPatch.H"
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
scalar epsilonWallFunctionFvPatchScalarField::tolerance_ = 1e-5; Foam::scalar Foam::epsilonWallFunctionFvPatchScalarField::tolerance_ = 1e-5;
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // // * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
void epsilonWallFunctionFvPatchScalarField::checkType() void Foam::epsilonWallFunctionFvPatchScalarField::checkType()
{ {
if (!isA<wallFvPatch>(patch())) if (!isA<wallFvPatch>(patch()))
{ {
...@@ -56,7 +51,10 @@ void epsilonWallFunctionFvPatchScalarField::checkType() ...@@ -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("Cmu") << Cmu_ << token::END_STATEMENT << nl;
os.writeKeyword("kappa") << kappa_ << token::END_STATEMENT << nl; os.writeKeyword("kappa") << kappa_ << token::END_STATEMENT << nl;
...@@ -64,7 +62,7 @@ void epsilonWallFunctionFvPatchScalarField::writeLocalEntries(Ostream& os) const ...@@ -64,7 +62,7 @@ void epsilonWallFunctionFvPatchScalarField::writeLocalEntries(Ostream& os) const
} }
void epsilonWallFunctionFvPatchScalarField::setMaster() void Foam::epsilonWallFunctionFvPatchScalarField::setMaster()
{ {
if (master_ != -1) if (master_ != -1)
{ {
...@@ -94,7 +92,7 @@ void epsilonWallFunctionFvPatchScalarField::setMaster() ...@@ -94,7 +92,7 @@ void epsilonWallFunctionFvPatchScalarField::setMaster()
} }
void epsilonWallFunctionFvPatchScalarField::createAveragingWeights() void Foam::epsilonWallFunctionFvPatchScalarField::createAveragingWeights()
{ {
const volScalarField& epsilon = const volScalarField& epsilon =
static_cast<const volScalarField&>(this->dimensionedInternalField()); static_cast<const volScalarField&>(this->dimensionedInternalField());
...@@ -153,8 +151,8 @@ void epsilonWallFunctionFvPatchScalarField::createAveragingWeights() ...@@ -153,8 +151,8 @@ void epsilonWallFunctionFvPatchScalarField::createAveragingWeights()
} }
epsilonWallFunctionFvPatchScalarField& Foam::epsilonWallFunctionFvPatchScalarField&
epsilonWallFunctionFvPatchScalarField::epsilonPatch(const label patchi) Foam::epsilonWallFunctionFvPatchScalarField::epsilonPatch(const label patchi)
{ {
const volScalarField& epsilon = const volScalarField& epsilon =
static_cast<const volScalarField&>(this->dimensionedInternalField()); static_cast<const volScalarField&>(this->dimensionedInternalField());
...@@ -168,7 +166,7 @@ epsilonWallFunctionFvPatchScalarField::epsilonPatch(const label patchi) ...@@ -168,7 +166,7 @@ epsilonWallFunctionFvPatchScalarField::epsilonPatch(const label patchi)
} }
void epsilonWallFunctionFvPatchScalarField::calculateTurbulenceFields void Foam::epsilonWallFunctionFvPatchScalarField::calculateTurbulenceFields
( (
const turbulenceModel& turbulence, const turbulenceModel& turbulence,
scalarField& G0, scalarField& G0,
...@@ -201,7 +199,7 @@ void epsilonWallFunctionFvPatchScalarField::calculateTurbulenceFields ...@@ -201,7 +199,7 @@ void epsilonWallFunctionFvPatchScalarField::calculateTurbulenceFields
} }
void epsilonWallFunctionFvPatchScalarField::calculate void Foam::epsilonWallFunctionFvPatchScalarField::calculate
( (
const turbulenceModel& turbulence, const turbulenceModel& turbulence,
const List<scalar>& cornerWeights, const List<scalar>& cornerWeights,
...@@ -251,7 +249,8 @@ void epsilonWallFunctionFvPatchScalarField::calculate ...@@ -251,7 +249,8 @@ void epsilonWallFunctionFvPatchScalarField::calculate
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField Foam::epsilonWallFunctionFvPatchScalarField::
epsilonWallFunctionFvPatchScalarField
( (
const fvPatch& p, const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
...@@ -271,7 +270,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ...@@ -271,7 +270,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
} }
epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField Foam::epsilonWallFunctionFvPatchScalarField::
epsilonWallFunctionFvPatchScalarField
( (
const epsilonWallFunctionFvPatchScalarField& ptf, const epsilonWallFunctionFvPatchScalarField& ptf,
const fvPatch& p, const fvPatch& p,
...@@ -293,7 +293,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ...@@ -293,7 +293,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
} }
epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField Foam::epsilonWallFunctionFvPatchScalarField::
epsilonWallFunctionFvPatchScalarField
( (
const fvPatch& p, const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF, const DimensionedField<scalar, volMesh>& iF,
...@@ -317,7 +318,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ...@@ -317,7 +318,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
} }
epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField Foam::epsilonWallFunctionFvPatchScalarField::
epsilonWallFunctionFvPatchScalarField
( (
const epsilonWallFunctionFvPatchScalarField& ewfpsf const epsilonWallFunctionFvPatchScalarField& ewfpsf
) )
...@@ -336,7 +338,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ...@@ -336,7 +338,8 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
} }
epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField Foam::epsilonWallFunctionFvPatchScalarField::
epsilonWallFunctionFvPatchScalarField
( (
const epsilonWallFunctionFvPatchScalarField& ewfpsf, const epsilonWallFunctionFvPatchScalarField& ewfpsf,
const DimensionedField<scalar, volMesh>& iF const DimensionedField<scalar, volMesh>& iF
...@@ -358,7 +361,7 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ...@@ -358,7 +361,7 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
scalarField& epsilonWallFunctionFvPatchScalarField::G(bool init) Foam::scalarField& Foam::epsilonWallFunctionFvPatchScalarField::G(bool init)
{ {
if (patch().index() == master_) if (patch().index() == master_)
{ {
...@@ -374,7 +377,10 @@ scalarField& epsilonWallFunctionFvPatchScalarField::G(bool init) ...@@ -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_) if (patch().index() == master_)
{ {
...@@ -390,7 +396,7 @@ scalarField& epsilonWallFunctionFvPatchScalarField::epsilon(bool init) ...@@ -390,7 +396,7 @@ scalarField& epsilonWallFunctionFvPatchScalarField::epsilon(bool init)
} }
void epsilonWallFunctionFvPatchScalarField::updateCoeffs() void Foam::epsilonWallFunctionFvPatchScalarField::updateCoeffs()
{ {
if (updated()) if (updated())
{ {
...@@ -439,7 +445,7 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs() ...@@ -439,7 +445,7 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs()
} }
void epsilonWallFunctionFvPatchScalarField::updateCoeffs void Foam::epsilonWallFunctionFvPatchScalarField::updateCoeffs
( (
const scalarField& weights const scalarField& weights
) )
...@@ -500,7 +506,7 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs ...@@ -500,7 +506,7 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs
} }
void epsilonWallFunctionFvPatchScalarField::manipulateMatrix void Foam::epsilonWallFunctionFvPatchScalarField::manipulateMatrix
( (
fvMatrix<scalar>& matrix fvMatrix<scalar>& matrix
) )
...@@ -516,7 +522,7 @@ void epsilonWallFunctionFvPatchScalarField::manipulateMatrix ...@@ -516,7 +522,7 @@ void epsilonWallFunctionFvPatchScalarField::manipulateMatrix
} }
void epsilonWallFunctionFvPatchScalarField::manipulateMatrix void Foam::epsilonWallFunctionFvPatchScalarField::manipulateMatrix
( (
fvMatrix<scalar>& matrix, fvMatrix<scalar>& matrix,
const Field<scalar>& weights const Field<scalar>& weights
...@@ -569,7 +575,7 @@ void epsilonWallFunctionFvPatchScalarField::manipulateMatrix ...@@ -569,7 +575,7 @@ void epsilonWallFunctionFvPatchScalarField::manipulateMatrix
} }
void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const void Foam::epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
{ {
writeLocalEntries(os); writeLocalEntries(os);
fixedValueFvPatchField<scalar>::write(os); fixedValueFvPatchField<scalar>::write(os);
...@@ -578,14 +584,14 @@ void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const ...@@ -578,14 +584,14 @@ void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makePatchTypeField namespace Foam
( {
fvPatchScalarField, makePatchTypeField
epsilonWallFunctionFvPatchScalarField (
); 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