initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / applications / solvers / multiphase / twoPhaseEulerFoam / kineticTheoryModels / kineticTheoryModel / kineticTheoryModel.H
blob5d5ac1eb54296c1d5107b5e93bd6446d0447519d
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
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.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     Foam::kineticTheoryModel
28 Description
30 SourceFiles
31     kineticTheoryModel.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef kineticTheoryModel_H
36 #define kineticTheoryModel_H
38 #include "dragModel.H"
39 #include "phaseModel.H"
40 #include "autoPtr.H"
41 #include "viscosityModel.H"
42 #include "conductivityModel.H"
43 #include "radialModel.H"
44 #include "granularPressureModel.H"
45 #include "frictionalStressModel.H"
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 namespace Foam
52 /*---------------------------------------------------------------------------*\
53                            Class kineticTheoryModel Declaration
54 \*---------------------------------------------------------------------------*/
56 class kineticTheoryModel
58     // Private data
60         const phaseModel& phasea_;
61         const volVectorField& Ua_;
62         const volVectorField& Ub_;
63         const volScalarField& alpha_;
64         const surfaceScalarField& phia_;
66         const dragModel& draga_;
68         const dimensionedScalar& rhoa_;
69         const dimensionedScalar& da_;
70         const dimensionedScalar& nua_;
72         //- dictionary holding the modeling info
73         IOdictionary kineticTheoryProperties_;
75         //- use kinetic theory or not.
76         Switch kineticTheory_;
78         //- use generation == dissipation
79         Switch equilibrium_;
81         autoPtr<kineticTheoryModels::viscosityModel> viscosityModel_;
83         autoPtr<conductivityModel> conductivityModel_;
85         autoPtr<radialModel> radialModel_;
87         autoPtr<granularPressureModel> granularPressureModel_;
89         autoPtr<frictionalStressModel> frictionalStressModel_;
91         //- coefficient of restitution
92         const dimensionedScalar e_;
94         //- maximum packing
95         const dimensionedScalar alphaMax_;
97         //- min value for which the frictional stresses are zero
98         const dimensionedScalar alphaMinFriction_;
100         //- material constant for frictional normal stress
101         const dimensionedScalar Fr_;
103         //- material constant for frictional normal stress
104         const dimensionedScalar eta_;
106         //- material constant for frictional normal stress
107         const dimensionedScalar p_;
109         //- angle of internal friction
110         const dimensionedScalar phi_;
112         //- The granular energy/temperature
113         volScalarField Theta_;
115         //- The granular viscosity
116         volScalarField mua_;
118         //- The granular bulk viscosity
119         volScalarField lambda_;
121         //- The granular pressure
122         volScalarField pa_;
124         //- The granular temperature conductivity
125         volScalarField kappa_;
127         //- The radial distribution function
128         volScalarField gs0_;
131     // Private Member Functions
133         //- Disallow default bitwise copy construct
134         kineticTheoryModel(const kineticTheoryModel&);
136         //- Disallow default bitwise assignment
137         void operator=(const kineticTheoryModel&);
140 public:
142     // Constructors
144         //- Construct from components
145         kineticTheoryModel
146         (
147             const phaseModel& phasea,
148             const volVectorField& Ub,
149             const volScalarField& alpha,
150             const dragModel& draga
151         );
154     //- Destructor
155     virtual ~kineticTheoryModel();
158     // Member Functions
160         void solve();
162         bool on() const
163         {
164             return kineticTheory_;
165         }
167         const volScalarField& mua() const
168         {
169             return mua_;
170         }
172         const volScalarField& pa() const
173         {
174             return pa_;
175         }
177         const volScalarField& lambda() const
178         {
179             return lambda_;
180         }
182         const volScalarField& kappa() const
183         {
184             return kappa_;
185         }
189 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
191 } // End namespace Foam
193 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
195 #endif
197 // ************************************************************************* //