15#include "cantera/kinetics/Falloff.h"
54 return new TroeRate(node, rate_units);
59 return new SriRate(node, rate_units);
68 reg(
"pressure-dependent-Arrhenius", [](
const AnyMap& node,
const UnitStack& rate_units) {
69 return new PlogRate(node, rate_units);
104 std::unique_lock<std::mutex> lock(
rate_mutex);
112 std::unique_lock<std::mutex> lock(
rate_mutex);
119 return shared_ptr<ReactionRate> (
127 if (rate_node.
hasKey(
"type")) {
128 type = rate_node[
"type"].asString();
131 if (type ==
"falloff" || type ==
"chemically-activated") {
132 if (rate_node.
hasKey(
"Troe")) {
134 }
else if (rate_node.
hasKey(
"SRI")) {
136 }
else if (rate_node.
hasKey(
"Tsang")) {
144 throw InputFileError(
"ReactionRateFactory::newReactionRate", rate_node,
145 "Unknown reaction rate type '{}'", type);
148 return shared_ptr<ReactionRate> (
Header for reaction rates that involve Arrhenius-type kinetics.
Header for reaction rates that occur at interfaces.
Base class for kinetics managers and also contains the kineticsmgr module documentation (see Kinetics...
Factory class for reaction rate objects.
Header file for class ThermoPhase, the base class for phases with thermodynamic properties,...
Header for plasma reaction rates parameterized by two temperatures (gas and electron).
A map of string keys to values whose type can vary at runtime.
bool hasKey(const string &key) const
Returns true if the map contains an item named key.
Arrhenius reaction rate type depends only on temperature.
Blowers Masel reaction rate type depends on the enthalpy of reaction.
Pressure-dependent rate expression where the rate coefficient is expressed as a bivariate Chebyshev p...
Custom reaction rate depending only on temperature.
void reg(const string &name, function< ReactionRate *(Args...)> f)
Register a new object construction function.
void addAlias(const string &original, const string &alias)
Add an alias for an existing registered type.
The Lindemann falloff parameterization.
Pressure-dependent reaction rate expressed by logarithmically interpolating between Arrhenius rate ex...
Factory class to construct reaction rate calculators.
static ReactionRateFactory * s_factory
Pointer to the single instance of the factory.
ReactionRateFactory()
default constructor, which is defined as private
void deleteFactory() override
Virtual abstract function that deletes the factory.
static std::mutex rate_mutex
Mutex for use when calling the factory.
static ReactionRateFactory * factory()
Return a pointer to the factory.
The SRI falloff function.
The 3- or 4-parameter Troe falloff parameterization.
The 1- or 2-parameter Tsang falloff parameterization.
Two temperature plasma reaction rate type depends on both gas temperature and electron temperature.
shared_ptr< ReactionRate > newReactionRate(const string &type)
Create a new empty ReactionRate object.
InterfaceRate< BlowersMaselRate, InterfaceData > InterfaceBlowersMaselRate
Blowers-Masel-type interface reaction rate specifications.
StickingRate< ArrheniusRate, InterfaceData > StickingArrheniusRate
Arrhenius-type interface sticking rate specifications.
StickingRate< BlowersMaselRate, InterfaceData > StickingBlowersMaselRate
Blowers-Masel-type interface sticking rate specifications.
InterfaceRate< ArrheniusRate, InterfaceData > InterfaceArrheniusRate
Arrhenius-type interface reaction rate specifications.
Namespace for the Cantera kernel.
Unit aggregation utility.