InterfaceCompositionModels.C
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-2018 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 \*---------------------------------------------------------------------------*/
25 
27 
28 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
29 
32 #include "Henry.H"
33 #include "NonRandomTwoLiquid.H"
34 #include "Raoult.H"
35 #include "Saturated.H"
36 
37 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
38 
39 #include "makeReactionThermo.H"
40 
41 #include "thermoPhysicsTypes.H"
42 
43 #include "rhoConst.H"
44 #include "perfectFluid.H"
45 
46 #include "pureMixture.H"
47 #include "multiComponentMixture.H"
48 #include "reactingMixture.H"
49 #include "SpecieMixture.H"
50 
51 #include "rhoThermo.H"
52 #include "rhoReactionThermo.H"
53 #include "heRhoThermo.H"
54 
55 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
56 
57 #define makeSpecieInterfaceCompositionModel(Model, Thermo1, Thermo2) \
58  \
59  /* Composition at an interface with a multi-component mixture */ \
60  makeSpecieInterfaceCompositionType \
61  ( \
62  Model, \
63  heRhoThermo, rhoReactionThermo, \
64  multiComponentMixture, Thermo1, \
65  heRhoThermo, rhoReactionThermo, \
66  multiComponentMixture, Thermo2 \
67  ); \
68  makeSpecieInterfaceCompositionType \
69  ( \
70  Model, \
71  heRhoThermo, rhoReactionThermo, \
72  reactingMixture, Thermo1, \
73  heRhoThermo, rhoReactionThermo, \
74  multiComponentMixture, Thermo2 \
75  ); \
76  \
77  /* Composition at an interface with a reacting mixture */ \
78  makeSpecieInterfaceCompositionType \
79  ( \
80  Model, \
81  heRhoThermo, rhoReactionThermo, \
82  multiComponentMixture, Thermo1, \
83  heRhoThermo, rhoReactionThermo, \
84  reactingMixture, Thermo2 \
85  ); \
86  makeSpecieInterfaceCompositionType \
87  ( \
88  Model, \
89  heRhoThermo, rhoReactionThermo, \
90  reactingMixture, Thermo1, \
91  heRhoThermo, rhoReactionThermo, \
92  reactingMixture, Thermo2 \
93  );
94 
95 #define makeInterfaceCompositionModel(Model, Thermo1, Thermo2) \
96  \
97  /* Composition at an interface with a pure mixture */ \
98  makeInterfaceCompositionType \
99  ( \
100  Model, \
101  heRhoThermo, rhoReactionThermo, \
102  multiComponentMixture, Thermo1, \
103  heRhoThermo, rhoThermo, \
104  pureMixture, Thermo2 \
105  ); \
106  makeInterfaceCompositionType \
107  ( \
108  Model, \
109  heRhoThermo, rhoReactionThermo, \
110  reactingMixture, Thermo1, \
111  heRhoThermo, rhoThermo, \
112  pureMixture, Thermo2 \
113  ); \
114  \
115  /* Composition at an interface with non-pure mixtures */ \
116  makeSpecieInterfaceCompositionModel(Model, Thermo1, Thermo2)
117 
118 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
119 
120 namespace Foam
121 {
122  using namespace interfaceCompositionModels;
123 
124  // Gas-side models
125  makeInterfaceCompositionModel
126  (
127  Saturated,
130  );
131  makeInterfaceCompositionModel
132  (
133  Saturated,
136  );
137  makeInterfaceCompositionModel
138  (
139  Saturated,
142  );
143  makeInterfaceCompositionModel
144  (
145  Saturated,
148  );
149  makeInterfaceCompositionModel
150  (
151  Saturated,
154  );
155 
156  makeSpecieInterfaceCompositionModel
157  (
158  NonRandomTwoLiquid,
161  );
162  makeSpecieInterfaceCompositionModel
163  (
164  NonRandomTwoLiquid,
167  );
168  makeSpecieInterfaceCompositionModel
169  (
170  NonRandomTwoLiquid,
173  );
174  makeSpecieInterfaceCompositionModel
175  (
176  NonRandomTwoLiquid,
179  );
180  makeSpecieInterfaceCompositionModel
181  (
182  NonRandomTwoLiquid,
185  );
186 
187  // Liquid-side models
188  makeSpecieInterfaceCompositionModel
189  (
190  Henry,
193  );
194  makeSpecieInterfaceCompositionModel
195  (
196  Henry,
199  );
200  makeSpecieInterfaceCompositionModel
201  (
202  Henry,
205  );
206  makeSpecieInterfaceCompositionModel
207  (
208  Henry,
211  );
212  makeSpecieInterfaceCompositionModel
213  (
214  Henry,
217  );
218 
219  makeSpecieInterfaceCompositionModel
220  (
221  Raoult,
224  );
225  makeSpecieInterfaceCompositionModel
226  (
227  Raoult,
230  );
231  makeSpecieInterfaceCompositionModel
232  (
233  Raoult,
236  );
237  makeSpecieInterfaceCompositionModel
238  (
239  Raoult,
242  );
243  makeSpecieInterfaceCompositionModel
244  (
245  Raoult,
248  );
249 }
250 
251 // ************************************************************************* //
Type definitions for thermo-physics models.
constTransport< species::thermo< eConstThermo< perfectFluid< specie > >, sensibleInternalEnergy > > constFluidEThermoPhysics
sutherlandTransport< species::thermo< janafThermo< perfectGas< specie > >, sensibleInternalEnergy > > gasEThermoPhysics
Macros for easy insertion into run-time selection tables.
constTransport< species::thermo< eConstThermo< rhoConst< specie > >, sensibleInternalEnergy > > constEThermoPhysics
constTransport< species::thermo< eConstThermo< perfectGas< specie > >, sensibleInternalEnergy > > constGasEThermoPhysics
Namespace for OpenFOAM.