All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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-2020 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, \
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 makeReactionThermos( \
60  BaseThermo, BaseReactionThermo, CThermo, Mixture, ThermoPhys) \
61  \
62  defineReactionThermo \
63  ( \
64  BaseReactionThermo, \
65  CThermo, \
66  Mixture, \
67  ThermoPhys \
68  ); \
69  \
70  addThermo(basicThermo, CThermo##Mixture##ThermoPhys); \
71  addThermo(fluidThermo, CThermo##Mixture##ThermoPhys); \
72  addThermo(BaseThermo, CThermo##Mixture##ThermoPhys); \
73  addThermo(BaseReactionThermo, CThermo##Mixture##ThermoPhys)
74 
75 
76 #define makeReactionThermo(BaseReactionThermo, CThermo, Mixture, ThermoPhys) \
77  \
78  defineReactionThermo \
79  ( \
80  BaseReactionThermo, \
81  CThermo, \
82  Mixture, \
83  ThermoPhys \
84  ); \
85  \
86  addThermo(BaseReactionThermo, CThermo##Mixture##ThermoPhys)
87 
88 
89 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
90 
91 #endif
92 
93 // ************************************************************************* //
Macros for creating basic fluid thermo packages.