16#include "cantera/kinetics/Falloff.h"
49 reg(
"constant-vibrational-relaxation",
55 reg(
"multi-state-resolved-vibrational-relaxation",
61 reg(
"Starikovskiy-vibrational-relaxation",
67 reg(
"Castela-vibrational-relaxation",
90 return new TroeRate(node, rate_units);
95 return new SriRate(node, rate_units);
104 reg(
"pressure-dependent-Arrhenius", [](
const AnyMap& node,
const UnitStack& rate_units) {
105 return new PlogRate(node, rate_units);
145 std::unique_lock<std::mutex> lock(
rate_mutex);
153 std::unique_lock<std::mutex> lock(
rate_mutex);
160 return shared_ptr<ReactionRate> (
168 if (rate_node.
hasKey(
"type")) {
169 type = rate_node[
"type"].asString();
172 if (type ==
"falloff" || type ==
"chemically-activated") {
173 if (rate_node.
hasKey(
"Troe")) {
175 }
else if (rate_node.
hasKey(
"SRI")) {
177 }
else if (rate_node.
hasKey(
"Tsang")) {
185 throw InputFileError(
"ReactionRateFactory::newReactionRate", rate_node,
186 "Unknown reaction rate type '{}'", type);
189 return shared_ptr<ReactionRate> (
Header for reaction rates that involve Arrhenius-type kinetics.
Castela vibrational relaxation reaction rate.
Constant vibrational relaxation reaction rate.
Header for plasma reaction rates parameterized by electron collision cross section and electron energ...
Header for reaction rates that occur at interfaces.
Base class for kinetics managers and also contains the kineticsmgr module documentation (see Kinetics...
Multi-state-resolved vibrational relaxation reaction rate.
Factory class for reaction rate objects.
Starikovskiy vibrational relaxation reaction rate.
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).
Header for vibrational relaxation reaction rates in plasma kinetics.
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.
Castela vibrational relaxation rate implementation.
Pressure-dependent rate expression where the rate coefficient is expressed as a bivariate Chebyshev p...
Constant vibrational relaxation rate implementation.
Custom reaction rate depending only on temperature.
Electron collision plasma reaction rate type.
void reg(const string &name, function< ReactionRate *(Args...)> f)
void addAlias(const string &original, const string &alias)
The Lindemann falloff parameterization.
Pressure-dependent and composition-dependent reaction rate calculated according to the reduced-pressu...
Multi-state-resolved vibrational relaxation rate implementation.
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.
Starikovskiy vibrational relaxation rate implementation.
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.