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 | Copyright (C) 2011-2015 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::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"
51 #include "ThermalDiffusivity.H"
52 #include "EddyDiffusivity.H"
53 #include "phaseModel.H"
54 #include "dragModel.H"
55 #include "viscosityModel.H"
56 #include "conductivityModel.H"
57 #include "radialModel.H"
58 #include "granularPressureModel.H"
59 #include "frictionalStressModel.H"
60 
61 
62 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
63 
64 namespace Foam
65 {
66 namespace RASModels
67 {
68 
69 /*---------------------------------------------------------------------------*\
70  Class kineticTheoryModel Declaration
71 \*---------------------------------------------------------------------------*/
72 
73 class kineticTheoryModel
74 :
75  public eddyViscosity
76  <
77  RASModel<EddyDiffusivity<ThermalDiffusivity
78  <
79  PhaseCompressibleTurbulenceModel<phaseModel>
80  > > >
81  >
82 {
83  // Private data
84 
85  // Input Fields
86 
87  const phaseModel& phase_;
88 
89 
90  // Sub-models
91 
92  //- Run-time selected viscosity model
93  autoPtr<kineticTheoryModels::viscosityModel> viscosityModel_;
94 
95  //- Run-time selected conductivity model
96  autoPtr<kineticTheoryModels::conductivityModel> conductivityModel_;
97 
98  //- Run-time selected radial distribution model
99  autoPtr<kineticTheoryModels::radialModel> radialModel_;
100 
101  //- Run-time selected granular pressure model
102  autoPtr<kineticTheoryModels::granularPressureModel>
103  granularPressureModel_;
104 
105  //- Run-time selected frictional stress model
106  autoPtr<kineticTheoryModels::frictionalStressModel>
107  frictionalStressModel_;
108 
109 
110  // Kinetic Theory Model coefficients
111 
112  //- Use equilibrium approximation: generation == dissipation
113  Switch equilibrium_;
114 
115  //- Coefficient of restitution
117 
118  //- Maximum packing phase-fraction
119  dimensionedScalar alphaMax_;
120 
121  //- Min value for which the frictional stresses are zero
122  dimensionedScalar alphaMinFriction_;
123 
124  //- Residual phase fraction
125  dimensionedScalar residualAlpha_;
126 
127 
128  // Kinetic Theory Model Fields
129 
130  //- The granular energy/temperature
131  volScalarField Theta_;
132 
133  //- The granular bulk viscosity
134  volScalarField lambda_;
135 
136  //- The granular radial distribution
137  volScalarField gs0_;
138 
139  //- The granular "thermal" conductivity
140  volScalarField kappa_;
141 
142 
143  // Private Member Functions
144 
145  void correctNut()
146  {}
147 
148  //- Disallow default bitwise copy construct
149  kineticTheoryModel(const kineticTheoryModel&);
150 
151  //- Disallow default bitwise assignment
152  void operator=(const kineticTheoryModel&);
153 
154 
155 public:
156 
157  //- Runtime type information
158  TypeName("kineticTheory");
159 
160 
161  // Constructors
162 
163  //- Construct from components
164  kineticTheoryModel
165  (
166  const volScalarField& alpha,
167  const volScalarField& rho,
168  const volVectorField& U,
169  const surfaceScalarField& alphaRhoPhi,
170  const surfaceScalarField& phi,
171  const phaseModel& transport,
172  const word& propertiesName = turbulenceModel::propertiesName,
173  const word& type = typeName
174  );
175 
176 
177  //- Destructor
178  virtual ~kineticTheoryModel();
179 
180 
181  // Member Functions
182 
183  //- Re-read model coefficients if they have changed
184  virtual bool read();
185 
186  //- Return the effective viscosity
187  virtual tmp<volScalarField> nuEff() const
188  {
189  return this->nut();
190  }
191 
192  //- Return the effective viscosity on patch
193  virtual tmp<scalarField> nuEff(const label patchi) const
194  {
195  return this->nut(patchi);
196  }
197 
198  //- Return the turbulence kinetic energy
199  virtual tmp<volScalarField> k() const;
200 
201  //- Return the turbulence kinetic energy dissipation rate
202  virtual tmp<volScalarField> epsilon() const;
203 
204  //- Return the Reynolds stress tensor
205  virtual tmp<volSymmTensorField> R() const;
206 
207  //- Return the phase-pressure'
208  // (derivative of phase-pressure w.r.t. phase-fraction)
209  virtual tmp<volScalarField> pPrime() const;
210 
211  //- Return the face-phase-pressure'
212  // (derivative of phase-pressure w.r.t. phase-fraction)
213  virtual tmp<surfaceScalarField> pPrimef() const;
214 
215  //- Return the effective stress tensor
216  virtual tmp<volSymmTensorField> devRhoReff() const;
217 
218  //- Return the source term for the momentum equation
220 
221  //- Solve the kinetic theory equations and correct the viscosity
222  virtual void correct();
223 };
224 
225 
226 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
227 
228 } // End namespace RASModels
229 } // End namespace Foam
230 
231 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
232 
233 #endif
234 
235 // ************************************************************************* //
virtual tmp< volScalarField > k() const
Return the turbulence kinetic energy.
virtual tmp< surfaceScalarField > pPrimef() const
Return the face-phase-pressure&#39;.
TypeName("kineticTheory")
Runtime type information.
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 ~kineticTheoryModel()
Destructor.
Namespace for OpenFOAM.
virtual tmp< volScalarField > nuEff() const
Return the effective viscosity.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Definition: volFieldsFwd.H:52
scalar nut
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
virtual void correct()
Solve the kinetic theory equations and correct the viscosity.
virtual tmp< volSymmTensorField > devRhoReff() const
Return the effective stress tensor.
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
label patchi
virtual tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate.
virtual tmp< volScalarField > pPrime() const
Return the phase-pressure&#39;.
virtual tmp< fvVectorMatrix > divDevRhoReff(volVectorField &U) const
Return the source term for the momentum equation.
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
Definition: POSIX.C:589
surfaceScalarField & phi
virtual tmp< volSymmTensorField > R() const
Return the Reynolds stress tensor.
GeometricField< vector, fvPatchField, volMesh > volVectorField
Definition: volFieldsFwd.H:55
static const word propertiesName
Default name of the turbulence properties dictionary.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
A class for managing temporary objects.
Definition: PtrList.H:118
virtual bool read()
Re-read model coefficients if they have changed.
U
Definition: pEqn.H:82