kineticTheoryModel.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) 2011-2018 OpenFOAM Foundation
9 Copyright (C) 2020 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::RASModels::kineticTheoryModel
29
30Description
31 Kinetic theory particle phase RAS model
32
33 Reference:
34 \verbatim
35 van Wachem, B. G. M. (2000).
36 Derivation, implementation, and validation of computer simulation models
37 for gas-solid fluidized beds.
38 PhD Thesis, TU Delft.
39 \endverbatim
40
41 There are no default model coefficients.
42
43SourceFiles
44 kineticTheoryModel.C
45
46\*---------------------------------------------------------------------------*/
47
48#ifndef kineticTheoryModel_H
49#define kineticTheoryModel_H
50
51#include "RASModel.H"
52#include "eddyViscosity.H"
53#include "phaseCompressibleTurbulenceModel.H"
54#include "EddyDiffusivity.H"
55#include "phaseModel.H"
56#include "dragModel.H"
57#include "viscosityModel.H"
58#include "conductivityModel.H"
59#include "radialModel.H"
60#include "granularPressureModel.H"
61#include "frictionalStressModel.H"
62
63
64// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
65
66namespace Foam
67{
68namespace RASModels
69{
70
71/*---------------------------------------------------------------------------*\
72 Class kineticTheoryModel Declaration
73\*---------------------------------------------------------------------------*/
76:
77 public eddyViscosity
78 <
79 RASModel<EddyDiffusivity<phaseCompressibleTurbulenceModel>>
80 >
81{
82 // Private data
83
84 // Input Fields
85
86 const phaseModel& phase_;
87
88
89 // Sub-models
90
91 //- Run-time selected viscosity model
93
94 //- Run-time selected conductivity model
96
97 //- Run-time selected radial distribution model
99
100 //- Run-time selected granular pressure model
102 granularPressureModel_;
103
104 //- Run-time selected frictional stress model
106 frictionalStressModel_;
107
108
109 // Kinetic Theory Model coefficients
110
111 //- Use equilibrium approximation: generation == dissipation
112 bool equilibrium_;
113
114 //- Coefficient of restitution
116
117 //- Maximum packing phase-fraction
118 dimensionedScalar alphaMax_;
119
120 //- Min value for which the frictional stresses are zero
121 dimensionedScalar alphaMinFriction_;
122
123 //- Residual phase fraction
124 dimensionedScalar residualAlpha_;
125
126 //- Maximum turbulent viscosity
127 dimensionedScalar maxNut_;
128
129
130 // Kinetic Theory Model Fields
131
132 //- The granular energy/temperature
133 volScalarField Theta_;
134
135 //- The granular bulk viscosity
136 volScalarField lambda_;
137
138 //- The granular radial distribution
139 volScalarField gs0_;
140
141 //- The granular "thermal" conductivity
142 volScalarField kappa_;
143
144 //- The frictional viscosity
145 volScalarField nuFric_;
146
147
148 // Private Member Functions
149
150 void correctNut()
151 {}
152
153 //- Disallow default bitwise copy construct
155
156 //- Disallow default bitwise assignment
157 void operator=(const kineticTheoryModel&);
158
159
160public:
161
162 //- Runtime type information
163 TypeName("kineticTheory");
164
165
166 // Constructors
167
168 //- Construct from components
170 (
171 const volScalarField& alpha,
172 const volScalarField& rho,
173 const volVectorField& U,
174 const surfaceScalarField& alphaRhoPhi,
175 const surfaceScalarField& phi,
176 const phaseModel& transport,
177 const word& propertiesName = turbulenceModel::propertiesName,
178 const word& type = typeName
179 );
180
181
182 //- Destructor
183 virtual ~kineticTheoryModel();
184
185
186 // Member Functions
187
188 //- Re-read model coefficients if they have changed
189 virtual bool read();
190
191 //- Return the effective viscosity
192 virtual tmp<volScalarField> nuEff() const
193 {
194 return this->nut();
195 }
196
197 //- Return the effective viscosity on patch
198 virtual tmp<scalarField> nuEff(const label patchi) const
199 {
200 return this->nut(patchi);
201 }
202
203 //- Return the turbulence kinetic energy
204 virtual tmp<volScalarField> k() const;
205
206 //- Return the turbulence kinetic energy dissipation rate
207 virtual tmp<volScalarField> epsilon() const;
208
209 //- Return the specific dissipation rate
210 virtual tmp<volScalarField> omega() const;
211
212 //- Return the Reynolds stress tensor
213 virtual tmp<volSymmTensorField> R() const;
214
215 //- Return the phase-pressure'
216 // (derivative of phase-pressure w.r.t. phase-fraction)
217 virtual tmp<volScalarField> pPrime() const;
218
219 //- Return the face-phase-pressure'
220 // (derivative of phase-pressure w.r.t. phase-fraction)
221 virtual tmp<surfaceScalarField> pPrimef() const;
222
223 //- Return the effective stress tensor
224 virtual tmp<volSymmTensorField> devRhoReff() const;
225
226 //- Return the effective stress tensor based on a given velocity field
228 (
229 const volVectorField& U
230 ) const;
231
232 //- Return the source term for the momentum equation
234
235 //- Solve the kinetic theory equations and correct the viscosity
236 virtual void correct();
237};
238
239
240// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
241
242} // End namespace RASModels
243} // End namespace Foam
244
245// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
246
247#endif
248
249// ************************************************************************* //
surfaceScalarField & phi
Kinetic theory particle phase RAS model.
virtual tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate.
virtual tmp< volScalarField > nuEff() const
Return the effective viscosity.
virtual tmp< volSymmTensorField > R() const
Return the Reynolds stress tensor.
virtual tmp< scalarField > nuEff(const label patchi) const
Return the effective viscosity on patch.
virtual void correct()
Solve the kinetic theory equations and correct the viscosity.
virtual tmp< volScalarField > k() const
Return the turbulence kinetic energy.
virtual tmp< fvVectorMatrix > divDevRhoReff(volVectorField &U) const
Return the source term for the momentum equation.
virtual tmp< volScalarField > pPrime() const
Return the phase-pressure'.
virtual tmp< surfaceScalarField > pPrimef() const
Return the face-phase-pressure'.
virtual tmp< volScalarField > omega() const
Return the specific dissipation rate.
virtual tmp< volSymmTensorField > devRhoReff() const
Return the effective stress tensor.
TypeName("kineticTheory")
Runtime type information.
virtual bool read()
Re-read model coefficients if they have changed.
kineticTheoryModel(const volScalarField &alpha, const volScalarField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const phaseModel &transport, const word &propertiesName=turbulenceModel::propertiesName, const word &type=typeName)
Construct from components.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: autoPtr.H:66
Eddy viscosity turbulence model base class.
Definition: eddyViscosity.H:58
virtual tmp< volScalarField > nut() const
Return the turbulence viscosity.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Definition: phaseModel.H:61
A class for managing temporary objects.
Definition: tmp.H:65
static const word propertiesName
Default name of the turbulence properties dictionary.
A class for handling words, derived from Foam::string.
Definition: word.H:68
U
Definition: pEqn.H:72
Namespace for OpenFOAM.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Definition: MSwindows.C:598
volScalarField & alpha
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73