Skip to content
Snippets Groups Projects
Commit 7ebfbecd authored by Andrew Heather's avatar Andrew Heather
Browse files

Turbulence - updated Spalart-Allmaras IDDES to be consistent with reference

parent 184a95a9
No related branches found
No related tags found
No related merge requests found
...@@ -37,6 +37,7 @@ namespace LESModels ...@@ -37,6 +37,7 @@ namespace LESModels
template<class BasicTurbulenceModel> template<class BasicTurbulenceModel>
tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::alpha() const tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::alpha() const
{ {
// Equation 9 (plus limits)
return max return max
( (
0.25 - this->y_/static_cast<const volScalarField&>(IDDESDelta_.hmax()), 0.25 - this->y_/static_cast<const volScalarField&>(IDDESDelta_.hmax()),
...@@ -51,6 +52,7 @@ tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::ft ...@@ -51,6 +52,7 @@ tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::ft
const volScalarField& magGradU const volScalarField& magGradU
) const ) const
{ {
// Equation 13
return tanh(pow3(sqr(ct_)*rd(this->nut_, magGradU))); return tanh(pow3(sqr(ct_)*rd(this->nut_, magGradU)));
} }
...@@ -61,6 +63,7 @@ tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::fl ...@@ -61,6 +63,7 @@ tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::fl
const volScalarField& magGradU const volScalarField& magGradU
) const ) const
{ {
// Equation 13
return tanh(pow(sqr(cl_)*rd(this->nu(), magGradU), 10)); return tanh(pow(sqr(cl_)*rd(this->nu(), magGradU), 10));
} }
...@@ -90,11 +93,12 @@ tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::rd ...@@ -90,11 +93,12 @@ tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::rd
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
template<class BasicTurbulenceModel> template<class BasicTurbulenceModel>
tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::fd tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::fdt
( (
const volScalarField& magGradU const volScalarField& magGradU
) const ) const
{ {
// Related to equation 16
return 1 - tanh(pow3(8*rd(this->nuEff(), magGradU))); return 1 - tanh(pow3(8*rd(this->nuEff(), magGradU)));
} }
...@@ -111,21 +115,28 @@ tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::dTilda ...@@ -111,21 +115,28 @@ tmp<volScalarField> SpalartAllmarasIDDES<BasicTurbulenceModel>::dTilda
const volScalarField expTerm(exp(sqr(alpha))); const volScalarField expTerm(exp(sqr(alpha)));
const volScalarField magGradU(mag(gradU)); const volScalarField magGradU(mag(gradU));
tmp<volScalarField> fHill = // Equation 9
tmp<volScalarField> fB = min(2*pow(expTerm, -9.0), scalar(1));
// Equation 11
tmp<volScalarField> fe1 =
2*(pos(alpha)*pow(expTerm, -11.09) + neg(alpha)*pow(expTerm, -9.0)); 2*(pos(alpha)*pow(expTerm, -11.09) + neg(alpha)*pow(expTerm, -9.0));
tmp<volScalarField> fStep = min(2*pow(expTerm, -9.0), scalar(1)); // Equation 12
const volScalarField fHyb(max(1 - fd(magGradU), fStep)); tmp<volScalarField> fe2 = 1 - max(ft(magGradU), fl(magGradU));
tmp<volScalarField> fAmp = 1 - max(ft(magGradU), fl(magGradU));
tmp<volScalarField> fRestore = max(fHill - 1, scalar(0))*fAmp;
// Equation 10
const volScalarField psi(this->psi(chi, fv1)); const volScalarField psi(this->psi(chi, fv1));
tmp<volScalarField> fe = max(fe1 - 1, scalar(0))*psi*fe2;
// Equation 16
const volScalarField fdTilda(max(1 - fdt(magGradU), fB));
// Equation 17 (plus limits)
return max return max
( (
dimensionedScalar("SMALL", dimLength, SMALL), fdTilda*(1 + fe)*this->y_ + (1 - fdTilda)*psi*this->CDES_*this->delta(),
fHyb*(1 + fRestore*psi)*this->y_ dimensionedScalar("SMALL", dimLength, SMALL)
+ (1 - fHyb)*psi*this->CDES_*this->delta()
); );
} }
......
...@@ -92,7 +92,7 @@ class SpalartAllmarasIDDES ...@@ -92,7 +92,7 @@ class SpalartAllmarasIDDES
) const; ) const;
//- Delay function //- Delay function
tmp<volScalarField> fd(const volScalarField& magGradU) const; tmp<volScalarField> fdt(const volScalarField& magGradU) const;
// Disallow default bitwise copy construct and assignment // Disallow default bitwise copy construct and assignment
SpalartAllmarasIDDES(const SpalartAllmarasIDDES&); SpalartAllmarasIDDES(const SpalartAllmarasIDDES&);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment