Cantera  3.1.0
Loading...
Searching...
No Matches

Pressure-dependent and composition-dependent reaction rate calculated according to the reduced-pressure linear mixture rule (LMR-R). More...

#include <LinearBurkeRate.h>

Inheritance diagram for LinearBurkeRate:
[legend]

Detailed Description

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< MultiRateBasenewMultiRate () 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)
 
ReactionRateoperator= (const ReactionRate &other)
 
virtual unique_ptr< MultiRateBasenewMultiRate () 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 UnitsconversionUnits () 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< ArrheniusRatem_epsObjs1
 Third-body collision efficiency object for k(T,P,X) and eig0_mix calculation.
 
vector< ArrheniusRatem_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< RateTypesm_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< DataTypesm_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.
 

Member Typedef Documentation

◆ RateTypes

using RateTypes = std::variant<PlogRate, TroeRate, ChebyshevRate>

Type alias that refers to PlogRate, TroeRate, and ChebyshevRate.

Definition at line 101 of file LinearBurkeRate.h.

◆ DataTypes

using DataTypes = std::variant<PlogData, FalloffData, ChebyshevData>

Type alias that refers to PlogData, FalloffData, and ChebyshevData.

Definition at line 103 of file LinearBurkeRate.h.

Constructor & Destructor Documentation

◆ LinearBurkeRate() [1/2]

LinearBurkeRate ( )
default

Default constructor.

◆ LinearBurkeRate() [2/2]

LinearBurkeRate ( const AnyMap node,
const UnitStack rate_units = {} 
)

Definition at line 58 of file LinearBurkeRate.cpp.

Member Function Documentation

◆ newMultiRate()

unique_ptr< MultiRateBase > newMultiRate ( ) const
inlineoverridevirtual

Create a rate evaluator for reactions of a particular derived type.

Derived classes usually implement this as:

unique_ptr<MultiRateBase> newMultiRate() const override {
return make_unique<MultiRate<RateType, DataType>>();
unique_ptr< MultiRateBase > newMultiRate() const override
Create a rate evaluator for reactions of a particular derived type.

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.

◆ type()

const string type ( ) const
inlineoverridevirtual

Identifier of reaction rate type.

Implements ReactionRate.

Definition at line 89 of file LinearBurkeRate.h.

◆ setParameters()

void setParameters ( const AnyMap node,
const UnitStack rate_units 
)
overridevirtual

Perform object setup based on AnyMap node information.

Parameters
nodeAnyMap containing rate information
rate_unitsUnit definitions specific to rate information

Reimplemented from ReactionRate.

Definition at line 63 of file LinearBurkeRate.cpp.

◆ getParameters()

void getParameters ( AnyMap node) const
overridevirtual

Get parameters.

Parameters
nodeAnyMap 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.

◆ evalFromStruct()

double evalFromStruct ( const LinearBurkeData shared_data)

Definition at line 246 of file LinearBurkeRate.cpp.

◆ setContext()

void setContext ( const Reaction rxn,
const Kinetics kin 
)
overridevirtual

Set context of reaction rate evaluation.

Parameters
rxnReaction object associated with rate
kinKinetics 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.

◆ validate()

void validate ( const string &  equation,
const Kinetics kin 
)
overridevirtual

Validate the reaction rate expression.

Reimplemented from ReactionRate.

Definition at line 199 of file LinearBurkeRate.cpp.

◆ evalPlogRate()

double evalPlogRate ( const LinearBurkeData shared_data,
DataTypes dataObj,
RateTypes rateObj,
double  logPeff 
)
protected

Evaluate overall reaction rate using PLOG to evaluate pressure-dependent aspect of the reaction.

Definition at line 209 of file LinearBurkeRate.cpp.

◆ evalTroeRate()

double evalTroeRate ( const LinearBurkeData shared_data,
DataTypes dataObj,
RateTypes rateObj,
double  logPeff 
)
protected

Evaluate overall reaction rate using Troe to evaluate pressure-dependent aspect of the reaction.

Definition at line 222 of file LinearBurkeRate.cpp.

◆ evalChebyshevRate()

double evalChebyshevRate ( const LinearBurkeData shared_data,
DataTypes dataObj,
RateTypes rateObj,
double  logPeff 
)
protected

Evaluate overall reaction rate using Chebyshev to evaluate pressure-dependent aspect of the reaction.

Definition at line 234 of file LinearBurkeRate.cpp.

Member Data Documentation

◆ m_colliderNames

vector<string> m_colliderNames
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.

◆ m_colliderIndices

vector<size_t> m_colliderIndices
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.

◆ m_hasRateConstant

vector<bool> m_hasRateConstant
protected

Indicates which colliders have a distinct k(T,P) versus only an efficiency.

Definition at line 135 of file LinearBurkeRate.h.

◆ m_epsObjs1

vector<ArrheniusRate> m_epsObjs1
protected

Third-body collision efficiency object for k(T,P,X) and eig0_mix calculation.

Definition at line 138 of file LinearBurkeRate.h.

◆ m_epsObjs2

vector<ArrheniusRate> m_epsObjs2
protected

Third-body collision efficiency object for logPeff calculation.

Definition at line 140 of file LinearBurkeRate.h.

◆ m_epsObj_M

ArrheniusRate m_epsObj_M
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.

◆ m_rateObj_M

RateTypes m_rateObj_M
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.

◆ m_rateObjs

vector<RateTypes> m_rateObjs
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.

◆ m_dataObj_M

DataTypes m_dataObj_M
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.

◆ m_dataObjs

vector<DataTypes> m_dataObjs
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.


The documentation for this class was generated from the following files: