Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / turbulenceModels / incompressible / RAS / RNGkEpsilon / RNGkEpsilon.H
blob7afbec9d1a3660be505094eee1d9689baf27cd6a
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2011 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::incompressible::RASModels::RNGkEpsilon
27 Description
28     Renormalisation group k-epsilon turbulence model for incompressible flows.
30     The default model coefficients correspond to the following:
31     \verbatim
32         RNGkEpsilonCoeffs
33         {
34             Cmu         0.0845;
35             C1          1.42;
36             C2          1.68;
37             sigmak      0.71942;
38             sigmaEps    0.71942;
39             eta0        4.38;
40             beta        0.012;
41         }
42     \endverbatim
44 SourceFiles
45     RNGkEpsilon.C
47 \*---------------------------------------------------------------------------*/
49 #ifndef RNGkEpsilon_H
50 #define RNGkEpsilon_H
52 #include "RASModel.H"
54 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
56 namespace Foam
58 namespace incompressible
60 namespace RASModels
63 /*---------------------------------------------------------------------------*\
64                            Class RNGkEpsilon Declaration
65 \*---------------------------------------------------------------------------*/
67 class RNGkEpsilon
69     public RASModel
72 protected:
74     // Protected data
76         // Model coefficients
78             dimensionedScalar Cmu_;
79             dimensionedScalar C1_;
80             dimensionedScalar C2_;
81             dimensionedScalar sigmak_;
82             dimensionedScalar sigmaEps_;
83             dimensionedScalar eta0_;
84             dimensionedScalar beta_;
87         // Fields
89             volScalarField k_;
90             volScalarField epsilon_;
91             volScalarField nut_;
94 public:
96     //- Runtime type information
97     TypeName("RNGkEpsilon");
99     // Constructors
101         //- Construct from components
102         RNGkEpsilon
103         (
104             const volVectorField& U,
105             const surfaceScalarField& phi,
106             transportModel& transport,
107             const word& turbulenceModelName = turbulenceModel::typeName,
108             const word& modelName = typeName
109         );
112     //- Destructor
113     virtual ~RNGkEpsilon()
114     {}
117     // Member Functions
119         //- Return the turbulence viscosity
120         virtual tmp<volScalarField> nut() const
121         {
122             return nut_;
123         }
125         //- Return the effective diffusivity for k
126         tmp<volScalarField> DkEff() const
127         {
128             return tmp<volScalarField>
129             (
130                 new volScalarField("DkEff", nut_/sigmak_ + nu())
131             );
132         }
134         //- Return the effective diffusivity for epsilon
135         tmp<volScalarField> DepsilonEff() const
136         {
137             return tmp<volScalarField>
138             (
139                 new volScalarField("DepsilonEff", nut_/sigmaEps_ + nu())
140             );
141         }
143         //- Return the turbulence kinetic energy
144         virtual tmp<volScalarField> k() const
145         {
146             return k_;
147         }
149         //- Return the turbulence kinetic energy dissipation rate
150         virtual tmp<volScalarField> epsilon() const
151         {
152             return epsilon_;
153         }
155         //- Return the Reynolds stress tensor
156         virtual tmp<volSymmTensorField> R() const;
158         //- Return the effective stress tensor including the laminar stress
159         virtual tmp<volSymmTensorField> devReff() const;
161         //- Return the source term for the momentum equation
162         virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const;
164         //- Solve the turbulence equations and correct the turbulence viscosity
165         virtual void correct();
167         //- Read RASProperties dictionary
168         virtual bool read();
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
174 } // End namespace RASModels
175 } // End namespace incompressible
176 } // End namespace Foam
178 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
180 #endif
182 // ************************************************************************* //