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-2023 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 namespace dragModels
55 {
56 
57 /*---------------------------------------------------------------------------*\
58  Class AttouFerschneider Declaration
59 \*---------------------------------------------------------------------------*/
60 
62 :
63  public dragModel
64 {
65  // Private Data
66 
67  //- Interface
68  const phaseInterface interface_;
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 an interface
120  (
121  const dictionary& dict,
122  const phaseInterface& interface,
123  const bool registerObject
124  );
125 
126 
127  //- Destructor
128  virtual ~AttouFerschneider();
129 
130 
131  // Member Functions
132 
133  //- The drag coefficient used in the momentum equation
134  virtual tmp<volScalarField> K() const;
135 
136  //- The drag coefficient used in the face-momentum equations
137  virtual tmp<surfaceScalarField> Kf() const;
138 };
139 
140 
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 
143 } // End namespace dragModels
144 } // End namespace Foam
145 
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 
148 #endif
149 
150 // ************************************************************************* //
bool & registerObject()
Register object created from this IOobject with registry if true.
Definition: IOobject.H:346
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:162
Model for drag between phases.
Definition: dragModel.H:55
Attou and Ferschneider's Drag model for film flow through packed beds. The implementation follows the...
virtual tmp< surfaceScalarField > Kf() const
The drag coefficient used in the face-momentum equations.
AttouFerschneider(const dictionary &dict, const phaseInterface &interface, const bool registerObject)
Construct from a dictionary and an interface.
TypeName("AttouFerschneider")
Runtime type information.
virtual tmp< volScalarField > K() const
The drag coefficient used in the momentum equation.
Generic thermophysical properties class for a liquid in which the functions and coefficients for each...
Definition: liquid.H:53
Class to represent an interface between phases. Derivations can further specify the configuration of ...
A class for managing temporary objects.
Definition: tmp.H:55
A class for handling words, derived from string.
Definition: word.H:62
Namespace for OpenFOAM.
dictionary dict