Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / applications / solvers / multiphase / twoPhaseEulerFoam / kineticTheoryModels / kineticTheoryModel / kineticTheoryModel.H
blob3965393fbb6cc4ba76418df9b6badd800ad5cd7c
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::kineticTheoryModel
27 Description
29 SourceFiles
30     kineticTheoryModel.C
32 \*---------------------------------------------------------------------------*/
34 #ifndef kineticTheoryModel_H
35 #define kineticTheoryModel_H
37 #include "dragModel.H"
38 #include "phaseModel.H"
39 #include "autoPtr.H"
40 #include "viscosityModel.H"
41 #include "conductivityModel.H"
42 #include "radialModel.H"
43 #include "granularPressureModel.H"
44 #include "frictionalStressModel.H"
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 namespace Foam
51 /*---------------------------------------------------------------------------*\
52                            Class kineticTheoryModel Declaration
53 \*---------------------------------------------------------------------------*/
55 class kineticTheoryModel
57     // Private data
59         const phaseModel& phasea_;
60         const volVectorField& Ua_;
61         const volVectorField& Ub_;
62         const volScalarField& alpha_;
63         const surfaceScalarField& phia_;
65         const dragModel& draga_;
67         const dimensionedScalar& rhoa_;
68         const dimensionedScalar& da_;
69         const dimensionedScalar& nua_;
71         //- dictionary holding the modeling info
72         IOdictionary kineticTheoryProperties_;
74         //- use kinetic theory or not.
75         Switch kineticTheory_;
77         //- use generation == dissipation
78         Switch equilibrium_;
80         autoPtr<kineticTheoryModels::viscosityModel> viscosityModel_;
82         autoPtr<conductivityModel> conductivityModel_;
84         autoPtr<radialModel> radialModel_;
86         autoPtr<granularPressureModel> granularPressureModel_;
88         autoPtr<frictionalStressModel> frictionalStressModel_;
90         //- coefficient of restitution
91         const dimensionedScalar e_;
93         //- maximum packing
94         const dimensionedScalar alphaMax_;
96         //- min value for which the frictional stresses are zero
97         const dimensionedScalar alphaMinFriction_;
99         //- material constant for frictional normal stress
100         const dimensionedScalar Fr_;
102         //- material constant for frictional normal stress
103         const dimensionedScalar eta_;
105         //- material constant for frictional normal stress
106         const dimensionedScalar p_;
108         //- angle of internal friction
109         const dimensionedScalar phi_;
111         //- The granular energy/temperature
112         volScalarField Theta_;
114         //- The granular viscosity
115         volScalarField mua_;
117         //- The granular bulk viscosity
118         volScalarField lambda_;
120         //- The granular pressure
121         volScalarField pa_;
123         //- The granular temperature conductivity
124         volScalarField kappa_;
126         //- The radial distribution function
127         volScalarField gs0_;
130     // Private Member Functions
132         //- Disallow default bitwise copy construct
133         kineticTheoryModel(const kineticTheoryModel&);
135         //- Disallow default bitwise assignment
136         void operator=(const kineticTheoryModel&);
139 public:
141     // Constructors
143         //- Construct from components
144         kineticTheoryModel
145         (
146             const phaseModel& phasea,
147             const volVectorField& Ub,
148             const volScalarField& alpha,
149             const dragModel& draga
150         );
153     //- Destructor
154     virtual ~kineticTheoryModel();
157     // Member Functions
159         void solve();
161         bool on() const
162         {
163             return kineticTheory_;
164         }
166         const volScalarField& mua() const
167         {
168             return mua_;
169         }
171         const volScalarField& pa() const
172         {
173             return pa_;
174         }
176         const volScalarField& lambda() const
177         {
178             return lambda_;
179         }
183 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
185 } // End namespace Foam
187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
189 #endif
191 // ************************************************************************* //