All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AttouFerschneider.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2018-2020 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::dragModels::AttouFerschneider
26 
27 Description
28  Attou and Ferschneider's Drag model for film flow through packed beds. The
29  implementation follows the description of Gunjal and Ranade, who, in the
30  reference below, formulate the model in more convenient terms.
31 
32  Reference:
33  \verbatim
34  Gunjal, P. R., & Ranade, V. V. (2007).
35  Modeling of laboratory and commercial scale hydro-processing reactors
36  using CFD.
37  Chemical Engineering Science, 62(18-20), 5512-5526.
38  \endverbatim
39 
40 SourceFiles
41  AttouFerschneider.C
42 
43 \*---------------------------------------------------------------------------*/
44 
45 #ifndef AttouFerschneider_H
46 #define AttouFerschneider_H
47 
48 #include "dragModel.H"
49 
50 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 
52 namespace Foam
53 {
54 
55 class phaseModel;
56 
57 namespace dragModels
58 {
59 
60 /*---------------------------------------------------------------------------*\
61  Class AttouFerschneider Declaration
62 \*---------------------------------------------------------------------------*/
63 
65 :
66  public dragModel
67 {
68  // Private Data
69 
70  //- Name of the gaseous phase
71  const word gasName_;
72 
73  //- Name of the liquidphase
74  const word liquidName_;
75 
76  //- Name of the solid phase
77  const word solidName_;
78 
79  //- Ergun constant 1
80  const dimensionedScalar E1_;
81 
82  //- Ergun constant 2
83  const dimensionedScalar E2_;
84 
85 
86  // Private Member Functions
87 
88  //- Return the momentum transfer coefficient between gas and liquid
89  virtual tmp<volScalarField> KGasLiquid
90  (
91  const phaseModel& gas,
92  const phaseModel& liquid
93  ) const;
94 
95  //- Return the momentum transfer coefficient between gas and solid
96  virtual tmp<volScalarField> KGasSolid
97  (
98  const phaseModel& gas,
99  const phaseModel& solid
100  ) const;
101 
102  //- Return the momentum transfer coefficient between liquid and solid
103  virtual tmp<volScalarField> KLiquidSolid
104  (
105  const phaseModel& liquid,
106  const phaseModel& solid
107  ) const;
108 
109 
110 public:
111 
112  //- Runtime type information
113  TypeName("AttouFerschneider");
114 
115 
116  // Constructors
117 
118  //- Construct from a dictionary and a phase pair
120  (
121  const dictionary& dict,
122  const phasePair& pair,
123  const bool registerObject
124  );
125 
126 
127  //- Destructor
128  virtual ~AttouFerschneider();
129 
130 
131  // Member Functions
132 
133  //- Drag coefficient
134  virtual tmp<volScalarField> CdRe() const;
135 
136  //- The drag coefficient used in the momentum equation
137  virtual tmp<volScalarField> K() const;
138 
139  //- The drag coefficient used in the face-momentum equations
140  virtual tmp<surfaceScalarField> Kf() const;
141 };
142 
143 
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 
146 } // End namespace dragModels
147 } // End namespace Foam
148 
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 
151 #endif
152 
153 // ************************************************************************* //
Generic thermophysical properties class for a liquid in which the functions and coefficients for each...
Definition: liquid.H:50
dictionary dict
virtual tmp< volScalarField > K() const
The drag coefficient used in the momentum equation.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:156
virtual tmp< surfaceScalarField > Kf() const
The drag coefficient used in the face-momentum equations.
virtual ~AttouFerschneider()
Destructor.
AttouFerschneider(const dictionary &dict, const phasePair &pair, const bool registerObject)
Construct from a dictionary and a phase pair.
TypeName("AttouFerschneider")
Runtime type information.
A class for handling words, derived from string.
Definition: word.H:59
Attou and Ferschneider&#39;s Drag model for film flow through packed beds. The implementation follows the...
A class for managing temporary objects.
Definition: PtrList.H:53
bool & registerObject()
Register object created from this IOobject with registry if true.
Definition: IOobject.H:339
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Definition: phaseModel.H:53
virtual tmp< volScalarField > CdRe() const
Drag coefficient.
Namespace for OpenFOAM.