compressibleTurbulenceModel.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 | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2013-2015 OpenFOAM Foundation
9 Copyright (C) 2019 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
12 This file is part of OpenFOAM.
13
14 OpenFOAM is free software: you can redistribute it and/or modify it
15 under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27Class
28 Foam::compressibleTurbulenceModel
29
30Description
31 Abstract base class for turbulence models (RAS, LES and laminar).
32
33SourceFiles
34 compressibleTurbulenceModel.C
35
36\*---------------------------------------------------------------------------*/
37
38#ifndef compressibleTurbulenceModel_H
39#define compressibleTurbulenceModel_H
40
41#include "turbulenceModel.H"
42
43// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44
45namespace Foam
46{
47
48// Forward declarations
49class fvMesh;
50
51/*---------------------------------------------------------------------------*\
52 Class compressibleTurbulenceModel Declaration
53\*---------------------------------------------------------------------------*/
56:
57 public turbulenceModel
58{
59
60protected:
61
62 // Protected data
64 const volScalarField& rho_;
65
66
67 // Protected member functions
68
69 //- ***HGW Temporary function to be removed when the run-time selectable
70 // thermal transport layer is complete
71 virtual void correctNut()
72 {}
73
74
75private:
76
77 // Private Member Functions
78
79 //- No copy construct
81 (
83 ) = delete;
84
85 //- No copy assignment
86 void operator=(const compressibleTurbulenceModel&) = delete;
87
88
89public:
90
91 //- Runtime type information
92 TypeName("compressibleTurbulenceModel");
93
94
95 // Constructors
96
97 //- Construct from components
99 (
100 const volScalarField& rho,
101 const volVectorField& U,
103 const surfaceScalarField& phi,
104 const word& propertiesName
105 );
106
107
108 //- Destructor
109 virtual ~compressibleTurbulenceModel() = default;
110
111
112 // Member functions
113
114 //- Return the density field
115 const volScalarField& rho() const
116 {
117 return rho_;
118 }
119
120 //- Return the volumetric flux field
121 virtual tmp<surfaceScalarField> phi() const;
122
123 //- Return the effective stress tensor including the laminar stress
124 virtual tmp<volSymmTensorField> devRhoReff() const = 0;
125
126 //- Return the effective stress tensor including
127 //- the laminar stress based on a given velocity field
129 (
130 const volVectorField& U
131 ) const = 0;
132
133 //- Return the source term for the momentum equation
135
136 //- Correct the turbulence thermal diffusivity for energy transport
137 virtual void correctEnergyTransport();
138};
139
140
141// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142
143} // End namespace Foam
144
145// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146
147#endif
148
149// ************************************************************************* //
Abstract base class for turbulence models (RAS, LES and laminar).
virtual void correctEnergyTransport()
Correct the turbulence thermal diffusivity for energy transport.
virtual tmp< volSymmTensorField > devRhoReff() const =0
Return the effective stress tensor including the laminar stress.
virtual void correctNut()
***HGW Temporary function to be removed when the run-time selectable
const volScalarField & rho() const
Return the density field.
virtual tmp< fvVectorMatrix > divDevRhoReff(volVectorField &U) const =0
Return the source term for the momentum equation.
virtual tmp< volSymmTensorField > devRhoReff(const volVectorField &U) const =0
virtual ~compressibleTurbulenceModel()=default
Destructor.
virtual tmp< surfaceScalarField > phi() const
Return the volumetric flux field.
TypeName("compressibleTurbulenceModel")
Runtime type information.
A class for managing temporary objects.
Definition: tmp.H:65
Abstract base class for turbulence models (RAS, LES and laminar).
const volVectorField & U() const
Access function to velocity field.
static const word propertiesName
Default name of the turbulence properties dictionary.
const surfaceScalarField & alphaRhoPhi() const
Access function to phase flux field.
A class for handling words, derived from Foam::string.
Definition: word.H:68
Namespace for OpenFOAM.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73