diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.C b/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.C new file mode 100644 index 0000000000000000000000000000000000000000..6f5435a2681eca7e0a7587a33d319bbad43b934e --- /dev/null +++ b/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.C @@ -0,0 +1,120 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "SpalartAllmarasDDES.H" +#include "addToRunTimeSelectionTable.H" +#include "wallDist.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace incompressible +{ +namespace LESModels +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(SpalartAllmarasDDES, 0); +addToRunTimeSelectionTable(LESModel, SpalartAllmarasDDES, dictionary); + +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + +tmp<volScalarField> SpalartAllmarasDDES::rd +( + const volScalarField& visc, + const volScalarField& S +) const +{ + volScalarField d = wallDist(mesh_).y(); + + tmp<volScalarField> trd + ( + new volScalarField + ( + min + ( + visc + /( + max + ( + S, + dimensionedScalar("SMALL", S.dimensions(), SMALL) + )*sqr(kappa_*d) + + dimensionedScalar + ( + "ROOTVSMALL", + dimensionSet(0, 2 , -1, 0, 0), + ROOTVSMALL + ) + ), scalar(10.0) + ) + ) + ); + + return trd; +} + + +tmp<volScalarField> SpalartAllmarasDDES::fd(const volScalarField& S) +{ + return 1.0 - tanh(pow3(8.0*rd(nuSgs_ + transport().nu(), S))); +} + + +void SpalartAllmarasDDES::dTildaUpdate(const volScalarField& S) +{ + dTilda_ = + wallDist(mesh_).y() + - fd(S)*max + ( + dimensionedScalar("zero", dimLength, 0.0), + wallDist(mesh_).y() - CDES_*delta() + ); +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +SpalartAllmarasDDES::SpalartAllmarasDDES +( + const volVectorField& U, + const surfaceScalarField& phi, + transportModel& transport +) +: + SpalartAllmaras(U, phi, transport, typeName) +{} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace LESModels +} // End namespace incompressible +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.H b/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.H new file mode 100644 index 0000000000000000000000000000000000000000..d905c34710d36c3804a2cd41619f616ba954220d --- /dev/null +++ b/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.H @@ -0,0 +1,118 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::LESmodels::SpalartAllmarasDDES + +Description + SpalartAllmaras DDES LES turbulence model for incompressible flows + + Reference: + P.R. Spalart, S. Deck, S., M.L.Shur, K.D. Squires, M.Kh Strelets, and + A. Travin. `A new version of detached-eddy simulation, resistant to + ambiguous grid densities'. Theor. Comp. Fluid Dyn., 20:181-195, 2006. + +SourceFiles + SpalartAllmarasDDES.C + +\*---------------------------------------------------------------------------*/ + +#ifndef SpalartAllmarasDDES_H +#define SpalartAllmarasDDES_H + +#include "SpalartAllmaras.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace incompressible +{ +namespace LESModels +{ + +/*---------------------------------------------------------------------------*\ + Class SpalartAllmarasDDES Declaration +\*---------------------------------------------------------------------------*/ + +class SpalartAllmarasDDES +: + public SpalartAllmaras +{ + // Private member functions + + // Disallow default bitwise copy construct and assignment + SpalartAllmarasDDES(const SpalartAllmarasDDES&); + SpalartAllmarasDDES& operator=(const SpalartAllmarasDDES&); + + +protected: + + // Protected member functions + + tmp<volScalarField> fd(const volScalarField& S); + tmp<volScalarField> rd + ( + const volScalarField& visc, + const volScalarField& S + ) const; + + //- Length scale calculation + virtual void dTildaUpdate(const volScalarField& S); + + +public: + + //- Runtime type information + TypeName("SpalartAllmarasDDES"); + + + // Constructors + + //- Constructor from components + SpalartAllmarasDDES + ( + const volVectorField& U, + const surfaceScalarField& phi, + transportModel& transport + ); + + + //- Destructor + virtual ~SpalartAllmarasDDES() + {} +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace LESModels +} // End namespace incompressible +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C new file mode 100644 index 0000000000000000000000000000000000000000..36e6a46a4ebdef8f936a2f3023c4835d8a1048d0 --- /dev/null +++ b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C @@ -0,0 +1,140 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "IDDESDelta.H" +#include "addToRunTimeSelectionTable.H" +#include "wallDist.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineTypeNameAndDebug(IDDESDelta, 0); + addToRunTimeSelectionTable(LESdelta, IDDESDelta, dictionary); +} + + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +void Foam::IDDESDelta::calcDelta() +{ + const Vector<label>& directions = mesh().directions(); + label nD = (directions.nComponents + cmptSum(directions))/2; + + // - Init hwn as wall distant. + volScalarField hwn = wallDist(mesh()).y(); + + scalar deltamaxTmp = 0.; + + const cellList& cells = mesh().cells(); + + forAll(cells,cellI) + { + scalar deltaminTmp = 1.e10; + const labelList& cFaces = mesh().cells()[cellI]; + const point& centrevector = mesh().cellCentres()[cellI]; + + forAll(cFaces, cFaceI) + { + label faceI = cFaces[cFaceI]; + const point& facevector = mesh().faceCentres()[faceI]; + scalar tmp = mag(facevector-centrevector); + if (tmp > deltamaxTmp) + { + deltamaxTmp = tmp; + } + if (tmp < deltaminTmp) + { + deltaminTmp = tmp; + } + } + hwn[cellI] = 2.0*deltaminTmp; + } + + dimensionedScalar deltamax("deltamax",dimLength,2.0*deltamaxTmp); + + if (nD == 3) + { + delta_.internalField() = + deltaCoeff_ + *min(max(max(cw_*wallDist(mesh()).y(),cw_*deltamax),hwn),deltamax); + } + else if (nD == 2) + { + WarningIn("IDDESDelta::calcDelta()") + << "Case is 2D, LES is not strictly applicable\n" + << endl; + + delta_.internalField() = + deltaCoeff_ + *min(max(max(cw_*wallDist(mesh()).y(),cw_*deltamax),hwn),deltamax); + } + else + { + FatalErrorIn("IDDESDelta::calcDelta()") + << "Case is not 3D or 2D, LES is not applicable" + << exit(FatalError); + } +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::IDDESDelta::IDDESDelta +( + const word& name, + const fvMesh& mesh, + const dictionary& dd +) +: + LESdelta(name, mesh), + deltaCoeff_(readScalar(dd.subDict(type() + "Coeffs").lookup("deltaCoeff"))), + cw_(0) +{ + dd.subDict(type() + "Coeffs").readIfPresent("cw", cw_); + calcDelta(); +} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::IDDESDelta::read(const dictionary& dd) +{ + dd.subDict(type() + "Coeffs").lookup("deltaCoeff") >> deltaCoeff_; + calcDelta(); +} + + +void Foam::IDDESDelta::correct() +{ + if (mesh_.changing()) + { + calcDelta(); + } +} + + +// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.H b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.H new file mode 100644 index 0000000000000000000000000000000000000000..a53d1127d284b0019b281dc4385469b00ab42c00 --- /dev/null +++ b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.H @@ -0,0 +1,113 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::IDDESDelta + +Description + IDDESDelta used by the IDDES (improved low Re Spalart-Allmaras DES model) + The min and max delta are calculated using the double distance of the min or + max from the face centre to the cell centre. + +SourceFiles + IDDESDelta.C + +\*---------------------------------------------------------------------------*/ + +#ifndef IDDESDeltaDelta_H +#define IDDESDeltaDelta_H + +#include "LESdelta.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class IDDESDelta Declaration +\*---------------------------------------------------------------------------*/ + +class IDDESDelta +: + public LESdelta +{ + // Private data + + scalar deltaCoeff_; + scalar cw_; + + + // Private Member Functions + + //- Disallow default bitwise copy construct and assignment + IDDESDelta(const IDDESDelta&); + void operator=(const IDDESDelta&); + + //- Calculate the delta values + void calcDelta(); + + +public: + + //- Runtime type information + TypeName("IDDESDelta"); + + + // Constructors + + //- Construct from name, mesh and IOdictionary + IDDESDelta + ( + const word& name, + const fvMesh& mesh, + const dictionary& + ); + + + // Destructor + + ~IDDESDelta() + {} + + + // Member Functions + + //- Read the LESdelta dictionary + void read(const dictionary&); + + // Correct values + void correct(); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C new file mode 100644 index 0000000000000000000000000000000000000000..b58c9557d44a8823dec6c674f0f223c3a037a379 --- /dev/null +++ b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C @@ -0,0 +1,214 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "SpalartAllmarasIDDES.H" +#include "addToRunTimeSelectionTable.H" +#include "wallDist.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace incompressible +{ +namespace LESModels +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(SpalartAllmarasIDDES, 0); +addToRunTimeSelectionTable(LESModel, SpalartAllmarasIDDES, dictionary); + +// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // + +tmp<volScalarField> SpalartAllmarasIDDES::alpha() const +{ + return + 0.25 + - wallDist(mesh_).y() + /dimensionedScalar("hMax", dimLength, max(cmptMax(delta()))); +} + + +tmp<volScalarField> SpalartAllmarasIDDES::ft(const volScalarField& S) const +{ + return tanh(pow3(sqr(ct_)*r(nuSgs_, S))); +} + + +tmp<volScalarField> SpalartAllmarasIDDES::fl(const volScalarField& S) const +{ + return tanh(pow(sqr(cl_)*r(transport().nu(), S), 10)); +} + + +tmp<volScalarField> SpalartAllmarasIDDES::rd +( + const volScalarField& visc, + const volScalarField& S +) const +{ + volScalarField d = wallDist(mesh_).y(); + + tmp<volScalarField> trd + ( + new volScalarField + ( + min + ( + visc + /( + max + ( + S, + dimensionedScalar("SMALL", S.dimensions(), SMALL) + )*sqr(kappa_*d) + + dimensionedScalar + ( + "ROOTVSMALL", + dimensionSet(0, 2 , -1, 0, 0), + ROOTVSMALL + ) + ), scalar(10.0) + ) + ) + ); + + return trd; +} + + +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + +tmp<volScalarField> SpalartAllmarasIDDES::fd(const volScalarField& S) const +{ + return 1.0 - tanh(pow3(8.0*rd(nuSgs_+transport().nu(), S))); +} + + +void SpalartAllmarasIDDES::dTildaUpdate(const volScalarField& S) +{ + volScalarField alpha = this->alpha(); + + volScalarField expTerm = exp(sqr(alpha)); + + volScalarField fHill = + 2.0*(pos(alpha)*pow(expTerm, -11.09) + neg(alpha)*pow(expTerm, -9.0)); + + + volScalarField fStep = min(2.0*pow(expTerm, -9.0), 1.0); + volScalarField fHyb = max(1.0 - fd(S), fStep); + + volScalarField fAmp = 1.0 - max(ft(S), fl(S)); + + volScalarField fRestore = max(fHill - 1.0, 0.0)*fAmp; + + // volScalarField ft2 = IGNORING ft2 terms + + volScalarField Psi = sqrt + ( + min + ( + 100.0, + (1.0 - Cb1_/(Cw1_*sqr(kappa_)*fwStar_)*fv2())/max(SMALL, fv1()) + ) + ); + + dTilda_ = max + ( + dimensionedScalar("zero", dimLength, 0.0), + fHyb*(1.0 + fRestore*Psi)*wallDist(mesh_).y() + + (1.0 - fHyb)*CDES_*Psi*delta() + ); +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +SpalartAllmarasIDDES::SpalartAllmarasIDDES +( + const volVectorField& U, + const surfaceScalarField& phi, + transportModel& transport +) +: + SpalartAllmaras(U, phi, transport, typeName), + + fwStar_ + ( + dimensioned<scalar>::lookupOrAddToDict + ( + "fwStar", + coeffDict(), + 0.424 + ) + ), + cl_ + ( + dimensioned<scalar>::lookupOrAddToDict + ( + "cl", + coeffDict(), + 3.55 + ) + ), + ct_ + ( + dimensioned<scalar>::lookupOrAddToDict + ( + "ct", + coeffDict(), + 1.63 + ) + ) + +{} + + +bool SpalartAllmarasIDDES::read() +{ + if (SpalartAllmaras::read()) + { + fwStar_.readIfPresent(coeffDict()); + cl_.readIfPresent(coeffDict()); + ct_.readIfPresent(coeffDict()); + + return true; + } + else + { + return false; + } +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace LESModels +} // End namespace incompressible +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H new file mode 100644 index 0000000000000000000000000000000000000000..d07b53672c007929893e099ce2ef8c6b7b04a428 --- /dev/null +++ b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H @@ -0,0 +1,132 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::LESmodels::SpalartAllmarasIDDES + +Description + SpalartAllmarasIDDES LES turbulence model for incompressible flows + +SourceFiles + SpalartAllmarasIDDES.C + +\*---------------------------------------------------------------------------*/ + +#ifndef SpalartAllmarasIDDES_H +#define SpalartAllmarasIDDES_H + +#include "SpalartAllmaras.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace incompressible +{ +namespace LESModels +{ + +/*---------------------------------------------------------------------------*\ + Class SpalartAllmarasIDDES Declaration +\*---------------------------------------------------------------------------*/ + +class SpalartAllmarasIDDES +: + public SpalartAllmaras +{ + // Private data + + // Model constants + + dimensionedScalar fwStar_; + dimensionedScalar cl_; + dimensionedScalar ct_; + + + // Private member functions + + tmp<volScalarField> alpha() const; + tmp<volScalarField> ft(const volScalarField& S) const; + tmp<volScalarField> fl(const volScalarField& S) const; + tmp<volScalarField> rd + ( + const volScalarField& visc, + const volScalarField& S + ) const; + + // Disallow default bitwise copy construct and assignment + SpalartAllmarasIDDES(const SpalartAllmarasIDDES&); + SpalartAllmarasIDDES& operator=(const SpalartAllmarasIDDES&); + + +protected: + + // Protected member functions + + //- Delay function + tmp<volScalarField> fd(const volScalarField& S) const; + + //- Length scale calculation + virtual void dTildaUpdate(const volScalarField& S); + +public: + + //- Runtime type information + TypeName("SpalartAllmarasIDDES"); + + + // Constructors + + //- Constructor from components + SpalartAllmarasIDDES + ( + const volVectorField& U, + const surfaceScalarField& phi, + transportModel& transport + ); + + + //- Destructor + virtual ~SpalartAllmarasIDDES() + {} + + + // Member Functions + + //- Read turbulenceProperties dictionary + virtual bool read(); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace LESModels +} // End namespace incompressible +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* //