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