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-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::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
86  heatTransferModelTable heatTransferModels_;
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  //- Correct the energy transport e.g. alphat and Tf
140  virtual void correctEnergyTransport();
141 
142  //- Correct the interface thermodynamics
143  virtual void correctInterfaceThermo() = 0;
144 
145  //- Read base phaseProperties dictionary
146  virtual bool read();
147 };
148 
149 
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 
152 } // End namespace Foam
153 
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 
156 #ifdef NoRepository
158 #endif
159 
160 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
161 
162 #endif
163 
164 // ************************************************************************* //
Class which models interfacial heat transfer between a number of phases. Two heat transfer models are...
heatTransferModelTable heatTransferModels_
Heat transfer models.
static tmp< surfaceInterpolationScheme< Type > > scheme(const surfaceScalarField &faceFlux, Istream &schemeData)
Return weighting factors for scheme given from Istream.
Word-pair based class used for keying interface models in hash tables.
HeatTransferPhaseSystem< BasePhaseSystem >::latentHeatScheme latentHeatScheme
virtual void correctInterfaceThermo()=0
Correct the interface thermodynamics.
An STL-conforming hash table.
Definition: HashTable.H:61
latentHeatScheme
Enumeration for the latent heat scheme.
latentHeatTransfer
Enumeration for the form of the latent heat transfer.
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 autoPtr< phaseSystem::heatTransferTable > heatTransfer() const
Return the heat transfer matrices.
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:95
virtual ~TwoResistanceHeatTransferPhaseSystem()
Destructor.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: PtrList.H:52
HashTable< autoPtr< sidedBlendedHeatTransferModel >, phaseInterfaceKey, phaseInterfaceKey::hash > heatTransferModelTable
virtual void correctEnergyTransport()
Correct the energy transport e.g. alphat and Tf.
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.
Namespace for OpenFOAM.
TwoResistanceHeatTransferPhaseSystem(const fvMesh &)
Construct from fvMesh.
virtual bool read()
Read base phaseProperties dictionary.