FreeFOAM The Cross-Platform CFD Toolkit
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) 1991-2010 OpenCFD Ltd.
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 
29 SourceFiles
30  kineticTheoryModel.C
31 
32 \*---------------------------------------------------------------------------*/
33 
34 #ifndef kineticTheoryModel_H
35 #define kineticTheoryModel_H
36 
38 #include <phaseModel/phaseModel.H>
39 #include <OpenFOAM/autoPtr.H>
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class kineticTheoryModel Declaration
53 \*---------------------------------------------------------------------------*/
54 
56 {
57  // Private data
58 
59  const phaseModel& phasea_;
60  const volVectorField& Ua_;
61  const volVectorField& Ub_;
62  const volScalarField& alpha_;
63  const surfaceScalarField& phia_;
64 
65  const dragModel& draga_;
66 
67  const dimensionedScalar& rhoa_;
68  const dimensionedScalar& da_;
69  const dimensionedScalar& nua_;
70 
71  //- dictionary holding the modeling info
72  IOdictionary kineticTheoryProperties_;
73 
74  //- use kinetic theory or not.
75  Switch kineticTheory_;
76 
77  //- use generation == dissipation
78  Switch equilibrium_;
79 
81 
82  autoPtr<conductivityModel> conductivityModel_;
83 
84  autoPtr<radialModel> radialModel_;
85 
86  autoPtr<granularPressureModel> granularPressureModel_;
87 
88  autoPtr<frictionalStressModel> frictionalStressModel_;
89 
90  //- coefficient of restitution
91  const dimensionedScalar e_;
92 
93  //- maximum packing
94  const dimensionedScalar alphaMax_;
95 
96  //- min value for which the frictional stresses are zero
97  const dimensionedScalar alphaMinFriction_;
98 
99  //- material constant for frictional normal stress
100  const dimensionedScalar Fr_;
101 
102  //- material constant for frictional normal stress
103  const dimensionedScalar eta_;
104 
105  //- material constant for frictional normal stress
106  const dimensionedScalar p_;
107 
108  //- angle of internal friction
109  const dimensionedScalar phi_;
110 
111  //- The granular energy/temperature
112  volScalarField Theta_;
113 
114  //- The granular viscosity
115  volScalarField mua_;
116 
117  //- The granular bulk viscosity
118  volScalarField lambda_;
119 
120  //- The granular pressure
121  volScalarField pa_;
122 
123  //- The granular temperature conductivity
124  volScalarField kappa_;
125 
126  //- The radial distribution function
127  volScalarField gs0_;
128 
129 
130  // Private Member Functions
131 
132  //- Disallow default bitwise copy construct
134 
135  //- Disallow default bitwise assignment
136  void operator=(const kineticTheoryModel&);
137 
138 
139 public:
140 
141  // Constructors
142 
143  //- Construct from components
145  (
146  const phaseModel& phasea,
147  const volVectorField& Ub,
148  const volScalarField& alpha,
149  const dragModel& draga
150  );
151 
152 
153  //- Destructor
154  virtual ~kineticTheoryModel();
155 
156 
157  // Member Functions
158 
159  void solve(const volTensorField& gradUat);
160 
161  bool on() const
162  {
163  return kineticTheory_;
164  }
165 
166  const volScalarField& mua() const
167  {
168  return mua_;
169  }
170 
171  const volScalarField& pa() const
172  {
173  return pa_;
174  }
175 
176  const volScalarField& lambda() const
177  {
178  return lambda_;
179  }
180 
181  const volScalarField& kappa() const
182  {
183  return kappa_;
184  }
185 };
186 
187 
188 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
189 
190 } // End namespace Foam
191 
192 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
193 
194 #endif
195 
196 // ************************ vim: set sw=4 sts=4 et: ************************ //