wallBoilingHeatTransfer.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) 2019-2023 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::heatTransferModels::wallBoiling
26 
27 Description
28  A heat transfer model for simulation of sub-cooled nucleate wall boiling on
29  the surface of a third phase with runtime selectable sub-models. This model
30  should be applied to the liquid side of the liquid-third-phase interface.
31 
32 Usage
33  Settings below are very similar to that of the
34  alphatWallBoilingWallFunction (refer to this model's documentation for
35  further details). The only differences are that an underlying heat transfer
36  model is also required, and the phase-identifying entries are somewhat
37  different; the liquid and vapour phases must be specified explicitly.
38 
39  A corresponding heat transfer model on the other side of the
40  liquid-third-phase interface is required by this model, and is also shown
41  below.
42 
43  Example usage:
44  \verbatim
45  bed_dispersedIn_liquid_inThe_liquid
46  {
47  type wallBoiling;
48 
49  liquidPhase liquid;
50  vapourPhase gas;
51 
52  heatTransferModel
53  {
54  type Gunn;
55  }
56 
57  partitioningModel
58  {
59  type Lavieville; // phaseFraction, linear, cosine
60  alphaCrit 0.2;
61  }
62  nucleationSiteModel
63  {
64  type LemmertChawla; // KocamustafaogullariIshii
65  }
66  departureDiameterModel
67  {
68  type TolubinskiKostanchuk; // KocamustafaogullariIshii
69  }
70  departureFrequencyModel
71  {
72  type KocamustafaogullariIshii; // Cole
73  Cf 1.18;
74  }
75  }
76 
77  bed_dispersedIn_liquid_inThe_bed
78  {
79  type spherical;
80  }
81  \endverbatim
82 
83 See also
84  Foam::compressible::alphatWallBoilingWallFunctionFvPatchScalarField
85 
86 SourceFiles
87  wallBoiling.C
88 
89 \*---------------------------------------------------------------------------*/
90 
91 #ifndef wallBoilingHeatTransfer_H
92 #define wallBoilingHeatTransfer_H
93 
94 #include "heatTransferModel.H"
95 #include "partitioningModel.H"
96 #include "nucleationSiteModel.H"
97 #include "departureDiameterModel.H"
99 
100 
101 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
102 
103 namespace Foam
104 {
105 namespace heatTransferModels
106 {
107 
108 /*---------------------------------------------------------------------------*\
109  Class wallBoilingHeatTransfer Declaration
110 \*---------------------------------------------------------------------------*/
111 
113 :
114  public heatTransferModel
115 {
116  // Private Data
117 
118  //- Interface
119  const dispersedPhaseInterface interface_;
120 
121  //- Interface on the other side
122  autoPtr<phaseInterface> otherInterface_;
123 
124  //- Name of the vapour phase
125  const word vapourPhaseName_;
126 
127  //- Name of the liquid phase
128  const word liquidPhaseName_;
129 
130  //- Pointer to the underlying heat transfer model
131  autoPtr<heatTransferModel> heatTransferModel_;
132 
133  //- Relaxation factor
134  const scalar relax_;
135 
136  //- Bulk nucleation seed phase fraction
137  const scalar seedFraction_;
138 
139  //- Run-time selected heat flux partitioning model
141  partitioningModel_;
142 
143  //- Run-time selected nucleation site density model
145  nucleationSiteModel_;
146 
147  //- Run-time selected bubble departure diameter model
149  departureDiamModel_;
150 
151  //- Run-time selected bubble departure frequency model
153  departureFreqModel_;
154 
155  //- At wall liquid phase fraction
156  mutable volScalarField wetFraction_;
157 
158  //- Bubble departure diameter
159  mutable volScalarField dDep_;
160 
161  //- Bubble departre frequency
162  mutable volScalarField fDep_;
163 
164  //- Nucleation site density
165  mutable volScalarField nucleationSiteDensity_;
166 
167  //- Evapouration mass transfer rate
168  mutable volScalarField dmdtf_;
169 
170  //- Quenching heat transfer rate
171  mutable volScalarField qq_;
172 
173  //- Wall Temperature
174  mutable volScalarField Tsurface_;
175 
176  //- Heat transfer coefficient (needed because lagging)
177  mutable volScalarField K_;
178 
179 
180 public:
181 
182  //- Runtime type information
183  TypeName("wallBoiling");
184 
185 
186  // Constructors
187 
188  //- Construct from components
190  (
191  const dictionary& dict,
192  const phaseInterface& interface,
193  const bool registerObject
194  );
195 
196 
197  //- Destructor
198  virtual ~wallBoilingHeatTransfer();
199 
200 
201  // Member Functions
202 
203  //- The heat transfer function K used in the enthalpy equation
204  tmp<volScalarField> K(const scalar residualAlpha) const;
205 
206  //- Is there phase change mass transfer for this phaseInterface
207  bool activePhaseInterface(const phaseInterfaceKey&) const;
208 
209  //- Key for the phase change phaseInterface
211 
212  //- Return the rate of phase-change
213  const volScalarField& dmdtf() const;
214 
215  //- Dummy write for regIOobject
216  bool writeData(Ostream& os) const;
217 };
218 
219 
220 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
221 
222 } // End namespace heatTransferModels
223 } // End namespace Foam
224 
225 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
226 
227 #endif
228 
229 // ************************************************************************* //
Generic GeometricField class.
bool & registerObject()
Register object created from this IOobject with registry if true.
Definition: IOobject.H:346
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
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 list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:160
Class to represent a interface between phases where one phase is considered dispersed within the othe...
Model for heat transfer between phases.
tmp< volScalarField > K() const
The heat transfer function K used in the enthalpy equation.
TypeName("wallBoiling")
Runtime type information.
bool writeData(Ostream &os) const
Dummy write for regIOobject.
const volScalarField & dmdtf() const
Return the rate of phase-change.
phaseInterfaceKey activePhaseInterface() const
Key for the phase change phaseInterface.
wallBoilingHeatTransfer(const dictionary &dict, const phaseInterface &interface, const bool registerObject)
Construct from components.
Word-pair based class used for keying interface models in hash tables.
Class to represent an interface between phases. Derivations can further specify the configuration of ...
A class for managing temporary objects.
Definition: tmp.H:55
A class for handling words, derived from string.
Definition: word.H:62
Namespace for OpenFOAM.
dictionary dict