Loading...
Searching...
No Matches
AttouFerschneider.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2018 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26Class
27 Foam::dragModels::AttouFerschneider
28
29Description
30 Attou and Ferschneider's Drag model for film flow through packed beds. The
31 implementation follows the description of Gunjal and Ranade, who, in the
32 reference below, formulate the model in more convenient terms.
33
34 Reference:
35 \verbatim
36 Gunjal, P. R., & Ranade, V. V. (2007).
37 Modeling of laboratory and commercial scale hydro-processing reactors
38 using CFD.
39 Chemical Engineering Science, 62(18-20), 5512-5526.
40 \endverbatim
41
42SourceFiles
43 AttouFerschneider.C
44
45\*---------------------------------------------------------------------------*/
46
47#ifndef AttouFerschneider_H
48#define AttouFerschneider_H
49
50#include "dragModel.H"
51
52// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53
54namespace Foam
55{
56
57// Forward Declarations
58class phasePair;
59class phaseModel;
60
61namespace dragModels
62{
64/*---------------------------------------------------------------------------*\
65 Class AttouFerschneider Declaration
66\*---------------------------------------------------------------------------*/
67
69:
70 public dragModel
71{
72 // Private Data
73
74 //- Name of the gaseous phase
75 const word gasName_;
76
77 //- Name of the liquidphase
78 const word liquidName_;
79
80 //- Name of the solid phase
81 const word solidName_;
82
83 //- Ergun constant 1
84 const dimensionedScalar E1_;
85
86 //- Ergun constant 2
87 const dimensionedScalar E2_;
88
89
90 // Private Member Functions
91
92 //- Return the momentum transfer coefficient between gas and liquid
93 virtual tmp<volScalarField> KGasLiquid
94 (
95 const phaseModel& gas,
96 const phaseModel& liquid
97 ) const;
98
99 //- Return the momentum transfer coefficient between gas and solid
100 virtual tmp<volScalarField> KGasSolid
101 (
102 const phaseModel& gas,
103 const phaseModel& solid
104 ) const;
105
106 //- Return the momentum transfer coefficient between liquid and solid
107 virtual tmp<volScalarField> KLiquidSolid
108 (
109 const phaseModel& liquid,
110 const phaseModel& solid
111 ) const;
112
113
114public:
115
116 //- Runtime type information
117 TypeName("AttouFerschneider");
118
119
120 // Constructors
121
122 //- Construct from a dictionary and a phase pair
124 (
125 const dictionary& dict,
126 const phasePair& pair,
127 const bool registerObject
128 );
129
131 //- Destructor
132 virtual ~AttouFerschneider() = default;
133
134
135 // Member Functions
136
137 //- Drag coefficient
138 virtual tmp<volScalarField> CdRe() const;
139
140 //- The drag coefficient used in the momentum equation
141 virtual tmp<volScalarField> K() const;
142
143 //- The drag coefficient used in the face-momentum equations
144 virtual tmp<surfaceScalarField> Kf() const;
145};
146
147
148// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150} // End namespace dragModels
151} // End namespace Foam
152
153// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154
155#endif
156
157// ************************************************************************* //
bool registerObject() const noexcept
Should objects created with this IOobject be registered?
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
dragModel(const phasePair &pair, const bool registerObject)
Definition dragModel.C:43
virtual tmp< surfaceScalarField > Kf() const
The drag coefficient used in the face-momentum equations.
AttouFerschneider(const dictionary &dict, const phasePair &pair, const bool registerObject)
Construct from a dictionary and a phase pair.
TypeName("AttouFerschneider")
Runtime type information.
virtual tmp< volScalarField > K() const
The drag coefficient used in the momentum equation.
virtual ~AttouFerschneider()=default
Destructor.
virtual tmp< volScalarField > CdRe() const
Drag coefficient.
Generic thermophysical properties class for a liquid in which the functions and coefficients for each...
Definition liquid.H:53
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Definition phaseModel.H:56
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
Definition phasePair.H:52
A class for managing temporary objects.
Definition tmp.H:75
A class for handling words, derived from Foam::string.
Definition word.H:66
Namespace for OpenFOAM.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
dictionary dict
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition typeInfo.H:68