SpalartAllmarasIDDES.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::LESModels::SpalartAllmarasIDDES
26 
27 Group
28  grpDESTurbulence
29 
30 Description
31  SpalartAllmaras IDDES turbulence model for incompressible and compressible
32  flows
33 
34  Reference:
35  \verbatim
36  Shur, M. L., Spalart, P. R., Strelets, M. K., & Travin, A. K. (2008).
37  A hybrid RANS-LES approach with delayed-DES and wall-modelled LES
38  capabilities.
39  International Journal of Heat and Fluid Flow, 29(6), 1638-1649.
40  \endverbatim
41 
42 SourceFiles
43  SpalartAllmarasIDDES.C
44 
45 \*---------------------------------------------------------------------------*/
46 
47 #ifndef SpalartAllmarasIDDES_H
48 #define SpalartAllmarasIDDES_H
49 
50 #include "SpalartAllmarasDES.H"
51 #include "IDDESDelta.H"
52 
53 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 
55 namespace Foam
56 {
57 namespace LESModels
58 {
59 
60 /*---------------------------------------------------------------------------*\
61  Class SpalartAllmarasIDDES Declaration
62 \*---------------------------------------------------------------------------*/
63 
64 template<class BasicTurbulenceModel>
66 :
67  public SpalartAllmarasDES<BasicTurbulenceModel>
68 {
69  // Private data
70 
71  // Model constants
72 
73  dimensionedScalar fwStar_;
76 
77  // Fields
78 
79  const IDDESDelta& IDDESDelta_;
80 
81 
82  // Private Member Functions
83 
84  tmp<volScalarField> alpha() const;
85  tmp<volScalarField> ft(const volScalarField& magGradU) const;
86  tmp<volScalarField> fl(const volScalarField& magGradU) const;
87 
89  (
90  const volScalarField& nur,
91  const volScalarField& magGradU
92  ) const;
93 
94  //- Delay function
95  tmp<volScalarField> fd(const volScalarField& magGradU) const;
96 
97  // Disallow default bitwise copy construct and assignment
99  void operator=(const SpalartAllmarasIDDES&);
100 
101 
102 protected:
103 
104  // Protected Member Functions
105 
106  //- Length scale
108  (
109  const volScalarField& chi,
110  const volScalarField& fv1,
111  const volTensorField& gradU
112  ) const;
113 
114 
115 public:
117  typedef typename BasicTurbulenceModel::alphaField alphaField;
118  typedef typename BasicTurbulenceModel::rhoField rhoField;
119  typedef typename BasicTurbulenceModel::transportModel transportModel;
120 
121 
122  //- Runtime type information
123  TypeName("SpalartAllmarasIDDES");
124 
125 
126  // Constructors
127 
128  //- Construct from components
130  (
131  const alphaField& alpha,
132  const rhoField& rho,
133  const volVectorField& U,
134  const surfaceScalarField& alphaRhoPhi,
135  const surfaceScalarField& phi,
136  const transportModel& transport,
137  const word& propertiesName = turbulenceModel::propertiesName,
138  const word& type = typeName
139  );
140 
141 
142  //- Destructor
143  virtual ~SpalartAllmarasIDDES()
144  {}
145 
146 
147  // Member Functions
148 
149  //- Read model coefficients if they have changed
150  virtual bool read();
151 };
152 
153 
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 
156 } // End namespace LESModels
157 } // End namespace Foam
158 
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 
161 #ifdef NoRepository
162  #include "SpalartAllmarasIDDES.C"
163 #endif
164 
165 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
166 
167 #endif
168 
169 // ************************************************************************* //
surfaceScalarField & phi
U
Definition: pEqn.H:83
BasicTurbulenceModel::rhoField rhoField
virtual tmp< volScalarField > dTilda(const volScalarField &chi, const volScalarField &fv1, const volTensorField &gradU) const
Length scale.
SpalartAllmarasDES DES turbulence model for incompressible and compressible flows.
virtual bool read()
Read model coefficients if they have changed.
SpalartAllmaras IDDES turbulence model for incompressible and compressible flows. ...
BasicTurbulenceModel::alphaField alphaField
static const word propertiesName
Default name of the turbulence properties dictionary.
A class for handling words, derived from string.
Definition: word.H:59
tmp< volScalarField > fv1(const volScalarField &chi) const
fileName::Type type(const fileName &, const bool followLink=true)
Return the file type: DIRECTORY or FILE.
Definition: POSIX.C:485
TypeName("SpalartAllmarasIDDES")
Runtime type information.
BasicTurbulenceModel::transportModel transportModel
A class for managing temporary objects.
Definition: PtrList.H:53
tmp< volScalarField > chi() const
Namespace for OpenFOAM.