LiquidEvaporationBoil.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::LiquidEvaporationBoil
26 
27 Description
28  Liquid evaporation model
29  - uses ideal gas assumption
30  - includes boiling model based on:
31 
32  \verbatim
33  "Studies of Superheated Fuel Spray Structures and Vaporization in
34  GDI Engines"
35 
36  Zuo, B., Gomes, A. M. and Rutland C. J.
37 
38  International Journal of Engine Research, 2000, Vol. 1(4), pp. 321-336
39  \endverbatim
40 
41 \*---------------------------------------------------------------------------*/
42 
43 #ifndef LiquidEvaporationBoil_H
44 #define LiquidEvaporationBoil_H
45 
46 #include "PhaseChangeModel.H"
48 
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 
51 namespace Foam
52 {
53 /*---------------------------------------------------------------------------*\
54  Class LiquidEvaporationBoil Declaration
55 \*---------------------------------------------------------------------------*/
56 
57 template<class CloudType>
59 :
60  public PhaseChangeModel<CloudType>
61 {
62 protected:
63 
64  // Protected data
65 
66  //- Global liquid properties data
68 
69  //- List of active liquid names
71 
72  //- Mapping between liquid and carrier species
74 
75  //- Mapping between local and global liquid species
77 
78 
79  // Protected Member Functions
80 
81  //- Sherwood number as a function of Reynolds and Schmidt numbers
82  scalar Sh(const scalar Re, const scalar Sc) const;
83 
84  //- Calculate the carrier phase component volume fractions at celli
85  tmp<scalarField> calcXc(const label celli) const;
86 
87 
88 public:
89 
90  //- Runtime type information
91  TypeName("liquidEvaporationBoil");
92 
93 
94  // Constructors
95 
96  //- Construct from dictionary
98 
99  //- Construct copy
101 
102  //- Construct and return a clone
104  {
106  (
108  );
109  }
110 
111 
112  //- Destructor
113  virtual ~LiquidEvaporationBoil();
114 
115 
116  // Member Functions
117 
118  //- Update model
119  virtual void calculate
120  (
121  const typename CloudType::parcelType& p,
122  const typename CloudType::parcelType::trackingData& td,
123  const scalar dt,
124  const scalar Re,
125  const scalar Pr,
126  const scalar d,
127  const scalar nu,
128  const scalar T,
129  const scalar Ts,
130  const scalar pc,
131  const scalar Tc,
132  const scalarField& X,
133  scalarField& dMassPC
134  ) const;
135 
136  //- Return the enthalpy per unit mass
137  virtual scalar dh
138  (
139  const label idc,
140  const label idl,
141  const scalar p,
142  const scalar T
143  ) const;
144 
145  //- Return vapourisation temperature
146  virtual scalar Tvap(const scalarField& X) const;
147 
148  //- Return maximum/limiting temperature
149  virtual scalar TMax(const scalar p, const scalarField& X) const;
150 };
151 
152 
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154 
155 } // End namespace Foam
156 
157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
158 
159 #ifdef NoRepository
160  #include "LiquidEvaporationBoil.C"
161 #endif
162 
163 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164 
165 #endif
166 
167 // ************************************************************************* //
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:80
ParcelType parcelType
Type of parcel the cloud was instantiated for.
Definition: DSMCCloud.H:225
Liquid evaporation model.
List< word > activeLiquids_
List of active liquid names.
LiquidEvaporationBoil(const dictionary &dict, CloudType &cloud)
Construct from dictionary.
TypeName("liquidEvaporationBoil")
Runtime type information.
virtual ~LiquidEvaporationBoil()
Destructor.
virtual scalar dh(const label idc, const label idl, const scalar p, const scalar T) const
Return the enthalpy per unit mass.
virtual autoPtr< PhaseChangeModel< CloudType > > clone() const
Construct and return a clone.
List< label > liqToLiqMap_
Mapping between local and global liquid species.
List< label > liqToCarrierMap_
Mapping between liquid and carrier species.
virtual scalar Tvap(const scalarField &X) const
Return vapourisation temperature.
const liquidMixtureProperties & liquids_
Global liquid properties data.
virtual void calculate(const typename CloudType::parcelType &p, const typename CloudType::parcelType::trackingData &td, const scalar dt, const scalar Re, const scalar Pr, const scalar d, const scalar nu, const scalar T, const scalar Ts, const scalar pc, const scalar Tc, const scalarField &X, scalarField &dMassPC) const
Update model.
tmp< scalarField > calcXc(const label celli) const
Calculate the carrier phase component volume fractions at celli.
virtual scalar TMax(const scalar p, const scalarField &X) const
Return maximum/limiting temperature.
Templated phase change model class.
scalar Sh() const
Sherwood number.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
A cloud is a collection of lagrangian particles.
Definition: cloud.H:55
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:162
const dictionary & dict() const
Return const access to the cloud dictionary.
Definition: subModelBase.C:110
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
scalarField Re(const UList< complex > &cf)
Definition: complexFields.C:97
volScalarField & p