makeReactionThermo.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) 2011-2021 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 
26 #ifndef makeReactionThermo_H
27 #define makeReactionThermo_H
28 
29 #include "makeThermo.H"
30 #include "SpecieMixture.H"
31 
32 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
33 
34 #define defineReactionThermo(BaseReactionThermo, CThermo, Mixture, ThermoPhys) \
35  \
36  typedef CThermo \
37  < \
38  BaseReactionThermo::composite, \
39  SpecieMixture \
40  < \
41  Mixture \
42  < \
43  ThermoPhys \
44  > \
45  > \
46  > CThermo##Mixture##ThermoPhys; \
47  \
48  defineTemplateTypeNameAndDebugWithName \
49  ( \
50  CThermo##Mixture##ThermoPhys, \
51  ( \
52  word(CThermo##Mixture##ThermoPhys::typeName_()) + "<" \
53  + Mixture<ThermoPhys>::typeName() + ">" \
54  ).c_str(), \
55  0 \
56  )
57 
58 
59 #define addReactionThermo(BaseReactionThermo, CThermo, Mixture, ThermoPhys) \
60  \
61  addThermo(BaseReactionThermo, CThermo, Mixture, ThermoPhys)
62 
63 
64 #define makeReactionThermo(BaseReactionThermo, CThermo, Mixture, ThermoPhys) \
65  \
66  defineReactionThermo(BaseReactionThermo, CThermo, Mixture, ThermoPhys); \
67  \
68  addReactionThermo(fluidReactionThermo, CThermo, Mixture, ThermoPhys); \
69  addReactionThermo(BaseReactionThermo, CThermo, Mixture, ThermoPhys)
70 
71 
72 #define makeReactionThermos( \
73  BaseThermo, BaseReactionThermo, CThermo, Mixture, ThermoPhys) \
74  \
75  defineReactionThermo(BaseReactionThermo, CThermo, Mixture, ThermoPhys); \
76  \
77  addReactionThermo(basicThermo, CThermo, Mixture, ThermoPhys); \
78  addReactionThermo(fluidThermo, CThermo, Mixture, ThermoPhys); \
79  addReactionThermo(BaseThermo, CThermo, Mixture, ThermoPhys); \
80  addReactionThermo(fluidReactionThermo, CThermo, Mixture, ThermoPhys); \
81  addReactionThermo(BaseReactionThermo, CThermo, Mixture, ThermoPhys)
82 
83 
84 #define makePsiuReactionThermo(Mixture, ThermoPhys) \
85  \
86  defineReactionThermo \
87  ( \
88  psiuReactionThermo, \
89  heheuPsiThermo, \
90  Mixture, \
91  ThermoPhys \
92  ); \
93  \
94  addThermo(psiuReactionThermo, heheuPsiThermo, Mixture, ThermoPhys)
95 
96 
97 #define makePsiuReactionThermos(Mixture, ThermoPhys) \
98  \
99  defineReactionThermo \
100  ( \
101  psiuReactionThermo, \
102  heheuPsiThermo, \
103  Mixture, \
104  ThermoPhys \
105  ); \
106  \
107  addThermo(basicThermo, heheuPsiThermo, Mixture, ThermoPhys); \
108  addThermo(fluidThermo, heheuPsiThermo, Mixture, ThermoPhys); \
109  addThermo(psiThermo, heheuPsiThermo, Mixture, ThermoPhys); \
110  addThermo(psiuReactionThermo, heheuPsiThermo, Mixture, ThermoPhys)
111 
112 
113 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
114 
115 #endif
116 
117 // ************************************************************************* //
Macros for creating basic fluid thermo packages.