makeReactingSolidThermo.H
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) 2012-2016 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
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 InClass
27  Foam::solidThermo
28 
29 Description
30  Macros for creating reacting solid thermo packages
31 
32 \*---------------------------------------------------------------------------*/
33 
34 #ifndef makeReactingSolidThermo_H
35 #define makeReactingSolidThermo_H
36 
38 #include "SpecieMixture.H"
39 
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 #define makeSolidReactionMixtureThermo(BaseThermo,Cthermo,Mixture,ThermoPhys) \
42  \
43 typedef SpecieMixture \
44  < \
45  Mixture \
46  < \
47  ThermoPhys \
48  > \
49  > SpecieMixture##Mixture##ThermoPhys; \
50  \
51 typedef \
52  heThermo \
53  < \
54  BaseThermo, \
55  SpecieMixture##Mixture##ThermoPhys \
56  > heThermo##Mixture##ThermoPhys; \
57  \
58 typedef \
59  Cthermo \
60  < \
61  BaseThermo, \
62  SpecieMixture##Mixture##ThermoPhys \
63  > Cthermo##Mixture##ThermoPhys; \
64  \
65  \
66 defineTemplateTypeNameAndDebugWithName \
67 ( \
68  Cthermo##Mixture##ThermoPhys, \
69  ( \
70  #Cthermo"<"#Mixture"<" \
71  + ThermoPhys::typeName() \
72  + ">>" \
73  ).c_str(), \
74  0 \
75 ); \
76  \
77 addToRunTimeSelectionTable \
78 ( \
79  basicThermo, \
80  Cthermo##Mixture##ThermoPhys, \
81  fvMesh \
82 ); \
83  \
84 addToRunTimeSelectionTable \
85 ( \
86  BaseThermo, \
87  Cthermo##Mixture##ThermoPhys, \
88  fvMesh \
89 ); \
90  \
91 addToRunTimeSelectionTable \
92 ( \
93  BaseThermo, \
94  Cthermo##Mixture##ThermoPhys, \
95  dictionary \
96 );
97 
98 
99 #define makeReactingSolidThermo(BaseThermo,CThermo,Mixture,Transport,Type,Thermo,EqnOfState,Specie) \
100  \
101 typedef \
102  Transport \
103  < \
104  species::thermo \
105  < \
106  Thermo \
107  < \
108  EqnOfState \
109  < \
110  Specie \
111  > \
112  >, \
113  Type \
114  > \
115  > Transport##Type##Thermo##EqnOfState##Specie; \
116  \
117 makeSolidReactionMixtureThermo \
118 ( \
119  BaseThermo, \
120  CThermo, \
121  Mixture, \
122  Transport##Type##Thermo##EqnOfState##Specie \
123 );
124 
125 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126 
127 #endif
128 
129 // ************************************************************************* //
addToRunTimeSelectionTable.H
Macros for easy insertion into run-time selection tables.
SpecieMixture.H