37 shared_ptr<ReactionRate>
rate={});
64 virtual std::string
type()
const;
171 shared_ptr<ReactionRate>
rate() {
202 virtual std::pair<std::vector<std::string>,
bool>
227 virtual std::string
type()
const {
228 return "elementary-legacy";
232 bool allow_negative_pre_exponential_factor;
248 double efficiency(
const std::string& k)
const;
275 virtual std::string
type()
const {
276 return "three-body-legacy";
289 virtual std::pair<std::vector<std::string>,
bool>
304 virtual std::string
type()
const {
305 return "falloff-legacy";
329 bool allow_negative_pre_exponential_factor;
353 virtual std::string
type()
const {
354 return "chemically-activated-legacy";
371 virtual std::string
type()
const {
372 return "pressure-dependent-Arrhenius-legacy";
393 virtual std::string
type()
const {
394 return "Chebyshev-legacy";
430 virtual std::string
type()
const {
431 return "interface-legacy";
468 bool exchange_current_density_formulation;
483 virtual std::string
type()
const {
488 bool detectEfficiencies();
512 virtual std::string
type()
const;
538 virtual std::string
type()
const {
539 return "custom-rate-function";
544#ifdef CT_NO_LEGACY_REACTIONS_26
545typedef ThreeBodyReaction3 ThreeBodyReaction;
546typedef FalloffReaction3 FalloffReaction;
548typedef ElementaryReaction2 ElementaryReaction;
549typedef ThreeBodyReaction2 ThreeBodyReaction;
550typedef FalloffReaction2 FalloffReaction;
551typedef ChemicallyActivatedReaction2 ChemicallyActivatedReaction;
552typedef PlogReaction2 PlogReaction;
553typedef ChebyshevReaction2 ChebyshevReaction;
554typedef InterfaceReaction2 InterfaceReaction;
555typedef ElectrochemicalReaction2 ElectrochemicalReaction;
563unique_ptr<Reaction>
newReaction(
const std::string& type);
569unique_ptr<Reaction>
newReaction(
const XML_Node& rxn_node);
576unique_ptr<Reaction>
newReaction(
const AnyMap& rxn_node,
577 const Kinetics& kin);
600std::vector<shared_ptr<Reaction> >
getReactions(
const XML_Node& node);
605std::vector<shared_ptr<Reaction>>
getReactions(
const AnyValue& items,
610 const AnyBase& reactionNode,
const Kinetics* kin);
613void setupReaction(Reaction& R,
const XML_Node& rxn_node);
615void setupElementaryReaction(ElementaryReaction2&,
const XML_Node&);
617void setupElementaryReaction(ElementaryReaction2&,
const AnyMap&,
620void setupThreeBodyReaction(ThreeBodyReaction2&,
const XML_Node&);
622void setupThreeBodyReaction(ThreeBodyReaction2&,
const AnyMap&,
625void setupFalloffReaction(FalloffReaction2&,
const XML_Node&);
627void setupFalloffReaction(FalloffReaction2&,
const AnyMap&,
634void setupPlogReaction(PlogReaction2&,
const XML_Node&);
636void setupPlogReaction(PlogReaction2&,
const AnyMap&,
const Kinetics&);
638void setupChebyshevReaction(ChebyshevReaction2&,
const XML_Node&);
640void setupChebyshevReaction(ChebyshevReaction2&,
const AnyMap&,
643void setupInterfaceReaction(InterfaceReaction2&,
const XML_Node&);
645void setupInterfaceReaction(InterfaceReaction2&,
const AnyMap&,
648void setupElectrochemicalReaction(ElectrochemicalReaction2&,
651void setupElectrochemicalReaction(ElectrochemicalReaction2&,
652 const AnyMap&,
const Kinetics&);
Header for reaction rates that occur at interfaces.
Header for unit conversion utilities, which are used to translate user input from input files (See In...
A map of string keys to values whose type can vary at runtime.
Arrhenius reaction rate type depends only on temperature.
Arrhenius reaction rate type depends only on temperature.
Pressure-dependent rate expression where the rate coefficient is expressed as a bivariate Chebyshev p...
A pressure-dependent reaction parameterized by a bi-variate Chebyshev polynomial in temperature and p...
virtual std::string type() const
The type of reaction.
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
A reaction where the rate decreases as pressure increases due to collisional stabilization of a react...
virtual void calculateRateCoeffUnits(const Kinetics &kin)
Calculate the units of the rate constant.
virtual std::string type() const
The type of reaction.
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
Custom reaction rate depending only on temperature.
A reaction which follows mass-action kinetics with a custom reaction rate defined in Python.
virtual std::string type() const
The type of reaction.
An interface reaction which involves charged species.
doublereal beta
Forward value of the apparent Electrochemical transfer coefficient.
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
A reaction which follows mass-action kinetics with a modified Arrhenius reaction rate.
virtual void validate()
Ensure that the rate constant and other parameters for this reaction are valid.
virtual std::string type() const
The type of reaction.
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
A reaction that is first-order in [M] at low pressure, like a third-body reaction,...
virtual std::string reactantString() const
The reactant side of the chemical equation for this reaction.
virtual void calculateRateCoeffUnits(const Kinetics &kin)
Calculate the units of the rate constant.
shared_ptr< FalloffRate > falloff
Falloff function which determines how low_rate and high_rate are combined to determine the rate const...
virtual void validate()
Ensure that the rate constant and other parameters for this reaction are valid.
virtual std::string productString() const
The product side of the chemical equation for this reaction.
Units low_rate_units
The units of the low-pressure rate constant.
Arrhenius2 high_rate
The rate constant in the high-pressure limit.
ThirdBody third_body
Relative efficiencies of third-body species in enhancing the reaction rate.
virtual std::string type() const
The type of reaction.
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
Arrhenius2 low_rate
The rate constant in the low-pressure limit.
virtual std::pair< std::vector< std::string >, bool > undeclaredThirdBodies(const Kinetics &kin) const
A falloff reaction that is first-order in [M] at low pressure, like a third-body reaction,...
virtual void setParameters(const AnyMap &node, const Kinetics &kin)
Set up reaction based on AnyMap node
virtual std::string reactantString() const
The reactant side of the chemical equation for this reaction.
virtual std::string productString() const
The product side of the chemical equation for this reaction.
virtual std::string type() const
The type of reaction.
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
virtual void setEquation(const std::string &equation, const Kinetics *kin)
Set the reactants and products based on the reaction equation.
A reaction occurring on an interface (for example, a SurfPhase or an EdgePhase)
bool is_sticking_coefficient
Set to true if rate is a parameterization of the sticking coefficient rather than the forward rate co...
std::map< std::string, CoverageDependency > coverage_deps
Adjustments to the Arrhenius rate expression dependent on surface species coverages.
virtual void calculateRateCoeffUnits(const Kinetics &kin)
Calculate the units of the rate constant.
virtual void validate()
Ensure that the rate constant and other parameters for this reaction are valid.
std::string sticking_species
For reactions with multiple non-surface species, the sticking species needs to be explicitly identifi...
virtual std::string type() const
The type of reaction.
bool use_motz_wise_correction
Set to true if rate is a sticking coefficient which should be translated into a rate coefficient usin...
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
Public interface for kinetics managers.
Pressure-dependent reaction rate expressed by logarithmically interpolating between Arrhenius rate ex...
A pressure-dependent reaction parameterized by logarithmically interpolating between Arrhenius rate e...
virtual void validate()
Ensure that the rate constant and other parameters for this reaction are valid.
virtual std::string type() const
The type of reaction.
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
Abstract base class for reaction rate definitions; this base class is used by user-facing APIs to acc...
Abstract base class which stores data about a reaction and its rate parameterization so that it can b...
virtual void setParameters(const AnyMap &node, const Kinetics &kin)
Set up reaction based on AnyMap node
virtual std::string reactantString() const
The reactant side of the chemical equation for this reaction.
void checkBalance(const Kinetics &kin) const
Check that the specified reaction is balanced (same number of atoms for each element in the reactants...
Units rate_units
The units of the rate constant.
bool valid() const
Get validity flag of reaction.
virtual void calculateRateCoeffUnits(const Kinetics &kin)
Calculate the units of the rate constant.
shared_ptr< ReactionRate > rate()
Get reaction rate pointer.
Composition orders
Forward reaction order with respect to specific species.
virtual void validate()
Ensure that the rate constant and other parameters for this reaction are valid.
bool checkSpecies(const Kinetics &kin) const
Verify that all species involved in the reaction are defined in the Kinetics object.
void setRate(shared_ptr< ReactionRate > rate)
Set reaction rate pointer.
shared_ptr< ThirdBody > m_third_body
Relative efficiencies of third-body species in enhancing the reaction rate (if applicable)
AnyMap parameters(bool withInput=true) const
Return the parameters such that an identical Reaction could be reconstructed using the newReaction() ...
virtual void validate(Kinetics &kin)
Perform validation checks that need access to a complete Kinetics objects, for.
virtual void setEquation(const std::string &equation, const Kinetics *kin=0)
Set the reactants and products based on the reaction equation.
virtual std::string productString() const
The product side of the chemical equation for this reaction.
shared_ptr< ThirdBody > thirdBody()
Get pointer to third-body.
bool m_valid
Flag indicating whether reaction is set up correctly.
bool reversible
True if the current reaction is reversible. False otherwise.
bool allow_nonreactant_orders
True if reaction orders can be specified for non-reactant species.
virtual std::string type() const
The type of reaction.
shared_ptr< ReactionRate > m_rate
Reaction rate used by generic reactions.
bool usesLegacy() const
Indicate whether object uses legacy framework.
bool usesElectrochemistry(const Kinetics &kin) const
Check whether reaction uses electrochemistry.
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
bool allow_negative_orders
True if negative reaction orders are allowed. Default is false.
Composition products
Product species and stoichiometric coefficients.
Composition reactants
Reactant species and stoichiometric coefficients.
AnyMap input
Input data used for specific models.
bool duplicate
True if the current reaction is marked as duplicate.
UnitStack calculateRateCoeffUnits3(const Kinetics &kin)
Calculate the units of the rate constant.
int reaction_type
Type of the reaction.
std::string equation() const
The chemical equation for this reaction.
virtual std::pair< std::vector< std::string >, bool > undeclaredThirdBodies(const Kinetics &kin) const
std::string id
An identification string for the reaction, used in some filtering operations.
void setValid(bool valid)
Set validity flag of reaction.
A class for managing third-body efficiencies, including default values.
bool specified_collision_partner
Input explicitly specifies collision partner.
void setEfficiencies(const AnyMap &node)
Set third-body efficiencies from AnyMap node
double default_efficiency
The default third body efficiency for species not listed in efficiencies.
double efficiency(const std::string &k) const
Get the third-body efficiency for species k
Composition efficiencies
Map of species to third body efficiency.
bool mass_action
Third body is used by law of mass action (true for three-body reactions, false for falloff reactions)
A reaction with a non-reacting third body "M" that acts to add or remove energy from the reacting spe...
virtual std::string reactantString() const
The reactant side of the chemical equation for this reaction.
virtual void calculateRateCoeffUnits(const Kinetics &kin)
Calculate the units of the rate constant.
virtual std::string productString() const
The product side of the chemical equation for this reaction.
ThirdBody third_body
Relative efficiencies of third-body species in enhancing the reaction rate.
virtual std::string type() const
The type of reaction.
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
virtual std::pair< std::vector< std::string >, bool > undeclaredThirdBodies(const Kinetics &kin) const
A reaction with a non-reacting third body "M" that acts to add or remove energy from the reacting spe...
virtual void setParameters(const AnyMap &node, const Kinetics &kin)
Set up reaction based on AnyMap node
virtual std::string reactantString() const
The reactant side of the chemical equation for this reaction.
virtual void setEquation(const std::string &equation, const Kinetics *kin=0)
Set the reactants and products based on the reaction equation.
virtual std::string productString() const
The product side of the chemical equation for this reaction.
virtual std::string type() const
The type of reaction.
virtual void getParameters(AnyMap &reactionNode) const
Store the parameters of a Reaction needed to reconstruct an identical object using the newReaction(An...
A representation of the units associated with a dimensional quantity.
Namespace for the Cantera kernel.
void parseReactionEquation(Reaction &R, const std::string &equation, const AnyBase &reactionNode, const Kinetics *kin)
Parse reaction equation.
std::vector< shared_ptr< Reaction > > getReactions(const XML_Node &node)
Create Reaction objects for all <reaction> nodes in an XML document.
std::map< std::string, double > Composition
Map from string names to doubles.
void setupChemicallyActivatedReaction(ChemicallyActivatedReaction2 &, const XML_Node &)
unique_ptr< Reaction > newReaction(const std::string &type)
Create a new empty Reaction object.
Modifications to an InterfaceReaction2 rate based on a surface species coverage.
double a
coefficient for exponential dependence on coverage [dimensionless]
double E
modification to the activation energy [K]
double m
exponent for power law dependence on coverage [dimensionless]
CoverageDependency(double a_, double E_, double m_)
Constructor.
Unit aggregation utility.