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-2024 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  vapourPhase gas;
50 
51  heatTransferModel
52  {
53  type Gunn;
54  }
55 
56  partitioningModel
57  {
58  type Lavieville; // phaseFraction, linear, cosine
59  alphaCrit 0.2;
60  }
61  nucleationSiteModel
62  {
63  type LemmertChawla; // KocamustafaogullariIshii
64  }
65  departureDiameterModel
66  {
67  type TolubinskiKostanchuk; // KocamustafaogullariIshii
68  }
69  departureFrequencyModel
70  {
71  type KocamustafaogullariIshii; // Cole
72  Cf 1.18;
73  }
74  }
75 
76  bed_dispersedIn_liquid_inThe_bed
77  {
78  type spherical;
79  }
80  \endverbatim
81 
82 See also
83  Foam::compressible::alphatWallBoilingWallFunctionFvPatchScalarField
84 
85 SourceFiles
86  wallBoiling.C
87 
88 \*---------------------------------------------------------------------------*/
89 
90 #ifndef wallBoilingHeatTransfer_H
91 #define wallBoilingHeatTransfer_H
92 
93 #include "heatTransferModel.H"
94 #include "partitioningModel.H"
95 #include "nucleationSiteModel.H"
96 #include "departureDiameterModel.H"
98 
99 
100 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
101 
102 namespace Foam
103 {
104 namespace heatTransferModels
105 {
106 
107 /*---------------------------------------------------------------------------*\
108  Class wallBoilingHeatTransfer Declaration
109 \*---------------------------------------------------------------------------*/
110 
112 :
113  public heatTransferModel
114 {
115  // Private Data
116 
117  //- Interface
118  const dispersedPhaseInterface interface_;
119 
120  //- Interface on the other side
121  autoPtr<phaseInterface> otherInterface_;
122 
123  //- Name of the vapour phase
124  const word vapourPhaseName_;
125 
126  //- Pointer to the underlying heat transfer model
127  autoPtr<heatTransferModel> heatTransferModel_;
128 
129  //- Relaxation factor
130  const scalar relax_;
131 
132  //- Run-time selected heat flux partitioning model
134  partitioningModel_;
135 
136  //- Run-time selected nucleation site density model
138  nucleationSiteModel_;
139 
140  //- Run-time selected bubble departure diameter model
142  departureDiamModel_;
143 
144  //- Run-time selected bubble departure frequency model
146  departureFreqModel_;
147 
148  //- At wall liquid phase fraction
149  mutable volScalarField wetFraction_;
150 
151  //- Bubble departure diameter
152  mutable volScalarField dDep_;
153 
154  //- Bubble departre frequency
155  mutable volScalarField fDep_;
156 
157  //- Nucleation site density
158  mutable volScalarField nucleationSiteDensity_;
159 
160  //- Evapouration mass transfer rate
161  mutable volScalarField dmdtf_;
162 
163  //- Quenching heat transfer rate
164  mutable volScalarField qq_;
165 
166  //- Wall Temperature
167  mutable volScalarField Tsurface_;
168 
169  //- Heat transfer coefficient (needed because lagging)
170  mutable volScalarField K_;
171 
172 
173 public:
174 
175  //- Runtime type information
176  TypeName("wallBoiling");
177 
178 
179  // Constructors
180 
181  //- Construct from components
183  (
184  const dictionary& dict,
185  const phaseInterface& interface,
186  const bool registerObject
187  );
188 
189 
190  //- Destructor
191  virtual ~wallBoilingHeatTransfer();
192 
193 
194  // Member Functions
195 
196  //- The heat transfer function K used in the enthalpy equation
197  tmp<volScalarField> K(const scalar residualAlpha) const;
198 
199  //- Is there phase change mass transfer for this phaseInterface
200  bool activePhaseInterface(const phaseInterfaceKey&) const;
201 
202  //- True if the sign of dmdtf should be changed
203  bool flipSign() const;
204 
205  //- Return the rate of phase-change
206  const volScalarField& dmdtf() const;
207 
208  //- Dummy write for regIOobject
209  bool writeData(Ostream& os) const;
210 };
211 
212 
213 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
214 
215 } // End namespace heatTransferModels
216 } // End namespace Foam
217 
218 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
219 
220 #endif
221 
222 // ************************************************************************* //
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:162
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.
bool activePhaseInterface(const phaseInterfaceKey &) const
Is there phase change mass transfer for this phaseInterface.
bool flipSign() const
True if the sign of dmdtf should be changed.
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