heatTransferSystem.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-2026 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::heatTransferSystem
26 
27 Description
28  Class which provides interfacial momentum transfer between a number of
29  phases. Drag, virtual mass, lift, wall lubrication and turbulent dispersion
30  are all modelled. Access is provided to a various forces and coefficients
31  needed by the solver.
32 
33 SourceFiles
34  heatTransferSystem.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef heatTransferSystem_H
39 #define heatTransferSystem_H
40 
41 #include "phaseSystem.H"
42 
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 
45 namespace Foam
46 {
47 
48 // Forward declaration of classes
49 class blendedHeatTransferModel;
50 class blendedSidedHeatTransferModel;
51 
52 /*---------------------------------------------------------------------------*\
53  Class heatTransferSystem Declaration
54 \*---------------------------------------------------------------------------*/
55 
57 :
58  public IOdictionary
59 {
60  // Private Type Definitions
61 
62  //- Table of one-resistance heat transfer models
63  typedef
65  <
69  > modelsTable;
70 
71  //- Table of two-resistance heat transfer models
72  typedef
74  <
79 
80 
81  // Private Data
82 
83  //- Reference to the phase system
84  const phaseSystem& fluid_;
85 
86  //- One-resistance heat transfer models
87  modelsTable models_;
88 
89  //- Two-resistance heat transfer models
90  sidedModelsTable sidedModels_;
91 
92 
93  // Private Member Functions
94 
95  //- Create IO object for an optional constant/heatTransfer file
96  IOobject io(const phaseSystem&) const;
97 
98  //- Return the models dictionary
99  const dictionary& modelsDict() const;
100 
101  //- Read the models
102  void readModels();
103 
104  //- Return the two-resistance heat transfer coefficients between a pair
105  // of phases with additional arguments
106  template<class ... Args>
108  (
109  const phaseModel& phase1,
110  const phaseModel& phase2,
111  Args ... args
112  ) const;
113 
114 
115 public:
116 
117  //- Runtime type information
118  TypeName("heatTransferSystem");
119 
120 
121  //- Default name of the phase properties dictionary
122  static const word propertiesName;
123 
124 
125  // Constructors
126 
127  //- Construct from a phase system
129 
130 
131  //- Destructor
132  virtual ~heatTransferSystem();
133 
134 
135  // Member Functions
136 
137  //- Return the two-resistance heat transfer coefficients between a pair
138  // of phases
140  (
141  const phaseModel& phase1,
142  const phaseModel& phase2
143  ) const;
144 
145  //- Return the two-resistance heat transfer coefficients between a pair
146  // of phases with a specified residual volume fraction
148  (
149  const phaseModel& phase1,
150  const phaseModel& phase2,
151  const scalar residualAlpha
152  ) const;
153 
154  //- Return the heat transfer matrices
156 
157  //- Read base phaseProperties dictionary
158  virtual bool read();
159 };
160 
161 
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
163 
164 } // End namespace Foam
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 #endif
169 
170 // ************************************************************************* //
A HashTable specialisation for hashing pointers.
Definition: HashPtrTable.H:68
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Definition: IOdictionary.H:57
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Definition: IOobject.H:99
An ordered pair of two objects of type <Type> with first() and second() elements.
Definition: Pair.H:67
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 keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Class which provides interfacial momentum transfer between a number of phases. Drag,...
static const word propertiesName
Default name of the phase properties dictionary.
heatTransferSystem(const phaseSystem &)
Construct from a phase system.
TypeName("heatTransferSystem")
Runtime type information.
virtual ~heatTransferSystem()
Destructor.
autoPtr< HashPtrTable< fvScalarMatrix > > heatTransfer() const
Return the heat transfer matrices.
virtual bool read()
Read base phaseProperties dictionary.
Word-pair based class used for keying interface models in hash tables.
Class to represent a system of phases.
Definition: phaseSystem.H:74
A class for handling words, derived from string.
Definition: word.H:63
Namespace for OpenFOAM.
Foam::argList args(argc, argv)