From 7ebfbecd7485ab25418bd35ff0193069568fb48e Mon Sep 17 00:00:00 2001 From: Andrew Heather Date: Tue, 1 Dec 2015 10:26:23 +0000 Subject: [PATCH] Turbulence - updated Spalart-Allmaras IDDES to be consistent with reference --- .../SpalartAllmarasIDDES.C | 29 +++++++++++++------ .../SpalartAllmarasIDDES.H | 2 +- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C index 5f94e2731d..40ea5c9e6a 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C +++ b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C @@ -37,6 +37,7 @@ namespace LESModels template tmp SpalartAllmarasIDDES::alpha() const { + // Equation 9 (plus limits) return max ( 0.25 - this->y_/static_cast(IDDESDelta_.hmax()), @@ -51,6 +52,7 @@ tmp SpalartAllmarasIDDES::ft const volScalarField& magGradU ) const { + // Equation 13 return tanh(pow3(sqr(ct_)*rd(this->nut_, magGradU))); } @@ -61,6 +63,7 @@ tmp SpalartAllmarasIDDES::fl const volScalarField& magGradU ) const { + // Equation 13 return tanh(pow(sqr(cl_)*rd(this->nu(), magGradU), 10)); } @@ -90,11 +93,12 @@ tmp SpalartAllmarasIDDES::rd // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // template -tmp SpalartAllmarasIDDES::fd +tmp SpalartAllmarasIDDES::fdt ( const volScalarField& magGradU ) const { + // Related to equation 16 return 1 - tanh(pow3(8*rd(this->nuEff(), magGradU))); } @@ -111,21 +115,28 @@ tmp SpalartAllmarasIDDES::dTilda const volScalarField expTerm(exp(sqr(alpha))); const volScalarField magGradU(mag(gradU)); - tmp fHill = + // Equation 9 + tmp fB = min(2*pow(expTerm, -9.0), scalar(1)); + + // Equation 11 + tmp fe1 = 2*(pos(alpha)*pow(expTerm, -11.09) + neg(alpha)*pow(expTerm, -9.0)); - tmp fStep = min(2*pow(expTerm, -9.0), scalar(1)); - const volScalarField fHyb(max(1 - fd(magGradU), fStep)); - tmp fAmp = 1 - max(ft(magGradU), fl(magGradU)); - tmp fRestore = max(fHill - 1, scalar(0))*fAmp; + // Equation 12 + tmp fe2 = 1 - max(ft(magGradU), fl(magGradU)); + // Equation 10 const volScalarField psi(this->psi(chi, fv1)); + tmp fe = max(fe1 - 1, scalar(0))*psi*fe2; + // Equation 16 + const volScalarField fdTilda(max(1 - fdt(magGradU), fB)); + + // Equation 17 (plus limits) return max ( - dimensionedScalar("SMALL", dimLength, SMALL), - fHyb*(1 + fRestore*psi)*this->y_ - + (1 - fHyb)*psi*this->CDES_*this->delta() + fdTilda*(1 + fe)*this->y_ + (1 - fdTilda)*psi*this->CDES_*this->delta(), + dimensionedScalar("SMALL", dimLength, SMALL) ); } diff --git a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H index 1db9a9fad8..f146bf1dbf 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H +++ b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H @@ -92,7 +92,7 @@ class SpalartAllmarasIDDES ) const; //- Delay function - tmp fd(const volScalarField& magGradU) const; + tmp fdt(const volScalarField& magGradU) const; // Disallow default bitwise copy construct and assignment SpalartAllmarasIDDES(const SpalartAllmarasIDDES&);