38 setupElementaryReaction(*R, node, kin);
48 addAlias(
"three-body",
"three_body");
54 setupThreeBodyReaction(*R, node, kin);
63 addAlias(
"falloff",
"chemically-activated");
69 setupFalloffReaction(*R, node, kin);
78 setupFalloffReaction(*R, node, kin);
82 addAlias(
"chemically-activated-legacy",
"chemact");
83 addAlias(
"chemically-activated-legacy",
"chemically_activated");
85 addAlias(
"reaction",
"pressure-dependent-Arrhenius");
87 addAlias(
"reaction",
"pdep_arrhenius");
90 reg(
"pressure-dependent-Arrhenius-legacy", [](
const AnyMap& node,
const Kinetics& kin) {
93 setupPlogReaction(*R, node, kin);
104 setupChebyshevReaction(*R, node, kin);
118 setupInterfaceReaction(*R, node, kin);
122 addAlias(
"interface-legacy",
"interface");
123 addAlias(
"interface-legacy",
"surface");
124 addAlias(
"interface-legacy",
"edge");
126 addAlias(
"reaction",
"interface-Arrhenius");
127 addAlias(
"reaction",
"sticking-Arrhenius");
133 setupElectrochemicalReaction(*R, node, kin);
137 addAlias(
"electrochemical-legacy",
"electrochemical");
139 addAlias(
"reaction",
"two-temperature-plasma");
141 addAlias(
"reaction",
"Blowers-Masel");
142 addAlias(
"reaction",
"interface-Blowers-Masel");
143 addAlias(
"reaction",
"sticking-Blowers-Masel");
146ReactionFactoryXML* ReactionFactoryXML::s_factory = 0;
147std::mutex ReactionFactoryXML::reaction_mutex;
149ReactionFactoryXML::ReactionFactoryXML()
152 reg(
"elementary-legacy", [](
const XML_Node& node) {
157 addAlias(
"elementary-legacy",
"elementary");
158 addAlias(
"elementary-legacy",
"arrhenius");
159 addAlias(
"elementary-legacy",
"");
162 reg(
"three-body-legacy", [](
const XML_Node& node) {
163 Reaction* R =
new ThreeBodyReaction2();
164 setupThreeBodyReaction(*(ThreeBodyReaction2*)R, node);
167 addAlias(
"three-body-legacy",
"three-body");
168 addAlias(
"three-body-legacy",
"threebody");
169 addAlias(
"three-body-legacy",
"three_body");
172 reg(
"falloff-legacy", [](
const XML_Node& node) {
173 Reaction* R =
new FalloffReaction2();
174 setupFalloffReaction(*(FalloffReaction2*)R, node);
177 addAlias(
"falloff-legacy",
"falloff");
180 reg(
"chemically-activated-legacy", [](
const XML_Node& node) {
181 Reaction* R =
new ChemicallyActivatedReaction2();
185 addAlias(
"chemically-activated-legacy",
"chemically-activated");
186 addAlias(
"chemically-activated-legacy",
"chemact");
187 addAlias(
"chemically-activated-legacy",
"chemically_activated");
190 reg(
"pressure-dependent-Arrhenius-legacy", [](
const XML_Node& node) {
191 Reaction* R =
new PlogReaction2();
192 setupPlogReaction(*(PlogReaction2*)R, node);
195 addAlias(
"pressure-dependent-Arrhenius-legacy",
"pressure-dependent-Arrhenius");
196 addAlias(
"pressure-dependent-Arrhenius-legacy",
"plog");
197 addAlias(
"pressure-dependent-Arrhenius-legacy",
"pdep_arrhenius");
200 reg(
"Chebyshev-legacy", [](
const XML_Node& node) {
201 Reaction* R =
new ChebyshevReaction2();
202 setupChebyshevReaction(*(ChebyshevReaction2*)R, node);
205 addAlias(
"Chebyshev-legacy",
"chebyshev");
208 reg(
"interface-legacy", [](
const XML_Node& node) {
209 Reaction* R =
new InterfaceReaction2();
210 setupInterfaceReaction(*(InterfaceReaction2*)R, node);
213 addAlias(
"interface-legacy",
"interface");
214 addAlias(
"interface-legacy",
"surface");
215 addAlias(
"interface-legacy",
"edge");
218 reg(
"electrochemical-legacy", [](
const XML_Node& node) {
219 Reaction* R =
new ElectrochemicalReaction2();
220 setupElectrochemicalReaction(*(ElectrochemicalReaction2*)R, node);
223 addAlias(
"electrochemical-legacy",
"electrochemical");
Base class for kinetics managers and also contains the kineticsmgr module documentation (see Kinetics...
Factory class for reaction functions.
Factory class for reaction rate objects.
Header file for class ThermoPhase, the base class for phases with thermodynamic properties,...
A map of string keys to values whose type can vary at runtime.
bool empty() const
Return boolean indicating whether AnyMap is empty.
A pressure-dependent reaction parameterized by a bi-variate Chebyshev polynomial in temperature and p...
A reaction where the rate decreases as pressure increases due to collisional stabilization of a react...
A reaction which follows mass-action kinetics with a custom reaction rate defined in Python.
An interface reaction which involves charged species.
A reaction which follows mass-action kinetics with a modified Arrhenius reaction rate.
void addAlias(const std::string &original, const std::string &alias)
Add an alias for an existing registered type.
void reg(const std::string &name, std::function< Reaction *(Args...)> f)
Register a new object construction function.
A reaction that is first-order in [M] at low pressure, like a third-body reaction,...
A falloff reaction that is first-order in [M] at low pressure, like a third-body reaction,...
A reaction occurring on an interface (for example, a SurfPhase or an EdgePhase)
Public interface for kinetics managers.
A pressure-dependent reaction parameterized by logarithmically interpolating between Arrhenius rate e...
ReactionFactory()
default constructor, which is defined as private
static std::mutex reaction_mutex
Mutex for use when calling the factory.
static ReactionFactory * s_factory
Pointer to the single instance of the factory.
Abstract base class which stores data about a reaction and its rate parameterization so that it can b...
A reaction with a non-reacting third body "M" that acts to add or remove energy from the reacting spe...
A reaction with a non-reacting third body "M" that acts to add or remove energy from the reacting spe...
Class XML_Node is a tree-based representation of the contents of an XML file.
CTML ("Cantera Markup Language") is the variant of XML that Cantera uses to store data.
Namespace for the Cantera kernel.
void setupChemicallyActivatedReaction(ChemicallyActivatedReaction2 &, const XML_Node &)
Contains declarations for string manipulation functions within Cantera.