LiquidEvapFuchsKnudsen.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) 2020 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
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 
26 Class
27  Foam::LiquidEvapFuchsKnudsen
28 
29 Group
30  grpLagrangianIntermediatePhaseChangeSubModels
31 
32 Description
33  Liquid evaporation/condensation model for solution of liquid and solid.
34 
35  This model takes into account the Fuchs-Knudsen number correction, the
36  modified Raoult's law is used to obtain the concenration of the evapora
37  ble component on the surface and the activity coefficient is used.
38  The correction Kelvin effect is used.
39 
40  Reference:
41  \verbatim
42  Xiaole Chen, Yu Feng, Wenqi Zhon, Clement Kleinstreuer.
43  Numerical investigation of the interaction, transport and deposition
44  of multicomponent droplets in a a simple mouth-throat model.
45  Journal of Aerosol Science, 105(2017), 108-127.
46  DOI:10.1016/j.jaerosci.2016.12.001
47  \endverbatim
48 
49 
50 \*---------------------------------------------------------------------------*/
51 
52 #ifndef LiquidEvapFuchsKnudsen_H
53 #define LiquidEvapFuchsKnudsen_H
54 
55 #include "PhaseChangeModel.H"
57 
58 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
59 
60 namespace Foam
61 {
62 /*---------------------------------------------------------------------------*\
63  Class LiquidEvapFuchsKnudsen Declaration
64 \*---------------------------------------------------------------------------*/
65 
66 template<class CloudType>
68 :
69  public PhaseChangeModel<CloudType>
70 {
71 public:
72 
73  // Public Enumerations
74 
75  //- Type of activity coefficient models
77  {
79  pHoff
80  };
81 
82 
83 protected:
84 
85  // Protected Data
86 
87  //- Method used
89 
90  //- Mean gas free path
91  scalar gamma_;
92 
93  //- The mass thermal accomodation
94  scalar alpha_;
95 
96  //- Global liquid properties data
98 
99  //- List of active liquid names i.e (liquidName solidName)
101 
102  //- Mapping between liquid and carrier species
103  label liqToCarrierMap_;
104 
105  //- Mapping between local and global liquid species
106  label liqToLiqMap_;
107 
108  //- Mapping between local and global solid species
109  label solToSolMap_;
110 
111 
112  // Protected Member Functions
113 
114  //- Sherwood number as a function of Reynolds and Schmidt numbers
115  scalar Sh(const scalar Re, const scalar Sc) const;
116 
117  //- Calculate the carrier phase component volume fractions at celli
118  tmp<scalarField> calcXc(const label celli) const;
119 
120  //- Calculate volumetric fractions of components in the solution
121  void calcXcSolution
122  (
123  const scalar massliq,
124  const scalar masssol,
125  scalar& Xliq,
126  scalar& Xsol
127  ) const;
128 
129  //- Return activity coefficient
130  scalar activityCoeff(const scalar Xliq, const scalar Ysol) const;
131 
132 
133 public:
134 
135  //- Runtime type information
136  TypeName("liquidEvapFuchsKnudsen");
137 
138 
139  // Constructors
140 
141  //- Construct from dictionary
143 
144  //- Construct copy
146 
147  //- Construct and return a clone
149  {
151  (
153  );
154  }
155 
156 
157  //- Destructor
158  virtual ~LiquidEvapFuchsKnudsen() = default;
159 
160 
161  // Member Functions
162 
163  //- Update model
164  virtual void calculate
165  (
166  const scalar dt,
167  const label celli,
168  const scalar Re,
169  const scalar Pr,
170  const scalar d,
171  const scalar nu,
172  const scalar rho,
173  const scalar T,
174  const scalar Ts,
175  const scalar pc,
176  const scalar Tc,
177  const scalarField& X,
178  const scalarField& Xsol,
179  const scalarField& liqMass,
180  scalarField& dMassPC
181  ) const;
182 
183  //- Return the enthalpy per unit mass
184  virtual scalar dh
185  (
186  const label idc,
187  const label idl,
188  const scalar p,
189  const scalar T
190  ) const;
191 
192  //- Return vapourisation temperature
193  virtual scalar Tvap(const scalarField& X) const;
194 
195  //- Return maximum/limiting temperature
196  virtual scalar TMax(const scalar p, const scalarField& X) const;
197 };
198 
199 
200 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
201 
202 } // End namespace Foam
203 
204 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
205 
206 #ifdef NoRepository
207  #include "LiquidEvapFuchsKnudsen.C"
208 #endif
209 
210 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
211 
212 #endif
213 
214 // ************************************************************************* //
Foam::PhaseChangeModel
Templated phase change model class.
Definition: ReactingCloud.H:61
p
volScalarField & p
Definition: createFieldRefs.H:8
Foam::LiquidEvapFuchsKnudsen
Liquid evaporation/condensation model for solution of liquid and solid.
Definition: LiquidEvapFuchsKnudsen.H:66
Foam::LiquidEvapFuchsKnudsen::method_
activityCoeffMethodType method_
Method used.
Definition: LiquidEvapFuchsKnudsen.H:87
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::LiquidEvapFuchsKnudsen::solToSolMap_
label solToSolMap_
Mapping between local and global solid species.
Definition: LiquidEvapFuchsKnudsen.H:108
Foam::LiquidEvapFuchsKnudsen::calculate
virtual void calculate(const scalar dt, const label celli, const scalar Re, const scalar Pr, const scalar d, const scalar nu, const scalar rho, const scalar T, const scalar Ts, const scalar pc, const scalar Tc, const scalarField &X, const scalarField &Xsol, const scalarField &liqMass, scalarField &dMassPC) const
Update model.
Definition: LiquidEvapFuchsKnudsen.C:197
Foam::LiquidEvapFuchsKnudsen::LiquidEvapFuchsKnudsen
LiquidEvapFuchsKnudsen(const dictionary &dict, CloudType &cloud)
Construct from dictionary.
Definition: LiquidEvapFuchsKnudsen.C:112
PhaseChangeModel.H
Foam::LiquidEvapFuchsKnudsen::TypeName
TypeName("liquidEvapFuchsKnudsen")
Runtime type information.
rho
rho
Definition: readInitialConditions.H:88
Foam::LiquidEvapFuchsKnudsen::clone
virtual autoPtr< PhaseChangeModel< CloudType > > clone() const
Construct and return a clone.
Definition: LiquidEvapFuchsKnudsen.H:147
Foam::LiquidEvapFuchsKnudsen::gamma_
scalar gamma_
Mean gas free path.
Definition: LiquidEvapFuchsKnudsen.H:90
Foam::LiquidEvapFuchsKnudsen::calcXcSolution
void calcXcSolution(const scalar massliq, const scalar masssol, scalar &Xliq, scalar &Xsol) const
Calculate volumetric fractions of components in the solution.
Definition: LiquidEvapFuchsKnudsen.C:35
nu
volScalarField & nu
Definition: readMechanicalProperties.H:176
Foam::LiquidEvapFuchsKnudsen::dh
virtual scalar dh(const label idc, const label idl, const scalar p, const scalar T) const
Return the enthalpy per unit mass.
Definition: LiquidEvapFuchsKnudsen.C:267
Foam::LiquidEvapFuchsKnudsen::solution_
List< word > solution_
List of active liquid names i.e (liquidName solidName)
Definition: LiquidEvapFuchsKnudsen.H:99
Foam::Field< scalar >
Pr
dimensionedScalar Pr("Pr", dimless, laminarTransport)
Foam::T
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Definition: FieldFieldFunctions.C:58
Foam::LiquidEvapFuchsKnudsen::pHoff
Definition: LiquidEvapFuchsKnudsen.H:78
Foam::DSMCCloud
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:71
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::LiquidEvapFuchsKnudsen::calcXc
tmp< scalarField > calcXc(const label celli) const
Calculate the carrier phase component volume fractions at celli.
Definition: LiquidEvapFuchsKnudsen.C:53
Foam::LiquidEvapFuchsKnudsen::activityCoeffMethodType
activityCoeffMethodType
Type of activity coefficient models.
Definition: LiquidEvapFuchsKnudsen.H:75
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::PhaseChangeModel::Sh
scalar Sh() const
Sherwood number.
Foam::LiquidEvapFuchsKnudsen::activityCoeff
scalar activityCoeff(const scalar Xliq, const scalar Ysol) const
Return activity coefficient.
Definition: LiquidEvapFuchsKnudsen.C:83
Foam::LiquidEvapFuchsKnudsen::liqToLiqMap_
label liqToLiqMap_
Mapping between local and global liquid species.
Definition: LiquidEvapFuchsKnudsen.H:105
Foam::LiquidEvapFuchsKnudsen::TMax
virtual scalar TMax(const scalar p, const scalarField &X) const
Return maximum/limiting temperature.
Definition: LiquidEvapFuchsKnudsen.C:315
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::LiquidEvapFuchsKnudsen::liqToCarrierMap_
label liqToCarrierMap_
Mapping between liquid and carrier species.
Definition: LiquidEvapFuchsKnudsen.H:102
Foam::liquidMixtureProperties
A mixture of liquids.
Definition: liquidMixtureProperties.H:68
Foam::LiquidEvapFuchsKnudsen::Tvap
virtual scalar Tvap(const scalarField &X) const
Return vapourisation temperature.
Definition: LiquidEvapFuchsKnudsen.C:305
LiquidEvapFuchsKnudsen.C
Foam::List< word >
Foam::Re
scalarField Re(const UList< complex > &cf)
Extract real component.
Definition: complexField.C:159
Foam::LiquidEvapFuchsKnudsen::pUNIFAC
Definition: LiquidEvapFuchsKnudsen.H:77
Foam::LiquidEvapFuchsKnudsen::alpha_
scalar alpha_
The mass thermal accomodation.
Definition: LiquidEvapFuchsKnudsen.H:93
Foam::LiquidEvapFuchsKnudsen::liquids_
const liquidMixtureProperties & liquids_
Global liquid properties data.
Definition: LiquidEvapFuchsKnudsen.H:96
Foam::LiquidEvapFuchsKnudsen::~LiquidEvapFuchsKnudsen
virtual ~LiquidEvapFuchsKnudsen()=default
Destructor.
liquidMixtureProperties.H