Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / turbulenceModels / incompressible / RAS / LRR / LRR.H
blob75faa2b06aa8897cc1e50fc72155ae9bafc2ab4d
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::LRR
27 Description
28     Launder, Reece and Rodi Reynolds-stress turbulence model for
29     incompressible flows.
31     The default model coefficients correspond to the following:
32     \verbatim
33         LRRCoeffs
34         {
35             Cmu         0.09;
36             Clrr1       1.8;
37             Clrr2       0.6;
38             C1          1.44;
39             C2          1.92;
40             Cs          0.25;
41             Ceps        0.15;
42             sigmaEps    1.3;
43             couplingFactor  0.0;    // only for incompressible
44         }
45     \endverbatim
47 SourceFiles
48     LRR.C
50 \*---------------------------------------------------------------------------*/
52 #ifndef LRR_H
53 #define LRR_H
55 #include "RASModel.H"
57 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
59 namespace Foam
61 namespace incompressible
63 namespace RASModels
66 /*---------------------------------------------------------------------------*\
67                            Class LRR Declaration
68 \*---------------------------------------------------------------------------*/
70 class LRR
72     public RASModel
75 protected:
77     // Protected data
79         // Model coefficients
81             dimensionedScalar Cmu_;
83             dimensionedScalar Clrr1_;
84             dimensionedScalar Clrr2_;
86             dimensionedScalar C1_;
87             dimensionedScalar C2_;
88             dimensionedScalar Cs_;
89             dimensionedScalar Ceps_;
90             dimensionedScalar sigmaEps_;
92             dimensionedScalar couplingFactor_;
95         // Fields
97             volSymmTensorField R_;
98             volScalarField k_;
99             volScalarField epsilon_;
100             volScalarField nut_;
103 public:
105     //- Runtime type information
106     TypeName("LRR");
108     // Constructors
110         //- Construct from components
111         LRR
112         (
113             const volVectorField& U,
114             const surfaceScalarField& phi,
115             transportModel& transport,
116             const word& turbulenceModelName = turbulenceModel::typeName,
117             const word& modelName = typeName
118         );
121     //- Destructor
122     virtual ~LRR()
123     {}
126     // Member Functions
128         //- Return the turbulence viscosity
129         virtual tmp<volScalarField> nut() const
130         {
131             return nut_;
132         }
134         //- Return the effective diffusivity for R
135         tmp<volScalarField> DREff() const
136         {
137             return tmp<volScalarField>
138             (
139                 new volScalarField("DREff", nut_ + nu())
140             );
141         }
143         //- Return the effective diffusivity for epsilon
144         tmp<volScalarField> DepsilonEff() const
145         {
146             return tmp<volScalarField>
147             (
148                 new volScalarField("DepsilonEff", nut_/sigmaEps_ + nu())
149             );
150         }
152         //- Return the turbulence kinetic energy
153         virtual tmp<volScalarField> k() const
154         {
155             return k_;
156         }
158         //- Return the turbulence kinetic energy dissipation rate
159         virtual tmp<volScalarField> epsilon() const
160         {
161             return epsilon_;
162         }
164         //- Return the Reynolds stress tensor
165         virtual tmp<volSymmTensorField> R() const
166         {
167             return R_;
168         }
170         //- Return the effective stress tensor including the laminar stress
171         virtual tmp<volSymmTensorField> devReff() const;
173         //- Return the source term for the momentum equation
174         virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const;
176         //- Solve the turbulence equations and correct the turbulence viscosity
177         virtual void correct();
179         //- Read RASProperties dictionary
180         virtual bool read();
184 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186 } // End namespace RASModels
187 } // End namespace incompressible
188 } // End namespace Foam
190 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
192 #endif
194 // ************************************************************************* //