Pressure-dependent and composition-dependent reaction rate calculated according to the reduced-pressure linear mixture rule (LMR-R). More...
#include <LinearBurkeRate.h>
Pressure-dependent and composition-dependent reaction rate calculated according to the reduced-pressure linear mixture rule (LMR-R).
This parameterization is described by Singal et al. [43] and in the science reference documentation.
Definition at line 76 of file LinearBurkeRate.h.
Public Types | |
using | RateTypes = std::variant< PlogRate, TroeRate, ChebyshevRate > |
Type alias that refers to PlogRate, TroeRate, and ChebyshevRate. | |
using | DataTypes = std::variant< PlogData, FalloffData, ChebyshevData > |
Type alias that refers to PlogData, FalloffData, and ChebyshevData. | |
Public Member Functions | |
LinearBurkeRate ()=default | |
Default constructor. | |
LinearBurkeRate (const AnyMap &node, const UnitStack &rate_units={}) | |
unique_ptr< MultiRateBase > | newMultiRate () const override |
Create a rate evaluator for reactions of a particular derived type. | |
const string | type () const override |
Identifier of reaction rate type. | |
void | setParameters (const AnyMap &node, const UnitStack &rate_units) override |
Perform object setup based on AnyMap node information. | |
void | getParameters (AnyMap &rateNode) const override |
Get parameters. | |
double | evalFromStruct (const LinearBurkeData &shared_data) |
void | setContext (const Reaction &rxn, const Kinetics &kin) override |
Set context of reaction rate evaluation. | |
void | validate (const string &equation, const Kinetics &kin) override |
Validate the reaction rate expression. | |
Public Member Functions inherited from ReactionRate | |
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. | |
virtual const string | type () const =0 |
String identifying reaction rate specialization. | |
virtual const string | subType () const |
String identifying sub-type of reaction rate specialization. | |
virtual void | setParameters (const AnyMap &node, const UnitStack &units) |
Set parameters. | |
AnyMap | parameters () const |
Return the parameters such that an identical Reaction could be reconstructed using the newReaction() function. | |
const Units & | conversionUnits () const |
Get the units for converting the leading term in the reaction rate expression. | |
virtual void | setRateUnits (const UnitStack &rate_units) |
Set the units of the reaction rate expression. | |
virtual void | check (const string &equation) |
Check basic syntax and settings of reaction rate expression. | |
virtual void | validate (const string &equation, const Kinetics &kin) |
Validate the reaction rate expression. | |
size_t | rateIndex () const |
Reaction rate index within kinetics evaluator. | |
void | setRateIndex (size_t idx) |
Set reaction rate index within kinetics evaluator. | |
virtual void | setContext (const Reaction &rxn, const Kinetics &kin) |
Set context of reaction rate evaluation. | |
double | eval (double T) |
Evaluate reaction rate based on temperature. | |
double | eval (double T, double extra) |
Evaluate reaction rate based on temperature and an extra parameter. | |
double | eval (double T, const vector< double > &extra) |
Evaluate reaction rate based on temperature and an extra vector parameter. | |
bool | valid () const |
Get flag indicating whether reaction rate is set up correctly. | |
bool | compositionDependent () |
Boolean indicating whether rate has compositional dependence. | |
void | setCompositionDependence (bool comp_dep) |
Set rate compositional dependence. | |
Protected Member Functions | |
double | evalPlogRate (const LinearBurkeData &shared_data, DataTypes &dataObj, RateTypes &rateObj, double logPeff) |
Evaluate overall reaction rate using PLOG to evaluate pressure-dependent aspect of the reaction. | |
double | evalTroeRate (const LinearBurkeData &shared_data, DataTypes &dataObj, RateTypes &rateObj, double logPeff) |
Evaluate overall reaction rate using Troe to evaluate pressure-dependent aspect of the reaction. | |
double | evalChebyshevRate (const LinearBurkeData &shared_data, DataTypes &dataObj, RateTypes &rateObj, double logPeff) |
Evaluate overall reaction rate using Chebyshev to evaluate pressure-dependent aspect of the reaction. | |
virtual void | getParameters (AnyMap &node) const |
Get parameters. | |
Protected Attributes | |
vector< string > | m_colliderNames |
String name of each collider, appearing in the same order as that of the original reaction input. | |
vector< size_t > | m_colliderIndices |
Index of each collider in the kinetics object species list where the vector elements appear in the same order as that of the original reaction input. | |
vector< bool > | m_hasRateConstant |
Indicates which colliders have a distinct k(T,P) versus only an efficiency. | |
vector< ArrheniusRate > | m_epsObjs1 |
Third-body collision efficiency object for k(T,P,X) and eig0_mix calculation. | |
vector< ArrheniusRate > | m_epsObjs2 |
Third-body collision efficiency object for logPeff calculation. | |
ArrheniusRate | m_epsObj_M |
Third-body collision efficiency object for the reference collider M (eig0_M/eig0_M = 1 always) | |
RateTypes | m_rateObj_M |
Stores rate objects corresponding the reference collider M, which can be either PlogRate, TroeRate, or ChebyshevRate. | |
vector< RateTypes > | m_rateObjs |
Stores rate objects corresponding to each non-M collider, which can be either PlogRate, TroeRate, or ChebyshevRate. | |
DataTypes | m_dataObj_M |
Stores data objects corresponding to the reference collider M, which can be either PlogData, TroeData, or ChebyshevData. | |
vector< DataTypes > | m_dataObjs |
Stores data objects corresponding to each non-M collider, which can be either PlogData, TroeData, or ChebyshevData. | |
Protected Attributes inherited from ReactionRate | |
AnyMap | m_input |
Input data used for specific models. | |
size_t | m_rate_index = npos |
Index of reaction rate within kinetics evaluator. | |
bool | m_valid = false |
Flag indicating whether reaction rate is set up correctly. | |
bool | m_composition_dependent_rate = false |
Flag indicating composition dependent rate. | |
Units | m_conversion_units {0.} |
Units of the leading term in the reaction rate expression. | |
using RateTypes = std::variant<PlogRate, TroeRate, ChebyshevRate> |
Type alias that refers to PlogRate, TroeRate, and ChebyshevRate.
Definition at line 101 of file LinearBurkeRate.h.
using DataTypes = std::variant<PlogData, FalloffData, ChebyshevData> |
Type alias that refers to PlogData, FalloffData, and ChebyshevData.
Definition at line 103 of file LinearBurkeRate.h.
|
default |
Default constructor.
LinearBurkeRate | ( | const AnyMap & | node, |
const UnitStack & | rate_units = {} |
||
) |
Definition at line 58 of file LinearBurkeRate.cpp.
|
inlineoverridevirtual |
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 from ReactionRate.
Definition at line 84 of file LinearBurkeRate.h.
|
inlineoverridevirtual |
Identifier of reaction rate type.
Implements ReactionRate.
Definition at line 89 of file LinearBurkeRate.h.
Perform object setup based on AnyMap node information.
node | AnyMap containing rate information |
rate_units | Unit definitions specific to rate information |
Reimplemented from ReactionRate.
Definition at line 63 of file LinearBurkeRate.cpp.
|
overridevirtual |
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 from ReactionRate.
Definition at line 313 of file LinearBurkeRate.cpp.
double evalFromStruct | ( | const LinearBurkeData & | shared_data | ) |
Definition at line 246 of file LinearBurkeRate.cpp.
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 from ReactionRate.
Definition at line 201 of file LinearBurkeRate.cpp.
|
overridevirtual |
Validate the reaction rate expression.
Reimplemented from ReactionRate.
Definition at line 199 of file LinearBurkeRate.cpp.
|
protected |
Evaluate overall reaction rate using PLOG to evaluate pressure-dependent aspect of the reaction.
Definition at line 209 of file LinearBurkeRate.cpp.
|
protected |
Evaluate overall reaction rate using Troe to evaluate pressure-dependent aspect of the reaction.
Definition at line 222 of file LinearBurkeRate.cpp.
|
protected |
Evaluate overall reaction rate using Chebyshev to evaluate pressure-dependent aspect of the reaction.
Definition at line 234 of file LinearBurkeRate.cpp.
|
protected |
String name of each collider, appearing in the same order as that of the original reaction input.
Definition at line 129 of file LinearBurkeRate.h.
|
protected |
Index of each collider in the kinetics object species list where the vector elements appear in the same order as that of the original reaction input.
Definition at line 133 of file LinearBurkeRate.h.
|
protected |
Indicates which colliders have a distinct k(T,P) versus only an efficiency.
Definition at line 135 of file LinearBurkeRate.h.
|
protected |
Third-body collision efficiency object for k(T,P,X) and eig0_mix calculation.
Definition at line 138 of file LinearBurkeRate.h.
|
protected |
Third-body collision efficiency object for logPeff calculation.
Definition at line 140 of file LinearBurkeRate.h.
|
protected |
Third-body collision efficiency object for the reference collider M (eig0_M/eig0_M = 1 always)
Definition at line 143 of file LinearBurkeRate.h.
|
protected |
Stores rate objects corresponding the reference collider M, which can be either PlogRate, TroeRate, or ChebyshevRate.
Definition at line 147 of file LinearBurkeRate.h.
|
protected |
Stores rate objects corresponding to each non-M collider, which can be either PlogRate, TroeRate, or ChebyshevRate.
Definition at line 150 of file LinearBurkeRate.h.
|
protected |
Stores data objects corresponding to the reference collider M, which can be either PlogData, TroeData, or ChebyshevData.
collider M
Definition at line 154 of file LinearBurkeRate.h.
|
protected |
Stores data objects corresponding to each non-M collider, which can be either PlogData, TroeData, or ChebyshevData.
list for non-M colliders
Definition at line 157 of file LinearBurkeRate.h.