32 #ifndef makeReaction_H
33 #define makeReaction_H
45 #define defineReaction(nullArg, ThermoPhysics) \
47 typedef Reaction<ThermoPhysics> Reaction##ThermoPhysics; \
49 defineTemplateTypeNameAndDebug(Reaction##ThermoPhysics, 0); \
51 defineTemplateRunTimeSelectionTable(Reaction##ThermoPhysics, dictionary) \
52 defineTemplateRunTimeSelectionTable \
54 Reaction##ThermoPhysics, \
59 #define makeReaction(ReactionType, ReactionRate, ThermoPhysics) \
61 typedef Reaction<ThermoPhysics> Reaction##ThermoPhysics; \
62 typedef ReactionType<ThermoPhysics, ReactionRate> \
63 ReactionType##ThermoPhysics##ReactionRate; \
66 const word ReactionType##ThermoPhysics##ReactionRate::typeName \
68 ReactionType::typeName_() \
69 + ReactionRate::type().capitalise() \
72 addToRunTimeSelectionTable \
74 Reaction##ThermoPhysics, \
75 ReactionType##ThermoPhysics##ReactionRate, \
80 #define makeGeneralReaction(ReactionType, ReactionRate, ThermoPhysics) \
82 typedef Reaction<ThermoPhysics> Reaction##ThermoPhysics; \
83 typedef ReactionType<ThermoPhysics, ReactionRate> \
84 ReactionType##ThermoPhysics##ReactionRate; \
87 const word ReactionType##ThermoPhysics##ReactionRate::typeName \
89 ReactionType::typeName_() \
90 + ReactionRate::type().capitalise() \
93 addToRunTimeSelectionTable \
95 Reaction##ThermoPhysics, \
96 ReactionType##ThermoPhysics##ReactionRate, \
101 #define makeIReactions(ReactionRate, ThermoPhysics) \
103 makeReaction(IrreversibleReaction, ReactionRate, ThermoPhysics)
106 #define makeIRReactions(ReactionRate, ThermoPhysics) \
108 makeIReactions(ReactionRate, ThermoPhysics); \
109 makeReaction(ReversibleReaction, ReactionRate, ThermoPhysics)
112 #define makeIRNReactions(ReactionRate, ThermoPhysics) \
114 makeIRReactions(ReactionRate, ThermoPhysics); \
115 makeReaction(NonEquilibriumReversibleReaction, ReactionRate, ThermoPhysics)
118 #define makeITemplate1Reactions(ReactionRate, Param, ThermoPhysics) \
120 typedef ReactionRate<Param> ReactionRate##Param; \
124 IrreversibleReaction, \
125 ReactionRate##Param, \
130 #define makeIRTemplate1Reactions(ReactionRate, Param, ThermoPhysics) \
132 makeITemplate1Reactions(ReactionRate, Param, ThermoPhysics); \
136 ReversibleReaction, \
137 ReactionRate##Param, \
142 #define makeITemplate2Reactions(ReactionRate, Param1, Param2, ThermoPhysics) \
144 typedef ReactionRate<Param1, Param2> ReactionRate##Param1##Param2; \
148 IrreversibleReaction, \
149 ReactionRate##Param1##Param2, \
154 #define makeIRTemplate2Reactions(ReactionRate, Param1, Param2, ThermoPhysics) \
156 makeITemplate2Reactions(ReactionRate, Param1, Param2, ThermoPhysics); \
160 ReversibleReaction, \
161 ReactionRate##Param1##Param2, \
Macros for easy insertion into run-time selection tables.