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-2019 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 phasePair;
56 class phaseModel;
57 
58 namespace dragModels
59 {
60 
61 /*---------------------------------------------------------------------------*\
62  Class AttouFerschneider Declaration
63 \*---------------------------------------------------------------------------*/
64 
66 :
67  public dragModel
68 {
69  // Private Data
70 
71  //- Name of the gaseous phase
72  const word gasName_;
73 
74  //- Name of the liquidphase
75  const word liquidName_;
76 
77  //- Name of the solid phase
78  const word solidName_;
79 
80  //- Ergun constant 1
81  const dimensionedScalar E1_;
82 
83  //- Ergun constant 2
84  const dimensionedScalar E2_;
85 
86 
87  // Private Member Functions
88 
89  //- Return the momentum transfer coefficient between gas and liquid
90  virtual tmp<volScalarField> KGasLiquid
91  (
92  const phaseModel& gas,
93  const phaseModel& liquid
94  ) const;
95 
96  //- Return the momentum transfer coefficient between gas and solid
97  virtual tmp<volScalarField> KGasSolid
98  (
99  const phaseModel& gas,
100  const phaseModel& solid
101  ) const;
102 
103  //- Return the momentum transfer coefficient between liquid and solid
104  virtual tmp<volScalarField> KLiquidSolid
105  (
106  const phaseModel& liquid,
107  const phaseModel& solid
108  ) const;
109 
110 
111 public:
112 
113  //- Runtime type information
114  TypeName("AttouFerschneider");
115 
116 
117  // Constructors
118 
119  //- Construct from a dictionary and a phase pair
121  (
122  const dictionary& dict,
123  const phasePair& pair,
124  const bool registerObject
125  );
126 
127 
128  //- Destructor
129  virtual ~AttouFerschneider();
130 
131 
132  // Member Functions
133 
134  //- Drag coefficient
135  virtual tmp<volScalarField> CdRe() const;
136 
137  //- The drag coefficient used in the momentum equation
138  virtual tmp<volScalarField> K() const;
139 
140  //- The drag coefficient used in the face-momentum equations
141  virtual tmp<surfaceScalarField> Kf() const;
142 };
143 
144 
145 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146 
147 } // End namespace dragModels
148 } // End namespace Foam
149 
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 
152 #endif
153 
154 // ************************************************************************* //
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:158
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:331
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.