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-2025 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  //- Return the two-resistance heat transfer coefficients between a pair
102  // of phases with additional arguments
103  template<class ... Args>
105  (
106  const phaseModel& phase1,
107  const phaseModel& phase2,
108  Args ... args
109  ) const;
110 
111 
112 public:
113 
114  //- Runtime type information
115  TypeName("heatTransferSystem");
116 
117 
118  //- Default name of the phase properties dictionary
119  static const word propertiesName;
120 
121 
122  // Constructors
123 
124  //- Construct from a phase system
126 
127 
128  //- Destructor
129  virtual ~heatTransferSystem();
130 
131 
132  // Member Functions
133 
134  //- Return the two-resistance heat transfer coefficients between a pair
135  // of phases
137  (
138  const phaseModel& phase1,
139  const phaseModel& phase2
140  ) const;
141 
142  //- Return the two-resistance heat transfer coefficients between a pair
143  // of phases with a specified residual volume fraction
145  (
146  const phaseModel& phase1,
147  const phaseModel& phase2,
148  const scalar residualAlpha
149  ) const;
150 
151  //- Return the heat transfer matrices
153 
154  //- Read base phaseProperties dictionary
155  virtual bool read();
156 };
157 
158 
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 
161 } // End namespace Foam
162 
163 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164 
165 #endif
166 
167 // ************************************************************************* //
A HashTable specialisation for hashing pointers.
Definition: HashPtrTable.H:67
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:66
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:62
Namespace for OpenFOAM.
Foam::argList args(argc, argv)