Cantera 2.6.0
|
Abstract base class for reaction rate definitions; this base class is used by user-facing APIs to access reaction rate objects. More...
#include <ReactionRate.h>
Public Member Functions | |
ReactionRate (const ReactionRate &other) | |
ReactionRate & | operator= (const ReactionRate &other) |
virtual unique_ptr< MultiRateBase > | newMultiRate () const |
Create a rate evaluator for reactions of a particular derived type. More... | |
virtual const std::string | type () const =0 |
String identifying reaction rate specialization. More... | |
virtual void | setParameters (const AnyMap &node, const UnitStack &units) |
Set parameters. More... | |
AnyMap | parameters () const |
Return the parameters such that an identical Reaction could be reconstructed using the newReaction() function. More... | |
virtual void | check (const std::string &equation, const AnyMap &node) |
Check basic syntax and settings of reaction rate expression. More... | |
virtual void | validate (const std::string &equation, const Kinetics &kin) |
Validate the reaction rate expression. More... | |
virtual void | validate (const std::string &equation) |
Validate the reaction rate expression (legacy call) More... | |
size_t | rateIndex () const |
Reaction rate index within kinetics evaluator. More... | |
void | setRateIndex (size_t idx) |
Set reaction rate index within kinetics evaluator. More... | |
virtual void | setContext (const Reaction &rxn, const Kinetics &kin) |
Set context of reaction rate evaluation. More... | |
double | eval (double T) |
Evaluate reaction rate based on temperature. More... | |
double | eval (double T, double extra) |
Evaluate reaction rate based on temperature and an extra parameter. More... | |
double | eval (double T, const std::vector< double > &extra) |
Evaluate reaction rate based on temperature and an extra vector parameter. More... | |
Protected Member Functions | |
virtual void | getParameters (AnyMap &node) const |
Get parameters. More... | |
Protected Attributes | |
AnyMap | m_input |
Input data used for specific models. More... | |
size_t | m_rate_index |
Index of reaction rate within kinetics evaluator. More... | |
Private Member Functions | |
MultiRateBase & | _evaluator () |
Return an object that be used to evaluate the rate by converting general input such as temperature and pressure into the DataType struct that is particular to the rate model. More... | |
Private Attributes | |
unique_ptr< MultiRateBase > | m_evaluator |
Abstract base class for reaction rate definitions; this base class is used by user-facing APIs to access reaction rate objects.
In addition to the pure virtual methods declared in this class, complete derived classes must implement the method evalFromStruct(const DataType& shared_data)
, where DataType
is a container for parameters needed to evaluate reactions of that type. In addition, derived classes may also implement the method updateFromStruct(const DataType& shared_data)
to update buffered data that is specific to a given reaction rate.
The calculation of derivatives (or Jacobians) relies on the following methods:
ddTScaledFromStruct(const DataType& shared_data)
for an analytical derivative with respect to temperature.DataType
containers may overload the method perturbTemperature(double deltaT)
, which is used for the calculation of numerical derivatives with respect to temperature if an analytic implementation is not available.DataType
containers should implement the methods perturbPressure(double deltaP)
and/or perturbThirdBodies(double deltaM)
, which allow for the calculation of numerical derivatives. Definition at line 44 of file ReactionRate.h.
|
inline |
Definition at line 47 of file ReactionRate.h.
|
inline |
Definition at line 51 of file ReactionRate.h.
|
inline |
Definition at line 56 of file ReactionRate.h.
|
inlinevirtual |
Create a rate evaluator for reactions of a particular derived type.
Derived classes usually implement this as:
where RateType
is the derived class name and DataType
is the corresponding container for parameters needed to evaluate reactions of that type.
Reimplemented in ChebyshevRate, LindemannRate, TroeRate, SriRate, TsangRate, PlogRate, ArrheniusRate, BlowersMaselRate, CustomFunc1Rate, and TwoTempPlasmaRate.
Definition at line 77 of file ReactionRate.h.
References ReactionRate::type().
Referenced by ReactionRate::_evaluator().
|
pure virtual |
String identifying reaction rate specialization.
Implemented in ChebyshevRate, FalloffRate, LindemannRate, TroeRate, SriRate, TsangRate, PlogRate, ArrheniusRate, BlowersMaselRate, CustomFunc1Rate, Arrhenius2, and TwoTempPlasmaRate.
Referenced by ReactionRate::getParameters(), ArrheniusBase::getParameters(), ReactionRate::newMultiRate(), and MultiRate< RateType, DataType >::replace().
Set parameters.
node | AnyMap object containing reaction rate specification |
units | unit definitions specific to rate information |
Reimplemented in FalloffRate, TroeRate, SriRate, TsangRate, ArrheniusBase, ChebyshevRate, and PlogRate.
Definition at line 88 of file ReactionRate.h.
References ReactionRate::m_input.
Referenced by ArrheniusBase::setParameters().
|
inline |
Return the parameters such that an identical Reaction could be reconstructed using the newReaction() function.
Behavior specific to derived classes is handled by the getParameters() method.
Definition at line 95 of file ReactionRate.h.
References ReactionRate::getParameters().
|
inlinevirtual |
Check basic syntax and settings of reaction rate expression.
Reimplemented in FalloffRate, and ArrheniusBase.
Definition at line 102 of file ReactionRate.h.
|
inlinevirtual |
Validate the reaction rate expression.
Reimplemented in ChebyshevRate, FalloffRate, PlogRate, ArrheniusBase, and CustomFunc1Rate.
Definition at line 105 of file ReactionRate.h.
|
inlinevirtual |
Validate the reaction rate expression (legacy call)
Reimplemented in PlogRate.
Definition at line 109 of file ReactionRate.h.
|
inline |
Reaction rate index within kinetics evaluator.
Definition at line 112 of file ReactionRate.h.
References ReactionRate::m_rate_index.
|
inline |
Set reaction rate index within kinetics evaluator.
Definition at line 117 of file ReactionRate.h.
References ReactionRate::m_rate_index.
Set context of reaction rate evaluation.
rxn | Reaction object associated with rate |
kin | Kinetics object used for rate evaluation This method allows for passing of information specific to the associated reaction when a ReactionRate object is added a MultiRate reaction evaluator. |
Reimplemented in BlowersMaselRate, and TwoTempPlasmaRate.
Definition at line 126 of file ReactionRate.h.
|
inline |
Evaluate reaction rate based on temperature.
T | temperature [K] Used in conjunction with MultiRateBase::evalSingle / ReactionRate::eval. This method allows for testing of a reaction rate expression outside of Kinetics reaction rate evaluators. |
Definition at line 134 of file ReactionRate.h.
|
inline |
Evaluate reaction rate based on temperature and an extra parameter.
Specific rate parameterizations may require an additional parameter, which is specific to the derived ReactionRate object.
T | temperature [K] |
extra | extra parameter used by parameterization Used in conjunction with MultiRateBase::evalSingle / ReactionRate::eval. This method allows for testing of a reaction rate expression outside of Kinetics reaction rate evaluators. |
Definition at line 147 of file ReactionRate.h.
|
inline |
Evaluate reaction rate based on temperature and an extra vector parameter.
Specific rate parameterizations may require additional parameters, which are specific to the derived ReactionRate object.
T | temperature [K] |
extra | extra vector parameter used by parameterization Used in conjunction with MultiRateBase::evalSingle / ReactionRate::eval. This method allows for testing of a reaction rate expression outside of Kinetics reaction rate evaluators. |
Definition at line 162 of file ReactionRate.h.
|
inlineprotectedvirtual |
Get parameters.
node | AnyMap containing rate information Store the parameters of a ReactionRate needed to reconstruct an identical object. Does not include user-defined fields available in the m_input map. |
Reimplemented in CustomFunc1Rate, FalloffRate, TroeRate, SriRate, TsangRate, ArrheniusBase, ChebyshevRate, and PlogRate.
Definition at line 172 of file ReactionRate.h.
References ReactionRate::type().
Referenced by ReactionRate::parameters().
|
inlineprivate |
Return an object that be used to evaluate the rate by converting general input such as temperature and pressure into the DataType
struct that is particular to the rate model.
Definition at line 187 of file ReactionRate.h.
References ReactionRate::newMultiRate().
|
protected |
Input data used for specific models.
Definition at line 178 of file ReactionRate.h.
Referenced by ReactionRate::setParameters().
|
protected |
Index of reaction rate within kinetics evaluator.
Definition at line 181 of file ReactionRate.h.
Referenced by FalloffRate::evalFromStruct(), ReactionRate::rateIndex(), and ReactionRate::setRateIndex().
|
private |
Definition at line 194 of file ReactionRate.h.