makeChemistrySolverTypes.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-------------------------------------------------------------------------------
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
26\*---------------------------------------------------------------------------*/
27
28#ifndef makeChemistrySolverTypes_H
29#define makeChemistrySolverTypes_H
30
31#include "chemistrySolver.H"
32
34#include "TDACChemistryModel.H"
35
36#include "noChemistrySolver.H"
37#include "EulerImplicit.H"
38#include "ode.H"
39
40// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41
42#define makeChemistrySolverType(SS, Comp, Thermo) \
43 \
44 typedef SS<StandardChemistryModel<Comp, Thermo>> SS##Comp##Thermo; \
45 \
46 defineTemplateTypeNameAndDebugWithName \
47 ( \
48 SS##Comp##Thermo, \
49 (#SS"<" + word(StandardChemistryModel<Comp, Thermo>::typeName_()) + "<"\
50 + word(Comp::typeName_()) + "," + Thermo::typeName() + ">>").c_str(), \
51 0 \
52 ); \
53 \
54 BasicChemistryModel<Comp>:: \
55 add##thermo##ConstructorToTable<SS##Comp##Thermo> \
56 add##SS##Comp##Thermo##thermo##ConstructorTo##BasicChemistryModel##Comp\
57##Table_; \
58 \
59 typedef SS<TDACChemistryModel<Comp, Thermo>> TDAC##SS##Comp##Thermo; \
60 \
61 defineTemplateTypeNameAndDebugWithName \
62 ( \
63 TDAC##SS##Comp##Thermo, \
64 (#SS"<" + word(TDACChemistryModel<Comp, Thermo>::typeName_()) + "<" \
65 + word(Comp::typeName_()) + "," + Thermo::typeName() + ">>").c_str(), \
66 0 \
67 ); \
68 \
69 BasicChemistryModel<Comp>:: \
70 add##thermo##ConstructorToTable<TDAC##SS##Comp##Thermo> \
71 add##TDAC##SS##Comp##Thermo##thermo##ConstructorTo##BasicChemistryModel\
72##Comp##Table_;
73
74
75#define makeChemistrySolverTypes(Comp, Thermo) \
76 \
77 makeChemistrySolverType \
78 ( \
79 noChemistrySolver, \
80 Comp, \
81 Thermo \
82 ); \
83 \
84 makeChemistrySolverType \
85 ( \
86 EulerImplicit, \
87 Comp, \
88 Thermo \
89 ); \
90 \
91 makeChemistrySolverType \
92 ( \
93 ode, \
94 Comp, \
95 Thermo \
96 ); \
97
98
99// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
100
101#endif
102
103// ************************************************************************* //