makeSolidChemistrySolverType.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) 2011-2017 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 Description
27  Macros for instantiating solid chemistry models based on compressibility
28  and transport types
29 
30 \*---------------------------------------------------------------------------*/
31 
32 #ifndef makeSolidChemistrySolverType_H
33 #define makeSolidChemistrySolverType_H
34 
36 
37 #include "noChemistrySolver.H"
38 #include "EulerImplicit.H"
39 #include "ode.H"
40 
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 
43 namespace Foam
44 {
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 #define makeSolidChemistrySolverType(SS, Schem, Comp, SThermo, GThermo) \
49  \
50  typedef SS<Schem<Comp, SThermo, GThermo>> \
51  SS##Schem##Comp##SThermo##GThermo; \
52  \
53  defineTemplateTypeNameAndDebugWithName \
54  ( \
55  SS##Schem##Comp##SThermo##GThermo, \
56  (#SS"<" + word(Schem<Comp, SThermo, GThermo>::typeName_()) \
57  + "<"#Comp"," + SThermo::typeName() \
58  + "," + GThermo::typeName() + ">>").c_str(), \
59  0 \
60  ); \
61  \
62  addToRunTimeSelectionTable \
63  ( \
64  Comp, \
65  SS##Schem##Comp##SThermo##GThermo, \
66  thermo \
67  );
68 
69 
70 #define makeSolidChemistrySolverTypes(SolidChem, Comp, SThermo, GThermo) \
71  \
72  makeSolidChemistrySolverType \
73  ( \
74  noChemistrySolver, \
75  SolidChem, \
76  Comp, \
77  SThermo, \
78  GThermo \
79  ); \
80  \
81  makeSolidChemistrySolverType \
82  ( \
83  ode, \
84  SolidChem, \
85  Comp, \
86  SThermo, \
87  GThermo \
88  );
89 
90 
91 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
92 
93 } // End namespace Foam
94 
95 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
96 
97 #endif
98 
99 // ************************************************************************* //
noChemistrySolver.H
ode.H
EulerImplicit.H
addToRunTimeSelectionTable.H
Macros for easy insertion into run-time selection tables.
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33