diff --git a/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModel.C b/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModel.C index f330aecfcf..b216cf1f20 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModel.C +++ b/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModel.C @@ -166,6 +166,25 @@ tmp DESModel::Ssigma } +template +tmp DESModel::fd() const +{ + return tmp::New + ( + IOobject + ( + "fd", + this->mesh_.time().timeName(), + this->mesh_, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + this->mesh_, + dimensionedScalar(dimless, Zero) + ); +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace LESModels diff --git a/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModel.H b/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModel.H index 9570a12bb9..1efac2db0f 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModel.H +++ b/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModel.H @@ -120,7 +120,10 @@ public: //- Return modified strain rate // Note: uses Ctrans_ coefficient - tmp Ssigma(const volTensorField& gradU) const; + virtual tmp Ssigma(const volTensorField& gradU) const; + + //- Return the shielding function + virtual tmp fd() const; }; diff --git a/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModelBase.C b/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModelBase.C index 911c1411a8..c99fdcad27 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModelBase.C +++ b/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModelBase.C @@ -23,16 +23,6 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . -Class - Foam::DESModelBase - -Description - Base class for DES models providing an interfaces to the LESRegion - function. - -SourceFiles - DESModelBase.C - \*---------------------------------------------------------------------------*/ #include "DESModelBase.H" diff --git a/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModelBase.H b/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModelBase.H index c437ec6c28..fa16efe5d1 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModelBase.H +++ b/src/TurbulenceModels/turbulenceModels/DES/DESModel/DESModelBase.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015 OpenFOAM Foundation - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2022 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -28,8 +28,7 @@ Class Foam::DESModelBase Description - Base class for DES models providing an interfaces to the LESRegion - function. + Base class for DES models providing an interfaces to DES fields. SourceFiles DESModelBase.C @@ -70,6 +69,9 @@ public: //- Return the LES field indicator virtual tmp LESRegion() const = 0; + + //- Return the shielding function + virtual tmp fd() const = 0; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasDDES/SpalartAllmarasDDES.C b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasDDES/SpalartAllmarasDDES.C index 4c75b3c72d..1eec436b36 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasDDES/SpalartAllmarasDDES.C +++ b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasDDES/SpalartAllmarasDDES.C @@ -189,6 +189,13 @@ bool SpalartAllmarasDDES::read() } +template +tmp SpalartAllmarasDDES::fd() const +{ + return fd(mag(fvc::grad(this->U_))); +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace LESModels diff --git a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasDDES/SpalartAllmarasDDES.H b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasDDES/SpalartAllmarasDDES.H index 17d3ede0ee..61b4241237 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasDDES/SpalartAllmarasDDES.H +++ b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasDDES/SpalartAllmarasDDES.H @@ -147,6 +147,9 @@ public: //- Read from dictionary virtual bool read(); + + //- Return the shielding function + virtual tmp fd() const; }; diff --git a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C index 03f7ea3517..514c894e5a 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C +++ b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C @@ -236,6 +236,17 @@ bool SpalartAllmarasIDDES::read() } +template +tmp SpalartAllmarasIDDES::fd() const +{ + const volScalarField alpha(this->alpha()); + const volScalarField expTerm(exp(sqr(alpha))); + + tmp fB = min(2*pow(expTerm, -9.0), scalar(1)); + return max(1 - fdt(mag(fvc::grad(this->U_))), fB); +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace LESModels diff --git a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H index 470a05647f..f3901ad5fe 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H +++ b/src/TurbulenceModels/turbulenceModels/DES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H @@ -153,6 +153,9 @@ public: //- Re-read model coefficients if they have changed virtual bool read(); + + //- Return the shielding function + virtual tmp fd() const; }; diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.C b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.C index 2eff1bb0d5..16907d266d 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.C +++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.C @@ -201,6 +201,13 @@ bool kOmegaSSTDDES::read() } +template +tmp kOmegaSSTDDES::fd() const +{ + return fd(mag(fvc::grad(this->U_))); +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace LESModels diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H index f572216a3a..54e4c711a1 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H +++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDDES/kOmegaSSTDDES.H @@ -157,6 +157,9 @@ public: //- Re-read model coefficients if they have changed virtual bool read(); + + //- Return the shielding function + virtual tmp fd() const; }; diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H index 114633c919..b6b035cfca 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H +++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTDES/kOmegaSSTDES.H @@ -93,7 +93,7 @@ protected: dimensionedScalar kappa_; - //- DES coefficients + //- DES coefficients dimensionedScalar CDESkom_; dimensionedScalar CDESkeps_; diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.C b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.C index 5b18937f9e..c955da5132 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.C +++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.C @@ -231,6 +231,17 @@ bool kOmegaSSTIDDES::read() } +template +tmp kOmegaSSTIDDES::fd() const +{ + const volScalarField alpha(this->alpha()); + const volScalarField expTerm(exp(sqr(alpha))); + + tmp fB = min(2*pow(expTerm, -9.0), scalar(1)); + return max(1 - fdt(mag(fvc::grad(this->U_))), fB); +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace LESModels diff --git a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.H b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.H index 7b9d4b7d05..d5695afba8 100644 --- a/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.H +++ b/src/TurbulenceModels/turbulenceModels/DES/kOmegaSSTIDDES/kOmegaSSTIDDES.H @@ -149,6 +149,9 @@ public: //- Re-read model coefficients if they have changed virtual bool read(); + + //- Return the shielding function + virtual tmp fd() const; };