Forward compatibility: flex
[foam-extend-3.2.git] / src / turbulenceModels / incompressible / RAS / LRR / LRR.H
blob156033ff3942fc0a4904f6e5d509ebb91c384d7e
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  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
74     // Private data
76         // Model coefficients
78             dimensionedScalar Cmu_;
80             dimensionedScalar Clrr1_;
81             dimensionedScalar Clrr2_;
83             dimensionedScalar C1_;
84             dimensionedScalar C2_;
85             dimensionedScalar Cs_;
86             dimensionedScalar Ceps_;
87             dimensionedScalar sigmaEps_;
89             dimensionedScalar couplingFactor_;
92         // Fields
94             volSymmTensorField R_;
95             volScalarField k_;
96             volScalarField epsilon_;
97             volScalarField nut_;
100 public:
102     //- Runtime type information
103     TypeName("LRR");
105     // Constructors
107         //- Construct from components
108         LRR
109         (
110             const volVectorField& U,
111             const surfaceScalarField& phi,
112             transportModel& transport
113         );
116     //- Destructor
118         virtual ~LRR()
119         {}
122     // Member Functions
124         //- Return the turbulence viscosity
125         virtual tmp<volScalarField> nut() const
126         {
127             return nut_;
128         }
130         //- Return the effective diffusivity for R
131         tmp<volScalarField> DREff() const
132         {
133             return tmp<volScalarField>
134             (
135                 new volScalarField("DREff", nut_ + nu())
136             );
137         }
139         //- Return the effective diffusivity for epsilon
140         tmp<volScalarField> DepsilonEff() const
141         {
142             return tmp<volScalarField>
143             (
144                 new volScalarField("DepsilonEff", nut_/sigmaEps_ + nu())
145             );
146         }
148         //- Return the turbulence kinetic energy
149         virtual tmp<volScalarField> k() const
150         {
151             return k_;
152         }
154         //- Return the turbulence kinetic energy dissipation rate
155         virtual tmp<volScalarField> epsilon() const
156         {
157             return epsilon_;
158         }
160         //- Return the Reynolds stress tensor
161         virtual tmp<volSymmTensorField> R() const
162         {
163             return R_;
164         }
166         //- Return the effective stress tensor including the laminar stress
167         virtual tmp<volSymmTensorField> devReff() const;
169         //- Return the source term for the momentum equation
170         virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const;
172         //- Solve the turbulence equations and correct the turbulence viscosity
173         virtual void correct();
175         //- Read RASProperties dictionary
176         virtual bool read();
180 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
182 } // End namespace RASModels
183 } // End namespace incompressible
184 } // End namespace Foam
186 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
188 #endif
190 // ************************************************************************* //