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-------------------------------------------------------------------------------
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::LiquidEvapFuchsKnudsen
28
29Group
30 grpLagrangianIntermediatePhaseChangeSubModels
31
32Description
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
60namespace Foam
61{
62/*---------------------------------------------------------------------------*\
63 Class LiquidEvapFuchsKnudsen Declaration
64\*---------------------------------------------------------------------------*/
65
66template<class CloudType>
68:
69 public PhaseChangeModel<CloudType>
70{
71public:
72
73 // Public Enumerations
74
75 //- Type of activity coefficient models
77 {
78 pUNIFAC,
80 };
81
82
83protected:
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
133public:
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// ************************************************************************* //
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:75
Liquid evaporation/condensation model for solution of liquid and solid.
label liqToCarrierMap_
Mapping between liquid and carrier species.
List< word > solution_
List of active liquid names i.e (liquidName solidName)
scalar gamma_
Mean gas free path.
virtual scalar dh(const label idc, const label idl, const scalar p, const scalar T) const
Return the enthalpy per unit mass.
scalar activityCoeff(const scalar Xliq, const scalar Ysol) const
Return activity coefficient.
virtual autoPtr< PhaseChangeModel< CloudType > > clone() const
Construct and return a clone.
activityCoeffMethodType method_
Method used.
label solToSolMap_
Mapping between local and global solid species.
activityCoeffMethodType
Type of activity coefficient models.
virtual scalar Tvap(const scalarField &X) const
Return vapourisation temperature.
const liquidMixtureProperties & liquids_
Global liquid properties data.
virtual ~LiquidEvapFuchsKnudsen()=default
Destructor.
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.
scalar alpha_
The mass thermal accomodation.
tmp< scalarField > calcXc(const label celli) const
Calculate the carrier phase component volume fractions at celli.
void calcXcSolution(const scalar massliq, const scalar masssol, scalar &Xliq, scalar &Xsol) const
Calculate volumetric fractions of components in the solution.
virtual scalar TMax(const scalar p, const scalarField &X) const
Return maximum/limiting temperature.
TypeName("liquidEvapFuchsKnudsen")
Runtime type information.
label liqToLiqMap_
Mapping between local and global liquid species.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: List.H:77
Templated phase change model class.
scalar Sh() const
Sherwood number.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: autoPtr.H:66
A cloud is a registry collection of lagrangian particles.
Definition: cloud.H:60
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
const dictionary & dict() const
Return const access to the cloud dictionary.
Definition: subModelBase.C:113
A class for managing temporary objects.
Definition: tmp.H:65
volScalarField & p
const volScalarField & T
Namespace for OpenFOAM.
scalarField Re(const UList< complex > &cf)
Extract real component.
Definition: complexField.C:159
volScalarField & nu
dimensionedScalar Pr("Pr", dimless, laminarTransport)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73