ENH: patchCloud: return pTraits<Type>::max for unfound points
[OpenFOAM-1.7.x.git] / src / turbulenceModels / compressible / RAS / kEpsilon / kEpsilon.H
blob9a87833606bc3da7a785fadb0a3ee8627faca9fd
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2010 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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.
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.
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/>.
24 Class
25     Foam::compressible::RASModels::kEpsilon
27 Description
28     Standard k-epsilon turbulence model for compressible flows
30     The default model coefficients correspond to the following:
31     @verbatim
32         kEpsilonCoeffs
33         {
34             Cmu         0.09;
35             C1          1.44;
36             C2          1.92;
37             C3          -0.33;  // only for compressible
38             sigmak      1.0;    // only for compressible
39             sigmaEps    1.3;
40             Prt         1.0;    // only for compressible
41         }
42     @endverbatim
44 SourceFiles
45     kEpsilon.C
46     kEpsilonCorrect.C
48 \*---------------------------------------------------------------------------*/
50 #ifndef compressiblekEpsilon_H
51 #define compressiblekEpsilon_H
53 #include "RASModel.H"
55 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57 namespace Foam
59 namespace compressible
61 namespace RASModels
64 /*---------------------------------------------------------------------------*\
65                            Class kEpsilon Declaration
66 \*---------------------------------------------------------------------------*/
68 class kEpsilon
70     public RASModel
72     // Private data
74         // Model coefficients
76             dimensionedScalar Cmu_;
77             dimensionedScalar C1_;
78             dimensionedScalar C2_;
79             dimensionedScalar C3_;
80             dimensionedScalar sigmak_;
81             dimensionedScalar sigmaEps_;
82             dimensionedScalar Prt_;
84         // Fields
86             volScalarField k_;
87             volScalarField epsilon_;
88             volScalarField mut_;
89             volScalarField alphat_;
92 public:
94     //- Runtime type information
95     TypeName("kEpsilon");
97     // Constructors
99         //- Construct from components
100         kEpsilon
101         (
102             const volScalarField& rho,
103             const volVectorField& U,
104             const surfaceScalarField& phi,
105             const basicThermo& thermophysicalModel
106         );
109     //- Destructor
110     virtual ~kEpsilon()
111     {}
114     // Member Functions
116         //- Return the effective diffusivity for k
117         tmp<volScalarField> DkEff() const
118         {
119             return tmp<volScalarField>
120             (
121                 new volScalarField("DkEff", mut_/sigmak_ + mu())
122             );
123         }
125         //- Return the effective diffusivity for epsilon
126         tmp<volScalarField> DepsilonEff() const
127         {
128             return tmp<volScalarField>
129             (
130                 new volScalarField("DepsilonEff", mut_/sigmaEps_ + mu())
131             );
132         }
134         //- Return the turbulence viscosity
135         virtual tmp<volScalarField> mut() const
136         {
137             return mut_;
138         }
140         //- Return the effective turbulent thermal diffusivity
141         virtual tmp<volScalarField> alphaEff() const
142         {
143             return tmp<volScalarField>
144             (
145                 new volScalarField("alphaEff", alphat_ + alpha())
146             );
147         }
149         //- Return the turbulence kinetic energy
150         virtual tmp<volScalarField> k() const
151         {
152             return k_;
153         }
155         //- Return the turbulence kinetic energy dissipation rate
156         virtual tmp<volScalarField> epsilon() const
157         {
158             return epsilon_;
159         }
161         //- Return the Reynolds stress tensor
162         virtual tmp<volSymmTensorField> R() const;
164         //- Return the effective stress tensor including the laminar stress
165         virtual tmp<volSymmTensorField> devRhoReff() const;
167         //- Return the source term for the momentum equation
168         virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;
170         //- Solve the turbulence equations and correct the turbulence viscosity
171         virtual void correct();
173         //- Read RASProperties dictionary
174         virtual bool read();
178 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
180 } // End namespace RASModels
181 } // End namespace compressible
182 } // End namespace Foam
184 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186 #endif
188 // ************************************************************************* //