ENH: kOmegaSSTDES - added convenience functions for RAS|LES length scales

This commit is contained in:
Andrew Heather
2022-05-13 16:08:09 +01:00
parent 53397e6f3f
commit 5b1c060e9e
5 changed files with 46 additions and 45 deletions

View File

@ -99,16 +99,11 @@ tmp<volScalarField> SpalartAllmarasDDES<BasicTurbulenceModel>::dTilda
{
const volScalarField& lRAS(this->y_);
const volScalarField lLES(this->lengthScaleLES(chi, fv1));
const dimensionedScalar l0(dimLength, Zero);
return max
(
lRAS
- fd(mag(gradU))
*max
(
lRAS - lLES,
dimensionedScalar(dimLength, Zero)
),
lRAS - fd(mag(gradU))*max(lRAS - lLES, l0),
dimensionedScalar("small", dimLength, SMALL)
);
}

View File

@ -64,13 +64,12 @@ tmp<volScalarField> kOmegaSSTDDES<BasicTurbulenceModel>::S2
{
volScalarField& S2 = tS2.ref();
const volScalarField CDES(this->CDES(F1));
const volScalarField& k = this->k_;
const volScalarField& omega = this->omega_;
const volScalarField Ssigma(this->Ssigma(gradU));
S2 -=
(
fd(mag(gradU))
*pos(sqrt(k)/(this->betaStar_*omega) - CDES*this->delta())
*pos(this->lengthScaleRAS() - this->lengthScaleLES(CDES))
*(S2 - sqr(Ssigma))
);
}
@ -86,21 +85,13 @@ tmp<volScalarField> kOmegaSSTDDES<BasicTurbulenceModel>::dTilda
const volScalarField& CDES
) const
{
const volScalarField& k = this->k_;
const volScalarField& omega = this->omega_;
const volScalarField lRAS(sqrt(k)/(this->betaStar_*omega));
const volScalarField lLES(CDES*this->delta());
const volScalarField lRAS(this->lengthScaleRAS());
const volScalarField lLES(this->lengthScaleLES(CDES));
const dimensionedScalar l0(dimLength, Zero);
return max
(
lRAS
- fd(magGradU)
*max
(
lRAS - lLES,
dimensionedScalar(dimLength, Zero)
),
lRAS - fd(magGradU)*max(lRAS - lLES, l0),
dimensionedScalar("small", dimLength, SMALL)
);
}
@ -119,14 +110,12 @@ tmp<volScalarField::Internal> kOmegaSSTDDES<BasicTurbulenceModel>::GbyNu0
if (useSigma_)
{
volScalarField::Internal& GbyNu0 = tGbyNu0.ref();
const volScalarField::Internal CDES(this->CDES(F1)()());
const volScalarField::Internal& k = this->k_();
const volScalarField::Internal& omega = this->omega_();
const volScalarField CDES(this->CDES(F1));
GbyNu0 -=
fd(mag(gradU))()()
*pos(sqrt(k)/(this->betaStar_*omega) - CDES*this->delta()())
*(GbyNu0 - S2);
*pos(this->lengthScaleRAS()()() - this->lengthScaleLES(CDES)()())
*(GbyNu0 - S2());
}
return tGbyNu0;

View File

@ -82,10 +82,7 @@ tmp<volScalarField> kOmegaSSTDES<BasicTurbulenceModel>::dTilda
const volScalarField& CDES
) const
{
const volScalarField& k = this->k_;
const volScalarField& omega = this->omega_;
return min(CDES*this->delta(), sqrt(k)/(this->betaStar_*omega));
return min(lengthScaleLES(CDES), lengthScaleRAS());
}
@ -202,6 +199,28 @@ bool kOmegaSSTDES<BasicTurbulenceModel>::read()
}
template<class BasicTurbulenceModel>
Foam::tmp<Foam::volScalarField>
kOmegaSSTDES<BasicTurbulenceModel>::lengthScaleRAS() const
{
const volScalarField& k = this->k_;
const volScalarField& omega = this->omega_;
return sqrt(k)/(this->betaStar_*omega);
}
template<class BasicTurbulenceModel>
Foam::tmp<Foam::volScalarField>
kOmegaSSTDES<BasicTurbulenceModel>::lengthScaleLES
(
const volScalarField& CDES
) const
{
return CDES*this->delta();
}
template<class BasicTurbulenceModel>
tmp<volScalarField> kOmegaSSTDES<BasicTurbulenceModel>::LESRegion() const
{
@ -219,15 +238,7 @@ tmp<volScalarField> kOmegaSSTDES<BasicTurbulenceModel>::LESRegion() const
return tmp<volScalarField>::New
(
IOobject::scopedName("DES", "LESRegion"),
neg
(
dTilda
(
mag(fvc::grad(U)),
F1*CDESkom_ + (1 - F1)*CDESkeps_
)
- sqrt(k)/(this->betaStar_*omega)
)
neg(dTilda(mag(fvc::grad(U)), CDES(F1)) - lengthScaleRAS())
);
}

View File

@ -169,6 +169,15 @@ public:
//- Re-read model coefficients if they have changed
virtual bool read();
//- RAS length scale
virtual tmp<volScalarField> lengthScaleRAS() const;
//- LES length scale
virtual tmp<volScalarField> lengthScaleLES
(
const volScalarField& CDES
) const;
//- Return the LES field indicator
virtual tmp<volScalarField> LESRegion() const;
};

View File

@ -97,11 +97,8 @@ tmp<volScalarField> kOmegaSSTIDDES<BasicTurbulenceModel>::dTilda
const volScalarField& CDES
) const
{
const volScalarField& k = this->k_;
const volScalarField& omega = this->omega_;
const volScalarField lRAS(sqrt(k)/(this->betaStar_*omega));
const volScalarField lLES(CDES*this->delta());
const volScalarField lRAS(this->lengthScaleRAS());
const volScalarField lLES(this->lengthScaleLES(CDES));
const volScalarField alpha(this->alpha());
const volScalarField expTerm(exp(sqr(alpha)));