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-2020 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 template<class modelType>
54 class BlendedInterfacialModel;
55 
56 class blendingMethod;
57 class heatTransferModel;
58 
59 /*---------------------------------------------------------------------------*\
60  Class TwoResistanceHeatTransferPhaseSystem Declaration
61 \*---------------------------------------------------------------------------*/
62 
63 template<class BasePhaseSystem>
65 :
67  public HeatTransferPhaseSystem<BasePhaseSystem>
68 {
69 protected:
70 
71  // Protected typedefs
72 
73  typedef HashTable
74  <
79 
80  typedef
83 
84 
85  // Protected data
86 
87  // Sub Models
88 
89  //- Heat transfer models
90  heatTransferModelTable heatTransferModels_;
91 
92 
93  // Protected Member Functions
94 
95  //- Add energy transfer terms which result from bulk mass transfers
96  // and phase changes
98 
99  //- Add energy transfer terms which result from bulk phase changes
100  // that are coupled to the two-resistance heat transfer model
101  void addDmdtHefs
102  (
103  const phaseSystem::dmdtfTable& dmdtfs,
104  const phaseSystem::dmdtfTable& Tfs,
105  const latentHeatScheme scheme,
106  const latentHeatTransfer transfer,
108  ) const;
109 
110  //- Add energy transfer terms which result from specie mass transfers
111  // and phase changes
113 
114  //- Add energy transfer terms which result from specie phase changes
115  // that are coupled to the two-resistance heat transfer model
116  void addDmidtHefs
117  (
118  const phaseSystem::dmidtfTable& dmidtfs,
119  const phaseSystem::dmdtfTable& Tfs,
120  const latentHeatScheme scheme,
121  const latentHeatTransfer transfer,
123  ) const;
124 
125 
126 public:
127 
128  // Constructors
129 
130  //- Construct from fvMesh
132 
133 
134  //- Destructor
136 
137 
138  // Member Functions
139 
140  //- Return the heat transfer matrices
142 
143  //- Correct the energy transport e.g. alphat and Tf
144  virtual void correctEnergyTransport();
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 // ************************************************************************* //
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.
An ordered pair of two objects of type <T> with first() and second() elements.
Definition: contiguous.H:49
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.
HashTable< Pair< autoPtr< BlendedInterfacialModel< heatTransferModel > > >, phasePairKey, phasePairKey::hash > heatTransferModelTable
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:78
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
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.