RanzMarshall.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) 2011-2016 OpenFOAM Foundation
9  Copyright (C) 2021 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 Class
28  Foam::RanzMarshall
29 
30 Group
31  grpLagrangianIntermediateHeatTransferSubModels
32 
33 Description
34  Nusselt-number model using the empirical Ranz-Marshall correlation
35  to be used in modelling of the fluid-particle heat transfer coefficient:
36 
37  \f[
38  \mathrm{Nu} = a + b \, \mathrm{Re}_p^{m} \, \mathrm{Pr}^{n}
39  \f]
40  with
41 
42  \f[
43  \mathrm{Re}_p =
44  \frac{\rho_c \, | \mathbf{u}_\mathrm{rel} | \, d_p}{\mu_c}
45  \f]
46 
47  \f[
48  \mathrm{Pr} = \frac{ C_p \, \mu_c }{ \kappa_c }
49  \f]
50  where
51 
52  \vartable
53  \mathrm{Nu} | Nusselt number
54  \mathrm{Re}_p | Particle Reynolds number
55  \mathrm{Pr} | Prandtl number
56  d_p | Particle diameter
57  \rho_c | Density of carrier in the film surrounding particle
58  \mu_c | Dynamic viscosity of carrier in the film surrounding particle
59  \mathbf{u}_\mathrm{rel} | Relative velocity between particle and carrier
60  a | Correlation coefficient
61  b | Correlation coefficient
62  m | Correlation exponent of particle Reynolds number
63  n | Correlation exponent of Prandtl number
64  C_p | Specific heat capacity
65  \kappa_c | Thermal conductivity of carrier in the film
66  \endvartable
67 
68  Reference:
69  \verbatim
70  Standard model:
71  Ranz, W. E., & Marshall, W. R. (1952).
72  Evaporation from drops - part 1.
73  Chem. Eng. Prog, 48, 22, pp. 141-146.
74 
75  Ranz, W. E., & Marshall, W. R. (1952).
76  Evaporation from drops - part 2.
77  Chem. Eng. Prog, 48, 4, pp. 173-180.
78 
79  Expressions (tag:AOB), p. 18:
80  Amsden, A. A., O'Rourke, P. J., & Butler, T. D. (1989).
81  KIVA-II: A computer program for chemically
82  reactive flows with sprays (No. LA-11560-MS).
83  Los Alamos National Lab.(LANL), Los Alamos, NM (United States).
84  DOI:10.2172/6228444
85  \endverbatim
86 
87 Usage
88  Minimal example by using \c constant/<CloudProperties>:
89  \verbatim
90  subModels
91  {
92  // Mandatory entries
93  heatTransferModel RanzMarshall;
94 
95  // Optional entries
96  RanzMarshallCoeffs
97  {
98  a 2.0;
99  b 0.6;
100  m 0.5;
101  n 0.66666;
102  }
103  }
104  \endverbatim
105 
106  where the entries mean:
107  \table
108  Property | Description | Type | Reqd | Deflt
109  heatTransferModel | Type name: RanzMarshall | word | yes | -
110  a | Correlation coefficient | scalar | no | 2.0
111  b | Correlation coefficient | scalar | no | 0.6
112  m | Correlation exponent of particle Reynolds number | scalar | no | 0.5
113  n | Correlation exponent of Prandtl number | scalar | no | 1.0/3.0
114  \endtable
115 
116 SourceFiles
117  RanzMarshall.C
118 
119 \*---------------------------------------------------------------------------*/
120 
121 #ifndef RanzMarshall_H
122 #define RanzMarshall_H
123 
124 #include "HeatTransferModel.H"
125 
126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
127 
128 namespace Foam
129 {
130 
131 /*---------------------------------------------------------------------------*\
132  Class RanzMarshall Declaration
133 \*---------------------------------------------------------------------------*/
134 
135 template<class CloudType>
136 class RanzMarshall
137 :
138  public HeatTransferModel<CloudType>
139 {
140  // Private Data
141 
142  //- Correlation coefficient
143  const scalar a_;
144 
145  //- Correlation coefficient
146  const scalar b_;
147 
148  //- Correlation exponent of particle Reynolds number
149  const scalar m_;
150 
151  //- Correlation exponent of Prandtl number
152  const scalar n_;
153 
154 
155 public:
156 
157  //- Runtime type information
158  TypeName("RanzMarshall");
159 
160 
161  // Generated Methods
162 
163  //- No copy assignment
164  void operator=(const RanzMarshall&) = delete;
165 
166 
167  // Constructors
168 
169  //- Construct from dictionary
170  RanzMarshall(const dictionary& dict, CloudType& cloud);
171 
172  //- Copy construct
173  RanzMarshall(const RanzMarshall<CloudType>& im);
174 
175  //- Construct and return a clone
176  virtual autoPtr<HeatTransferModel<CloudType>> clone() const
177  {
178  return autoPtr<HeatTransferModel<CloudType>>
179  (
180  new RanzMarshall<CloudType>(*this)
181  );
182  }
183 
184 
185  //- Destructor
186  virtual ~RanzMarshall() = default;
187 
188 
189  // Member Functions
190 
191  // Evaluation
192 
193  //- Return Nusselt number
194  virtual scalar Nu
195  (
196  const scalar Re,
197  const scalar Pr
198  ) const;
199 };
200 
201 
202 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
203 
204 } // End namespace Foam
205 
206 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
207 
208 #ifdef NoRepository
209  #include "RanzMarshall.C"
210 #endif
211 
212 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
213 
214 #endif
215 
216 // ************************************************************************* //
Foam::RanzMarshall::TypeName
TypeName("RanzMarshall")
Runtime type information.
Foam::HeatTransferModel
Templated class to calculate the fluid-particle heat transfer coefficients based on a specified Nusse...
Definition: ThermoCloud.H:59
Foam::RanzMarshall::~RanzMarshall
virtual ~RanzMarshall()=default
Destructor.
Foam::RanzMarshall::clone
virtual autoPtr< HeatTransferModel< CloudType > > clone() const
Construct and return a clone.
Definition: RanzMarshall.H:263
Pr
dimensionedScalar Pr("Pr", dimless, laminarTransport)
Foam::CloudType
DSMCCloud< dsmcParcel > CloudType
Definition: makeDSMCParcelBinaryCollisionModels.C:38
Foam::DSMCCloud
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:71
Foam::RanzMarshall::operator=
void operator=(const RanzMarshall &)=delete
No copy assignment.
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::RanzMarshall
Nusselt-number model using the empirical Ranz-Marshall correlation to be used in modelling of the flu...
Definition: RanzMarshall.H:223
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:53
Foam::cloud
A cloud is a registry collection of lagrangian particles.
Definition: cloud.H:57
Foam::RanzMarshall::RanzMarshall
RanzMarshall(const dictionary &dict, CloudType &cloud)
Construct from dictionary.
Definition: RanzMarshall.C:35
HeatTransferModel.H
Foam::Re
scalarField Re(const UList< complex > &cf)
Extract real component.
Definition: complexField.C:159
Foam::RanzMarshall::Nu
virtual scalar Nu(const scalar Re, const scalar Pr) const
Return Nusselt number.
Definition: RanzMarshall.C:63