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-------------------------------------------------------------------------------
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
26InClass
27 Foam::solidThermo
28
29Description
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 \
43typedef SpecieMixture \
44 < \
45 Mixture \
46 < \
47 ThermoPhys \
48 > \
49 > SpecieMixture##Mixture##ThermoPhys; \
50 \
51typedef \
52 heThermo \
53 < \
54 BaseThermo, \
55 SpecieMixture##Mixture##ThermoPhys \
56 > heThermo##Mixture##ThermoPhys; \
57 \
58typedef \
59 Cthermo \
60 < \
61 BaseThermo, \
62 SpecieMixture##Mixture##ThermoPhys \
63 > Cthermo##Mixture##ThermoPhys; \
64 \
65 \
66defineTemplateTypeNameAndDebugWithName \
67( \
68 Cthermo##Mixture##ThermoPhys, \
69 ( \
70 #Cthermo"<"#Mixture"<" \
71 + ThermoPhys::typeName() \
72 + ">>" \
73 ).c_str(), \
74 0 \
75); \
76 \
77addToRunTimeSelectionTable \
78( \
79 basicThermo, \
80 Cthermo##Mixture##ThermoPhys, \
81 fvMesh \
82); \
83 \
84addToRunTimeSelectionTable \
85( \
86 BaseThermo, \
87 Cthermo##Mixture##ThermoPhys, \
88 fvMesh \
89); \
90 \
91addToRunTimeSelectionTable \
92( \
93 BaseThermo, \
94 Cthermo##Mixture##ThermoPhys, \
95 dictionary \
96);
97
98
99#define makeReactingSolidThermo(BaseThermo,CThermo,Mixture,Transport,Type,Thermo,EqnOfState,Specie) \
100 \
101typedef \
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 \
117makeSolidReactionMixtureThermo \
118( \
119 BaseThermo, \
120 CThermo, \
121 Mixture, \
122 Transport##Type##Thermo##EqnOfState##Specie \
123);
124
125// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126
127#endif
128
129// ************************************************************************* //
Macros for easy insertion into run-time selection tables.