1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright held by original author
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
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 the
13 Free Software Foundation; either version 2 of the License, or (at your
14 option) any later version.
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
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM; if not, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 Foam::makeReactionThermo
29 Macros for instantiating reactions on given thermo packages
31 \*---------------------------------------------------------------------------*/
33 #ifndef makeReactionThermo_H
34 #define makeReactionThermo_H
38 #include "IrreversibleReaction.H"
39 #include "ReversibleReaction.H"
40 #include "NonEquilibriumReversibleReaction.H"
42 #include "specieThermo.H"
44 #include "sutherlandTransport.H"
45 #include "janafThermo.H"
46 #include "perfectGas.H"
48 #include "polynomialTransport.H"
49 #include "hPolynomialThermo.H"
50 #include "icoPolynomial.H"
52 #include "addToRunTimeSelectionTable.H"
54 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
59 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61 #define makeReaction(Thermo, ReactionType, ReactionRate) \
63 typedef Reaction<Thermo> Reaction##Thermo; \
65 typedef ReactionType<Thermo, ReactionRate> \
66 ReactionType##Thermo##ReactionRate; \
69 const word ReactionType##Thermo##ReactionRate::typeName \
71 ReactionType::typeName_() \
72 + ReactionRate::type() \
73 + Reaction##Thermo::typeName_() \
76 addToRunTimeSelectionTable \
79 ReactionType##Thermo##ReactionRate, \
84 #define makePressureDependentReaction(Thermo, Reaction, PressureDependentReactionRate, ReactionRate, FallOffFunction) \
86 typedef PressureDependentReactionRate<ReactionRate, FallOffFunction> \
87 PressureDependentReactionRate##ReactionRate##FallOffFunction; \
93 PressureDependentReactionRate##ReactionRate##FallOffFunction \
97 #define makeIRReactions(Thermo, ReactionRate) \
99 makeReaction(Thermo, IrreversibleReaction, ReactionRate) \
101 makeReaction(Thermo, ReversibleReaction, ReactionRate)
104 #define makeIRNReactions(Thermo, ReactionRate) \
106 makeIRReactions(Thermo, ReactionRate) \
108 makeReaction(Thermo, NonEquilibriumReversibleReaction, ReactionRate)
111 #define makePressureDependentReactions(Thermo, ReactionRate, FallOffFunction) \
113 makePressureDependentReaction \
116 IrreversibleReaction, \
117 FallOffReactionRate, \
122 makePressureDependentReaction \
125 ReversibleReaction, \
126 FallOffReactionRate, \
131 makePressureDependentReaction \
134 IrreversibleReaction, \
135 ChemicallyActivatedReactionRate, \
140 makePressureDependentReaction \
143 ReversibleReaction, \
144 ChemicallyActivatedReactionRate, \
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
152 } // End namespace Foam
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
158 // ************************************************************************* //