ENH: Code refactoring

This commit is contained in:
Andrew Heather 2022-08-10 10:59:39 +01:00
parent 9563607e01
commit 07a9ee86f3
8 changed files with 173 additions and 66 deletions

View File

@ -61,7 +61,27 @@ tmp<volScalarField> SpalartAllmarasDDES<BasicTurbulenceModel>::Stilda
const volScalarField& dTilda
) const
{
tmp<volScalarField> St =
if (this->useSigma_)
{
const volScalarField& lRAS(this->y_);
const volScalarField fv2(this->fv2(chi, fv1));
const volScalarField lLES(this->lengthScaleLES(chi, fv1));
const volScalarField Omega(this->Omega(gradU));
const volScalarField Ssigma(this->Ssigma(gradU));
const volScalarField SsigmaDES
(
Omega - fd(mag(gradU))*pos(lRAS - lLES)*(Omega - Ssigma)
);
return
max
(
SsigmaDES + fv2*this->nuTilda_/sqr(this->kappa_*dTilda),
this->Cs_*SsigmaDES
);
}
return
SpalartAllmarasBase<DESModel<BasicTurbulenceModel>>::Stilda
(
chi,
@ -69,23 +89,6 @@ tmp<volScalarField> SpalartAllmarasDDES<BasicTurbulenceModel>::Stilda
gradU,
dTilda
);
if (useSigma_)
{
const volScalarField& lRAS(this->y_);
const volScalarField lLES(this->lengthScaleLES(chi, fv1));
const volScalarField Omega(this->Omega(gradU));
const volScalarField Ssigma(this->Ssigma(gradU));
return
max
(
St - fd(mag(gradU))*pos(lRAS - lLES)*(Omega - Ssigma),
this->Cs_*Omega
);
}
return St;
}
@ -136,18 +139,9 @@ SpalartAllmarasDDES<BasicTurbulenceModel>::SpalartAllmarasDDES
type
),
useSigma_
(
Switch::getOrAddToDict
(
"useSigma",
this->coeffDict_,
false
)
),
Cd1_
(
useSigma_ ?
this->useSigma_ ?
dimensioned<scalar>::getOrAddToDict
(
"Cd1Sigma",
@ -185,7 +179,6 @@ bool SpalartAllmarasDDES<BasicTurbulenceModel>::read()
{
if (SpalartAllmarasDES<BasicTurbulenceModel>::read())
{
useSigma_.readIfPresent("useSigma", this->coeffDict());
Cd1_.readIfPresent(this->coeffDict());
Cd2_.readIfPresent(this->coeffDict());

View File

@ -72,7 +72,7 @@ class SpalartAllmarasDDES
{
// Private Member Functions
//- Delay function
//- Shielding function
tmp<volScalarField> fd(const volScalarField& magGradU) const;
//- No copy construct
@ -86,9 +86,6 @@ protected:
// Protected data
//- Switch to activate grey-area enhanced sigma-DDES
Switch useSigma_;
// Model coefficients
dimensionedScalar Cd1_;
@ -97,6 +94,7 @@ protected:
// Protected Member Functions
//- Production term
virtual tmp<volScalarField> Stilda
(
const volScalarField& chi,

View File

@ -95,6 +95,46 @@ tmp<volScalarField> SpalartAllmarasDES<BasicTurbulenceModel>::lengthScaleLES
}
template<class BasicTurbulenceModel>
tmp<volScalarField> SpalartAllmarasDES<BasicTurbulenceModel>::Stilda
(
const volScalarField& chi,
const volScalarField& fv1,
const volTensorField& gradU,
const volScalarField& dTilda
) const
{
if (useSigma_)
{
const volScalarField& lRAS = this->y_;
const volScalarField fv2(this->fv2(chi, fv1));
const volScalarField lLES(this->lengthScaleLES(chi, fv1));
const volScalarField Omega(this->Omega(gradU));
const volScalarField Ssigma(this->Ssigma(gradU));
const volScalarField SsigmaDES
(
pos(dTilda - lRAS)*Omega + (scalar(1) - pos(dTilda - lRAS))*Ssigma
);
return
max
(
SsigmaDES + fv2*this->nuTilda_/sqr(this->kappa_*dTilda),
this->Cs_*SsigmaDES
);
}
return
SpalartAllmarasBase<DESModel<BasicTurbulenceModel>>::Stilda
(
chi,
fv1,
gradU,
dTilda
);
}
template<class BasicTurbulenceModel>
tmp<volScalarField> SpalartAllmarasDES<BasicTurbulenceModel>::dTilda
(
@ -139,6 +179,15 @@ SpalartAllmarasDES<BasicTurbulenceModel>::SpalartAllmarasDES
propertiesName
),
useSigma_
(
Switch::getOrAddToDict
(
"useSigma",
this->coeffDict_,
false
)
),
CDES_
(
dimensioned<scalar>::getOrAddToDict
@ -190,6 +239,7 @@ bool SpalartAllmarasDES<BasicTurbulenceModel>::read()
{
if (SpalartAllmarasBase<DESModel<BasicTurbulenceModel>>::read())
{
useSigma_.readIfPresent("useSigma", this->coeffDict());
CDES_.readIfPresent(this->coeffDict());
lowReCorrection_.readIfPresent("lowReCorrection", this->coeffDict());
fwStar_.readIfPresent(this->coeffDict());

View File

@ -96,6 +96,9 @@ protected:
// Protected data
//- Switch to activate grey-area enhanced sigma-(D)DES
Switch useSigma_;
// Model constants
// DES coefficient
@ -108,7 +111,7 @@ protected:
// Protected Member Functions
//- Shielding function
//- Low Reynolds number correction function
virtual tmp<volScalarField> psi
(
const volScalarField& chi,
@ -122,6 +125,15 @@ protected:
const volScalarField& fv1
) const;
//- Production term
virtual tmp<volScalarField> Stilda
(
const volScalarField& chi,
const volScalarField& fv1,
const volTensorField& gradU,
const volScalarField& dTilda
) const;
//- Length scale
virtual tmp<volScalarField> dTilda
(

View File

@ -58,20 +58,18 @@ tmp<volScalarField> kOmegaSSTDDES<BasicTurbulenceModel>::S2
) const
{
tmp<volScalarField> tS2 =
this->kOmegaSSTDES<BasicTurbulenceModel>::S2(F1, gradU);
kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::S2(F1, gradU);
if (useSigma_)
if (this->useSigma_)
{
volScalarField& S2 = tS2.ref();
const volScalarField CDES(this->CDES(F1));
const volScalarField Ssigma(this->Ssigma(gradU));
S2 -=
(
fd(mag(gradU))
*pos(this->lengthScaleRAS() - this->lengthScaleLES(CDES))
*(S2 - sqr(Ssigma))
);
fd(mag(gradU))
*pos(this->lengthScaleRAS() - this->lengthScaleLES(CDES))
*(S2 - sqr(Ssigma));
}
return tS2;
@ -104,21 +102,13 @@ tmp<volScalarField::Internal> kOmegaSSTDDES<BasicTurbulenceModel>::GbyNu0
const volScalarField& S2
) const
{
tmp<volScalarField::Internal> tGbyNu0 =
this->kOmegaSSTDES<BasicTurbulenceModel>::GbyNu0(gradU, F1, S2);
if (useSigma_)
if (this->useSigma_)
{
volScalarField::Internal& GbyNu0 = tGbyNu0.ref();
const volScalarField CDES(this->CDES(F1));
GbyNu0 -=
fd(mag(gradU))()()
*pos(this->lengthScaleRAS()()() - this->lengthScaleLES(CDES)()())
*(GbyNu0 - S2());
return S2();
}
return tGbyNu0;
return
kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::GbyNu0(gradU, F1, S2);
}
@ -161,18 +151,9 @@ kOmegaSSTDDES<BasicTurbulenceModel>::kOmegaSSTDDES
type
),
useSigma_
(
Switch::getOrAddToDict
(
"useSigma",
this->coeffDict_,
false
)
),
Cd1_
(
useSigma_ ?
this->useSigma_ ?
dimensioned<scalar>::getOrAddToDict
(
"Cd1Sigma",

View File

@ -70,6 +70,7 @@ class kOmegaSSTDDES
{
// Private Member Functions
//- Shielding function
tmp<volScalarField> fd(const volScalarField& magGradU) const;
//- No copy construct
@ -83,9 +84,6 @@ protected:
// Protected data
//- Switch to activate grey-area enhanced sigma-DDES
Switch useSigma_;
// Model coefficients
dimensionedScalar Cd1_;

View File

@ -75,6 +75,33 @@ tmp<volScalarField> kOmegaSSTDES<BasicTurbulenceModel>::r
}
template<class BasicTurbulenceModel>
tmp<volScalarField> kOmegaSSTDES<BasicTurbulenceModel>::S2
(
const volScalarField& F1,
const volTensorField& gradU
) const
{
tmp<volScalarField> tS2 =
kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::S2(F1, gradU);
if (this->useSigma_)
{
volScalarField& S2 = tS2.ref();
const volScalarField CDES(this->CDES(F1));
const volScalarField dTilda(this->dTilda(mag(gradU), CDES));
const volScalarField lengthScaleRAS(this->lengthScaleRAS());
const volScalarField Ssigma(this->Ssigma(gradU));
S2 =
pos(dTilda - lengthScaleRAS)*S2
+ (scalar(1) - pos(dTilda - lengthScaleRAS))*sqr(Ssigma);
}
return tS2;
}
template<class BasicTurbulenceModel>
tmp<volScalarField> kOmegaSSTDES<BasicTurbulenceModel>::dTilda
(
@ -98,6 +125,24 @@ tmp<volScalarField::Internal> kOmegaSSTDES<BasicTurbulenceModel>::epsilonByk
}
template<class BasicTurbulenceModel>
tmp<volScalarField::Internal> kOmegaSSTDES<BasicTurbulenceModel>::GbyNu0
(
const volTensorField& gradU,
const volScalarField& F1,
const volScalarField& S2
) const
{
if (this->useSigma_)
{
return S2();
}
return
kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::GbyNu0(gradU, F1, S2);
}
template<class BasicTurbulenceModel>
tmp<volScalarField::Internal> kOmegaSSTDES<BasicTurbulenceModel>::GbyNu
(
@ -137,6 +182,15 @@ kOmegaSSTDES<BasicTurbulenceModel>::kOmegaSSTDES
propertiesName
),
useSigma_
(
Switch::getOrAddToDict
(
"useSigma",
this->coeffDict_,
false
)
),
kappa_
(
dimensioned<scalar>::getOrAddToDict
@ -188,6 +242,7 @@ bool kOmegaSSTDES<BasicTurbulenceModel>::read()
{
if (kOmegaSSTBase<DESModel<BasicTurbulenceModel>>::read())
{
useSigma_.readIfPresent("useSigma", this->coeffDict());
kappa_.readIfPresent(this->coeffDict());
CDESkom_.readIfPresent(this->coeffDict());
CDESkeps_.readIfPresent(this->coeffDict());

View File

@ -86,9 +86,14 @@ protected:
// Protected data
//- Switch to activate grey-area enhanced sigma-(D)DES
Switch useSigma_;
// Model coefficients
dimensionedScalar kappa_;
//- DES coefficients
dimensionedScalar CDESkom_;
dimensionedScalar CDESkeps_;
@ -110,6 +115,13 @@ protected:
const volScalarField& magGradU
) const;
//- Return square of strain rate
virtual tmp<volScalarField> S2
(
const volScalarField& F1,
const volTensorField& gradU
) const;
//- Length scale
virtual tmp<volScalarField> dTilda
(
@ -124,6 +136,14 @@ protected:
const volTensorField& gradU
) const;
//- Return (G/nu)_0
virtual tmp<volScalarField::Internal> GbyNu0
(
const volTensorField& gradU,
const volScalarField& F1,
const volScalarField& S2
) const;
//- Return G/nu
virtual tmp<volScalarField::Internal> GbyNu
(