InterfaceCompositionModels.C
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2015-2018 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26\*---------------------------------------------------------------------------*/
27
29
30// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
31
32#include "interfaceCompositionModel.H"
34#include "Henry.H"
35#include "NonRandomTwoLiquid.H"
36#include "Raoult.H"
37#include "Saturated.H"
38
39// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40
41#include "makeReactionThermo.H"
42
43#include "thermoPhysicsTypes.H"
44
45#include "rhoConst.H"
46#include "perfectFluid.H"
47
48#include "pureMixture.H"
50#include "reactingMixture.H"
51#include "SpecieMixture.H"
52
53#include "rhoThermo.H"
54#include "rhoReactionThermo.H"
55#include "heRhoThermo.H"
56
57// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
58
59#define makeSpecieInterfaceCompositionModel(Model, Thermo1, Thermo2) \
60 \
61 /* Composition at an interface with a multi-component mixture */ \
62 makeSpecieInterfaceCompositionType \
63 ( \
64 Model, \
65 heRhoThermo, rhoReactionThermo, \
66 multiComponentMixture, Thermo1, \
67 heRhoThermo, rhoReactionThermo, \
68 multiComponentMixture, Thermo2 \
69 ); \
70 makeSpecieInterfaceCompositionType \
71 ( \
72 Model, \
73 heRhoThermo, rhoReactionThermo, \
74 reactingMixture, Thermo1, \
75 heRhoThermo, rhoReactionThermo, \
76 multiComponentMixture, Thermo2 \
77 ); \
78 \
79 /* Composition at an interface with a reacting mixture */ \
80 makeSpecieInterfaceCompositionType \
81 ( \
82 Model, \
83 heRhoThermo, rhoReactionThermo, \
84 multiComponentMixture, Thermo1, \
85 heRhoThermo, rhoReactionThermo, \
86 reactingMixture, Thermo2 \
87 ); \
88 makeSpecieInterfaceCompositionType \
89 ( \
90 Model, \
91 heRhoThermo, rhoReactionThermo, \
92 reactingMixture, Thermo1, \
93 heRhoThermo, rhoReactionThermo, \
94 reactingMixture, Thermo2 \
95 );
96
97#define makeInterfaceCompositionModel(Model, Thermo1, Thermo2) \
98 \
99 /* Composition at an interface with a pure mixture */ \
100 makeInterfaceCompositionType \
101 ( \
102 Model, \
103 heRhoThermo, rhoReactionThermo, \
104 multiComponentMixture, Thermo1, \
105 heRhoThermo, rhoThermo, \
106 pureMixture, Thermo2 \
107 ); \
108 makeInterfaceCompositionType \
109 ( \
110 Model, \
111 heRhoThermo, rhoReactionThermo, \
112 reactingMixture, Thermo1, \
113 heRhoThermo, rhoThermo, \
114 pureMixture, Thermo2 \
115 ); \
116 \
117 /* Composition at an interface with non-pure mixtures */ \
118 makeSpecieInterfaceCompositionModel(Model, Thermo1, Thermo2)
119
120// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
121
122namespace Foam
123{
124 using namespace interfaceCompositionModels;
125
126 // Gas-side models
128 (
129 Saturated,
132 );
134 (
135 Saturated,
138 );
140 (
141 Saturated,
144 );
146 (
147 Saturated,
150 );
152 (
153 Saturated,
156 );
157
159 (
163 );
165 (
169 );
171 (
175 );
177 (
181 );
183 (
187 );
188
189 // Liquid-side models
191 (
192 Henry,
195 );
197 (
198 Henry,
201 );
203 (
204 Henry,
207 );
209 (
210 Henry,
213 );
215 (
216 Henry,
219 );
220
222 (
223 Raoult,
226 );
228 (
229 Raoult,
232 );
234 (
235 Raoult,
238 );
240 (
241 Raoult,
244 );
246 (
247 Raoult,
250 );
251}
252
253// ************************************************************************* //
Macros for easy insertion into run-time selection tables.
Constant properties Transport package. Templated into a given thermodynamics package (needed for ther...
Henry's law for gas solubility in liquid. The concentration of a dissolved species in the liquid is p...
Definition: Henry.H:64
Non ideal law for the mixing of two species. A separate composition model is given for each species....
Raoult's law of ideal mixing. A separate composition model is given for each species....
Definition: Raoult.H:61
Model which uses a saturation pressure model for a single species to calculate the interface composit...
Definition: Saturated.H:61
Transport package using Sutherland's formula.
Namespace for OpenFOAM.
constTransport< species::thermo< eConstThermo< rhoConst< specie > >, sensibleInternalEnergy > > constEThermoPhysics
#define makeSpecieInterfaceCompositionModel(Model, Thermo1, Thermo2)
#define makeInterfaceCompositionModel(Model, Thermo1, Thermo2)
Type definitions for thermo-physics models.