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-2016 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::kineticTheoryModel
29
30Description
31 Kinetic theory particle phase RAS model
32
33 Reference:
34 \verbatim
35 "Derivation, implementation, and validation of computer simulation
36 models for gas-solid fluidized beds",
37 van Wachem, B.G.M.,
38 Ph.D. Thesis, Delft University of Technology, Amsterdam, 2000.
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\*---------------------------------------------------------------------------*/
74
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
92 autoPtr<kineticTheoryModels::viscosityModel> viscosityModel_;
93
94 //- Run-time selected conductivity model
95 autoPtr<kineticTheoryModels::conductivityModel> conductivityModel_;
96
97 //- Run-time selected radial distribution model
98 autoPtr<kineticTheoryModels::radialModel> radialModel_;
99
100 //- Run-time selected granular pressure model
101 autoPtr<kineticTheoryModels::granularPressureModel>
102 granularPressureModel_;
103
104 //- Run-time selected frictional stress model
105 autoPtr<kineticTheoryModels::frictionalStressModel>
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 //- No copy construct
154 kineticTheoryModel(const kineticTheoryModel&) = delete;
155
156 //- No copy assignment
157 void operator=(const kineticTheoryModel&) = delete;
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< 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 ~kineticTheoryModel()
Destructor.
virtual tmp< volSymmTensorField > devRhoReff(const volVectorField &U) const
Return the effective stress tensor based on a given velocity field.
virtual tmp< fvVectorMatrix > divDevRhoReff(volVectorField &U) const
Return the source term for the momentum equation.
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 void correct()
Solve the kinetic theory equations and correct the viscosity.
virtual tmp< surfaceScalarField > pPrimef() const
Return the face-phase-pressure'.
virtual bool read()
Re-read model coefficients if they have changed.
virtual tmp< volScalarField > omega() const
Return the specific dissipation rate.
virtual tmp< volSymmTensorField > devRhoReff() const
Return the effective stress tensor.
virtual tmp< volScalarField > k() const
Return the turbulence kinetic energy.
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 tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate.
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.
virtual tmp< volScalarField > nut() const
Return the turbulence viscosity.
Kinetic theory particle phase RAS model.
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.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Definition: volFieldsFwd.H:82
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