LiquidEvaporationBoil.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) 2020 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::LiquidEvaporationBoil
29 
30 Group
31  grpLagrangianIntermediatePhaseChangeSubModels
32 
33 Description
34  Liquid evaporation model
35  - uses ideal gas assumption
36  - includes boiling model based on:
37 
38  \verbatim
39  "Studies of Superheated Fuel Spray Structures and Vaporization in
40  GDI Engines"
41 
42  Zuo, B., Gomes, A. M. and Rutland C. J.
43 
44  International Journal of Engine Research, 2000, Vol. 1(4), pp. 321-336
45  \endverbatim
46 
47 \*---------------------------------------------------------------------------*/
48 
49 #ifndef LiquidEvaporationBoil_H
50 #define LiquidEvaporationBoil_H
51 
52 #include "PhaseChangeModel.H"
54 
55 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
56 
57 namespace Foam
58 {
59 /*---------------------------------------------------------------------------*\
60  Class LiquidEvaporationBoil Declaration
61 \*---------------------------------------------------------------------------*/
62 
63 template<class CloudType>
65 :
66  public PhaseChangeModel<CloudType>
67 {
68 protected:
69 
70  // Protected data
71 
72  //- Global liquid properties data
74 
75  //- List of active liquid names
77 
78  //- Mapping between liquid and carrier species
80 
81  //- Mapping between local and global liquid species
83 
84 
85  // Protected Member Functions
86 
87  //- Sherwood number as a function of Reynolds and Schmidt numbers
88  scalar Sh(const scalar Re, const scalar Sc) const;
89 
90  //- Calculate the carrier phase component volume fractions at celli
91  tmp<scalarField> calcXc(const label celli) const;
92 
93 
94 public:
95 
96  //- Runtime type information
97  TypeName("liquidEvaporationBoil");
98 
99 
100  // Constructors
101 
102  //- Construct from dictionary
104 
105  //- Construct copy
107 
108  //- Construct and return a clone
110  {
112  (
114  );
115  }
116 
117 
118  //- Destructor
119  virtual ~LiquidEvaporationBoil();
120 
121 
122  // Member Functions
123 
124  //- Update model
125  virtual void calculate
126  (
127  const scalar dt,
128  const label celli,
129  const scalar Re,
130  const scalar Pr,
131  const scalar d,
132  const scalar nu,
133  const scalar rho,
134  const scalar T,
135  const scalar Ts,
136  const scalar pc,
137  const scalar Tc,
138  const scalarField& X,
139  const scalarField& solMass,
140  const scalarField& liqMass,
141  scalarField& dMassPC
142  ) const;
143 
144  //- Return the enthalpy per unit mass
145  virtual scalar dh
146  (
147  const label idc,
148  const label idl,
149  const scalar p,
150  const scalar T
151  ) const;
152 
153  //- Return vapourisation temperature
154  virtual scalar Tvap(const scalarField& X) const;
155 
156  //- Return maximum/limiting temperature
157  virtual scalar TMax(const scalar p, const scalarField& X) const;
158 };
159 
160 
161 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
162 
163 } // End namespace Foam
164 
165 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
166 
167 #ifdef NoRepository
168  #include "LiquidEvaporationBoil.C"
169 #endif
170 
171 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
172 
173 #endif
174 
175 // ************************************************************************* //
Foam::LiquidEvaporationBoil::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 &solMass, const scalarField &liqMass, scalarField &dMassPC) const
Definition: LiquidEvaporationBoil.C:129
Foam::PhaseChangeModel
Templated phase change model class.
Definition: ReactingCloud.H:57
p
volScalarField & p
Definition: createFieldRefs.H:8
Foam::LiquidEvaporationBoil::TypeName
TypeName("liquidEvaporationBoil")
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:57
Foam::LiquidEvaporationBoil::liqToLiqMap_
List< label > liqToLiqMap_
Definition: LiquidEvaporationBoil.H:75
Foam::LiquidEvaporationBoil::dh
virtual scalar dh(const label idc, const label idl, const scalar p, const scalar T) const
Definition: LiquidEvaporationBoil.C:302
PhaseChangeModel.H
Foam::LiquidEvaporationBoil::Tvap
virtual scalar Tvap(const scalarField &X) const
Definition: LiquidEvaporationBoil.C:346
Foam::LiquidEvaporationBoil::~LiquidEvaporationBoil
virtual ~LiquidEvaporationBoil()
Definition: LiquidEvaporationBoil.C:121
nu
volScalarField & nu
Definition: readMechanicalProperties.H:176
LiquidEvaporationBoil.C
Foam::LiquidEvaporationBoil::liquids_
const liquidMixtureProperties & liquids_
Definition: LiquidEvaporationBoil.H:66
Foam::LiquidEvaporationBoil::TMax
virtual scalar TMax(const scalar p, const scalarField &X) const
Definition: LiquidEvaporationBoil.C:356
Foam::LiquidEvaporationBoil::liqToCarrierMap_
List< label > liqToCarrierMap_
Definition: LiquidEvaporationBoil.H:72
Foam::LiquidEvaporationBoil::activeLiquids_
List< word > activeLiquids_
Definition: LiquidEvaporationBoil.H:69
Foam::Field
Generic templated field type.
Definition: Field.H:59
rho
rho
Definition: readInitialConditions.H:88
Pr
dimensionedScalar Pr("Pr", dimless, laminarTransport)
Foam::T
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Definition: FieldFieldFunctions.C:51
Foam::LiquidEvaporationBoil::LiquidEvaporationBoil
LiquidEvaporationBoil(const dictionary &dict, CloudType &cloud)
Definition: LiquidEvaporationBoil.C:64
Foam::LiquidEvaporationBoil
Liquid evaporation model.
Definition: LiquidEvaporationBoil.H:57
Foam::LiquidEvaporationBoil::clone
virtual autoPtr< PhaseChangeModel< CloudType > > clone() const
Definition: LiquidEvaporationBoil.H:102
Foam::DSMCCloud
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:67
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:119
Foam::LiquidEvaporationBoil::calcXc
tmp< scalarField > calcXc(const label celli) const
Definition: LiquidEvaporationBoil.C:32
Foam
Definition: atmBoundaryLayer.C:26
Foam::PhaseChangeModel< CloudType >::Sh
scalar Sh() const
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:49
Foam::cloud
A cloud is a registry collection of lagrangian particles.
Definition: cloud.H:53
Foam::liquidMixtureProperties
A mixture of liquids.
Definition: liquidMixtureProperties.H:64
Foam::List< word >
Foam::Re
scalarField Re(const UList< complex > &cf)
Definition: complexField.C:152
liquidMixtureProperties.H