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 -------------------------------------------------------------------------------
11 License
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 
27 Class
28  Foam::kineticTheoryModel
29 
30 Description
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 
43 SourceFiles
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 
66 namespace Foam
67 {
68 namespace 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 
160 public:
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 // ************************************************************************* //
Foam::RASModels::kineticTheoryModel::read
virtual bool read()
Re-read model coefficients if they have changed.
Definition: kineticTheoryModel.C:192
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::RASModels::kineticTheoryModel::k
virtual tmp< volScalarField > k() const
Return the turbulence kinetic energy.
Definition: kineticTheoryModel.C:221
Foam::eddyViscosity< RASModel< EddyDiffusivity< phaseCompressibleTurbulenceModel > > >::nut
virtual tmp< volScalarField > nut() const
Return the turbulence viscosity.
Definition: eddyViscosity.H:107
Foam::turbulenceModel::propertiesName
static const word propertiesName
Default name of the turbulence properties dictionary.
Definition: turbulenceModel.H:100
Foam::RASModels::kineticTheoryModel::pPrimef
virtual tmp< surfaceScalarField > pPrimef() const
Return the face-phase-pressure'.
Definition: kineticTheoryModel.C:306
rho
rho
Definition: readInitialConditions.H:88
Foam::RASModels::kineticTheoryModel::nuEff
virtual tmp< scalarField > nuEff(const label patchi) const
Return the effective viscosity on patch.
Definition: kineticTheoryModel.H:197
eddyViscosity.H
Foam::RASModels::kineticTheoryModel::TypeName
TypeName("kineticTheory")
Runtime type information.
Foam::dimensionedScalar
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Definition: dimensionedScalarFwd.H:42
Foam::RASModels::kineticTheoryModel::correct
virtual void correct()
Solve the kinetic theory equations and correct the viscosity.
Definition: kineticTheoryModel.C:364
phi
surfaceScalarField & phi
Definition: setRegionFluidFields.H:8
Foam::volScalarField
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Definition: volFieldsFwd.H:57
RASModel.H
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::RASModels::kineticTheoryModel::epsilon
virtual tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate.
Definition: kineticTheoryModel.C:229
Foam::RASModels::kineticTheoryModel::pPrime
virtual tmp< volScalarField > pPrime() const
Return the phase-pressure'.
Definition: kineticTheoryModel.C:267
Foam::volVectorField
GeometricField< vector, fvPatchField, volMesh > volVectorField
Definition: volFieldsFwd.H:62
U
U
Definition: pEqn.H:72
kineticTheoryModel
Kinetic theory particle phase RAS model.
Foam::RASModels::kineticTheoryModel::devRhoReff
virtual tmp< volSymmTensorField > devRhoReff() const
Return the effective stress tensor.
Definition: kineticTheoryModel.C:313
Foam::RASModels::kineticTheoryModel::~kineticTheoryModel
virtual ~kineticTheoryModel()
Destructor.
Definition: kineticTheoryModel.C:186
Foam::surfaceScalarField
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
Definition: surfaceFieldsFwd.H:54
Foam::type
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Definition: MSwindows.C:590
Foam::RASModels::kineticTheoryModel::nuEff
virtual tmp< volScalarField > nuEff() const
Return the effective viscosity.
Definition: kineticTheoryModel.H:191
Foam::RASModels::kineticTheoryModel::omega
virtual tmp< volScalarField > omega() const
Return the specific dissipation rate.
Definition: kineticTheoryModel.C:237
Foam::RASModels::kineticTheoryModel::R
virtual tmp< volSymmTensorField > R() const
Return the Reynolds stress tensor.
Definition: kineticTheoryModel.C:245
Foam::RASModels::kineticTheoryModel::divDevRhoReff
virtual tmp< fvVectorMatrix > divDevRhoReff(volVectorField &U) const
Return the source term for the momentum equation.
Definition: kineticTheoryModel.C:347
Foam::GeometricField< vector, fvPatchField, volMesh >
Foam::ThermalDiffusivity::alpha
virtual tmp< volScalarField > alpha() const
Return the laminar thermal diffusivity for enthalpy [kg/m/s].
Definition: ThermalDiffusivity.H:125
EddyDiffusivity.H