kineticTheoryModel.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 Class
25  Foam::RASModels::kineticTheoryModel
26 
27 Description
28  Kinetic theory particle phase RAS model
29 
30  Reference:
31  \verbatim
32  "Derivation, implementation, and validation of computer simulation
33  models for gas-solid fluidized beds",
34  van Wachem, B.G.M.,
35  Ph.D. Thesis, Delft University of Technology, Amsterdam, 2000.
36  \endverbatim
37 
38  There are no default model coefficients.
39 
40 SourceFiles
41  kineticTheoryModel.C
42 
43 \*---------------------------------------------------------------------------*/
44 
45 #ifndef kineticTheoryModel_H
46 #define kineticTheoryModel_H
47 
48 #include "RASModel.H"
49 #include "eddyViscosity.H"
50 #include "phaseCompressibleTurbulenceModel.H"
51 #include "EddyDiffusivity.H"
52 #include "phaseModel.H"
53 #include "dragModel.H"
54 #include "viscosityModel.H"
55 #include "conductivityModel.H"
56 #include "radialModel.H"
57 #include "granularPressureModel.H"
58 #include "frictionalStressModel.H"
59 
60 
61 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
62 
63 namespace Foam
64 {
65 namespace RASModels
66 {
67 
68 /*---------------------------------------------------------------------------*\
69  Class kineticTheoryModel Declaration
70 \*---------------------------------------------------------------------------*/
71 
72 class kineticTheoryModel
73 :
74  public eddyViscosity
75  <
76  RASModel<EddyDiffusivity<phaseCompressibleTurbulenceModel>>
77  >
78 {
79  // Private data
80 
81  // Input Fields
82 
83  const phaseModel& phase_;
84 
85 
86  // Sub-models
87 
88  //- Run-time selected viscosity model
89  autoPtr<kineticTheoryModels::viscosityModel> viscosityModel_;
90 
91  //- Run-time selected conductivity model
92  autoPtr<kineticTheoryModels::conductivityModel> conductivityModel_;
93 
94  //- Run-time selected radial distribution model
95  autoPtr<kineticTheoryModels::radialModel> radialModel_;
96 
97  //- Run-time selected granular pressure model
98  autoPtr<kineticTheoryModels::granularPressureModel>
99  granularPressureModel_;
100 
101  //- Run-time selected frictional stress model
102  autoPtr<kineticTheoryModels::frictionalStressModel>
103  frictionalStressModel_;
104 
105 
106  // Kinetic Theory Model coefficients
107 
108  //- Use equilibrium approximation: generation == dissipation
109  Switch equilibrium_;
110 
111  //- Coefficient of restitution
113 
114  //- Maximum packing phase-fraction
115  dimensionedScalar alphaMax_;
116 
117  //- Min value for which the frictional stresses are zero
118  dimensionedScalar alphaMinFriction_;
119 
120  //- Residual phase fraction
121  dimensionedScalar residualAlpha_;
122 
123  //- Maximum turbulent viscosity
124  dimensionedScalar maxNut_;
125 
126 
127  // Kinetic Theory Model Fields
128 
129  //- The granular energy/temperature
130  volScalarField Theta_;
131 
132  //- The granular bulk viscosity
133  volScalarField lambda_;
134 
135  //- The granular radial distribution
136  volScalarField gs0_;
137 
138  //- The granular "thermal" conductivity
139  volScalarField kappa_;
140 
141  //- The frictional viscosity
142  volScalarField nuFric_;
143 
144 
145  // Private Member Functions
146 
147  void correctNut()
148  {}
149 
150  //- Disallow default bitwise copy construct
151  kineticTheoryModel(const kineticTheoryModel&);
152 
153  //- Disallow default bitwise assignment
154  void operator=(const kineticTheoryModel&);
155 
156 
157 public:
158 
159  //- Runtime type information
160  TypeName("kineticTheory");
161 
162 
163  // Constructors
164 
165  //- Construct from components
166  kineticTheoryModel
167  (
168  const volScalarField& alpha,
169  const volScalarField& rho,
170  const volVectorField& U,
172  const surfaceScalarField& phi,
173  const phaseModel& transport,
175  const word& type = typeName
176  );
177 
178 
179  //- Destructor
180  virtual ~kineticTheoryModel();
181 
182 
183  // Member Functions
184 
185  //- Re-read model coefficients if they have changed
186  virtual bool read();
187 
188  //- Return the effective viscosity
189  virtual tmp<volScalarField> nuEff() const
190  {
191  return this->nut();
192  }
193 
194  //- Return the effective viscosity on patch
195  virtual tmp<scalarField> nuEff(const label patchi) const
196  {
197  return this->nut(patchi);
198  }
199 
200  //- Return the turbulence kinetic energy
201  virtual tmp<volScalarField> k() const;
202 
203  //- Return the turbulence kinetic energy dissipation rate
204  virtual tmp<volScalarField> epsilon() const;
205 
206  //- Return the Reynolds stress tensor
207  virtual tmp<volSymmTensorField> R() const;
208 
209  //- Return the phase-pressure'
210  // (derivative of phase-pressure w.r.t. phase-fraction)
211  virtual tmp<volScalarField> pPrime() const;
212 
213  //- Return the face-phase-pressure'
214  // (derivative of phase-pressure w.r.t. phase-fraction)
215  virtual tmp<surfaceScalarField> pPrimef() const;
216 
217  //- Return the effective stress tensor
218  virtual tmp<volSymmTensorField> devRhoReff() const;
219 
220  //- Return the source term for the momentum equation
222 
223  //- Solve the kinetic theory equations and correct the viscosity
224  virtual void correct();
225 };
226 
227 
228 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
229 
230 } // End namespace RASModels
231 } // End namespace Foam
232 
233 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
234 
235 #endif
236 
237 // ************************************************************************* //
virtual tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
virtual tmp< volScalarField > nut() const
Return the turbulence viscosity.
const volVectorField & U() const
Access function to velocity field.
virtual tmp< surfaceScalarField > pPrimef() const
Return the face-phase-pressure&#39;.
TypeName("kineticTheory")
Runtime type information.
virtual tmp< volScalarField > nuEff() const
Return the effective viscosity.
GeometricField< vector, fvPatchField, volMesh > volVectorField
Definition: volFieldsFwd.H:55
const transportModel & transport() const
Access function to incompressible transport model.
virtual tmp< volSymmTensorField > R() const
Return the Reynolds stress tensor.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Definition: volFieldsFwd.H:52
static const word propertiesName
Default name of the turbulence properties dictionary.
virtual tmp< volSymmTensorField > devRhoReff() const
Return the effective stress tensor.
const surfaceScalarField & alphaRhoPhi() const
Access function to phase flux field.
virtual void correct()
Solve the kinetic theory equations and correct the viscosity.
virtual ~kineticTheoryModel()
Destructor.
const volScalarField & rho() const
Return the density field.
virtual tmp< fvVectorMatrix > divDevRhoReff(volVectorField &U) const
Return the source term for the momentum equation.
fileName::Type type(const fileName &, const bool followLink=true)
Return the file type: DIRECTORY or FILE.
Definition: POSIX.C:481
label patchi
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
virtual tmp< volScalarField > pPrime() const
Return the phase-pressure&#39;.
virtual bool read()
Re-read model coefficients if they have changed.
virtual tmp< volScalarField > k() const
Return the turbulence kinetic energy.
virtual tmp< surfaceScalarField > phi() const
Return the volumetric flux field.
A class for managing temporary objects.
Definition: PtrList.H:53
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
virtual tmp< volScalarField > alpha() const
Thermal diffusivity for enthalpy of mixture [kg/m/s].
Namespace for OpenFOAM.