TwoResistanceHeatTransferPhaseSystem.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) 2015-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::TwoResistanceHeatTransferPhaseSystem
26 
27 Description
28  Class which models interfacial heat transfer between a number of phases.
29  Two heat transfer models are stored at each interface, one for each phase.
30  This permits definition of an interface temperature with which heat transfer
31  occurs. It also allows derived systems to define other thermodynamic
32  properties at the interface and therefore represent phase changes.
33 
34 See also
35  OneResistanceHeatTransferPhaseSystem
36 
37 SourceFiles
38  TwoResistanceHeatTransferPhaseSystem.C
39 
40 \*---------------------------------------------------------------------------*/
41 
42 #ifndef TwoResistanceHeatTransferPhaseSystem_H
43 #define TwoResistanceHeatTransferPhaseSystem_H
44 
47 
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 
50 namespace Foam
51 {
52 
53 class sidedBlendedHeatTransferModel;
54 
55 /*---------------------------------------------------------------------------*\
56  Class TwoResistanceHeatTransferPhaseSystem Declaration
57 \*---------------------------------------------------------------------------*/
58 
59 template<class BasePhaseSystem>
61 :
63  public HeatTransferPhaseSystem<BasePhaseSystem>
64 {
65 protected:
66 
67  // Protected typedefs
68 
69  typedef HashTable
70  <
75 
76  typedef
79 
80 
81  // Protected data
82 
83  // Sub Models
84 
85  //- Heat transfer models
87 
88 
89  // Protected Member Functions
90 
91  //- Add energy transfer terms which result from bulk mass transfers
92  // and phase changes
94 
95  //- Add energy transfer terms which result from bulk phase changes
96  // that are coupled to the two-resistance heat transfer model
97  void addDmdtHefs
98  (
99  const phaseSystem::dmdtfTable& dmdtfs,
100  const phaseSystem::dmdtfTable& Tfs,
101  const latentHeatScheme scheme,
102  const latentHeatTransfer transfer,
104  ) const;
105 
106  //- Add energy transfer terms which result from specie mass transfers
107  // and phase changes
109 
110  //- Add energy transfer terms which result from specie phase changes
111  // that are coupled to the two-resistance heat transfer model
112  void addDmidtHefs
113  (
114  const phaseSystem::dmidtfTable& dmidtfs,
115  const phaseSystem::dmdtfTable& Tfs,
116  const latentHeatScheme scheme,
117  const latentHeatTransfer transfer,
119  ) const;
120 
121 
122 public:
123 
124  // Constructors
125 
126  //- Construct from fvMesh
128 
129 
130  //- Destructor
132 
133 
134  // Member Functions
135 
136  //- Return the heat transfer matrices
138 
139  //- Predict the energy transport e.g. alphat
140  // and interface properties e.g. Tf
141  virtual void predictThermophysicalTransport();
142 
143  //- Correct the energy transport e.g. alphat
144  virtual void correctThermophysicalTransport();
145 
146  //- Correct the interface thermodynamics
147  virtual void correctInterfaceThermo() = 0;
148 
149  //- Read base phaseProperties dictionary
150  virtual bool read();
151 };
152 
153 
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 
156 } // End namespace Foam
157 
158 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159 
160 #ifdef NoRepository
162 #endif
163 
164 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
165 
166 #endif
167 
168 // ************************************************************************* //
An STL-conforming hash table.
Definition: HashTable.H:127
Class which models interfacial heat transfer between a number of phases. Two heat transfer models are...
virtual autoPtr< phaseSystem::heatTransferTable > heatTransfer() const
Return the heat transfer matrices.
virtual void correctInterfaceThermo()=0
Correct the interface thermodynamics.
virtual void predictThermophysicalTransport()
Predict the energy transport e.g. alphat.
void addDmdtHefs(const phaseSystem::dmdtfTable &dmdtfs, const phaseSystem::dmdtfTable &Tfs, const latentHeatScheme scheme, const latentHeatTransfer transfer, phaseSystem::heatTransferTable &eqns) const
Add energy transfer terms which result from bulk phase changes.
virtual void correctThermophysicalTransport()
Correct the energy transport e.g. alphat.
HeatTransferPhaseSystem< BasePhaseSystem >::latentHeatScheme latentHeatScheme
TwoResistanceHeatTransferPhaseSystem(const fvMesh &)
Construct from fvMesh.
heatTransferModelTable heatTransferModels_
Heat transfer models.
void addDmidtHefs(const phaseSystem::dmidtfTable &dmidtfs, const phaseSystem::dmdtfTable &Tfs, const latentHeatScheme scheme, const latentHeatTransfer transfer, phaseSystem::heatTransferTable &eqns) const
Add energy transfer terms which result from specie phase changes.
HashTable< autoPtr< sidedBlendedHeatTransferModel >, phaseInterfaceKey, phaseInterfaceKey::hash > heatTransferModelTable
virtual bool read()
Read base phaseProperties dictionary.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:101
latentHeatScheme
Enumeration for the latent heat scheme.
Word-pair based class used for keying interface models in hash tables.
latentHeatTransfer
Enumeration for the form of the latent heat transfer.
static tmp< surfaceInterpolationScheme< Type > > scheme(const surfaceScalarField &faceFlux, Istream &schemeData)
Return weighting factors for scheme given from Istream.
Namespace for OpenFOAM.