Cantera  3.0.0
Loading...
Searching...
No Matches

Blowers Masel reaction rate type depends on the enthalpy of reaction. More...

#include <BlowersMaselRate.h>

Inheritance diagram for BlowersMaselRate:
[legend]

Detailed Description

Blowers Masel reaction rate type depends on the enthalpy of reaction.

The Blowers Masel approximation [3] adjusts the activation energy based on enthalpy change of a reaction:

\begin{eqnarray*} E_a &=& 0\; &\text{if }\Delta H < -4E_0 \\ E_a &=& \Delta H\; &\text{if }\Delta H > 4E_0 \\ E_a &=& \frac{(w + \Delta H / 2)(V_P - 2w + \Delta H)^2}{(V_P^2 - 4w^2 + (\Delta H)^2)}\; &\text{otherwise} \end{eqnarray*}

where

\[ V_P = \frac{2w (w + E_0)}{w - E_0}, \]

\( w \) is the average bond dissociation energy of the bond breaking and that being formed in the reaction. Since the expression is very insensitive to \( w \) for \( w >= 2 E_0 \), \( w \) can be approximated to an arbitrary high value like 1000 kJ/mol.

After the activation energy is determined by Blowers-Masel approximation, it can be plugged into Arrhenius function to calculate the rate constant.

\[ k_f = A T^b \exp (-E_a/RT) \]

Definition at line 69 of file BlowersMaselRate.h.

Public Member Functions

 BlowersMaselRate ()
 Default constructor.
 
 BlowersMaselRate (double A, double b, double Ea0, double w)
 Constructor.
 
 BlowersMaselRate (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
 String identifying reaction rate specialization.
 
void setContext (const Reaction &rxn, const Kinetics &kin) override
 Set context of reaction rate evaluation.
 
double evalRate (double logT, double recipT) const
 Evaluate reaction rate.
 
void updateFromStruct (const BlowersMaselData &shared_data)
 Update information specific to reaction.
 
double evalFromStruct (const BlowersMaselData &shared_data) const
 Evaluate reaction rate.
 
double ddTScaledFromStruct (const BlowersMaselData &shared_data) const
 Evaluate derivative of reaction rate with respect to temperature divided by reaction rate.
 
double activationEnergy () const override
 Return the activation energy Ea [J/kmol] The value corresponds to the constant specified by input parameters;.
 
double bondEnergy () const
 Return the bond dissociation energy w [J/kmol].
 
double deltaH () const
 Return current enthalpy change of reaction [J/kmol].
 
void setDeltaH (double deltaH)
 Set current enthalpy change of reaction [J/kmol].
 
- Public Member Functions inherited from ArrheniusBase
 ArrheniusBase ()
 Default constructor.
 
 ArrheniusBase (double A, double b, double Ea)
 Constructor.
 
 ArrheniusBase (const AnyValue &rate, const UnitSystem &units, const UnitStack &rate_units)
 Constructor based on AnyValue content.
 
 ArrheniusBase (const AnyMap &node, const UnitStack &rate_units={})
 
void setRateParameters (const AnyValue &rate, const UnitSystem &units, const UnitStack &rate_units)
 Perform object setup based on AnyValue node information.
 
void getRateParameters (AnyMap &node) const
 Get Arrhenius parameters used to populate the rate-coefficient or equivalent field.
 
void setParameters (const AnyMap &node, const UnitStack &rate_units) override
 Set parameters.
 
void getParameters (AnyMap &node) const override
 Get parameters.
 
void check (const string &equation) override
 Check rate expression.
 
void validate (const string &equation, const Kinetics &kin) override
 Validate the reaction rate expression.
 
virtual double preExponentialFactor () const
 Return the pre-exponential factor A (in m, kmol, s to powers depending on the reaction order)
 
virtual double temperatureExponent () const
 Return the temperature exponent b
 
virtual double activationEnergy () const
 Return the activation energy Ea [J/kmol] The value corresponds to the constant specified by input parameters;.
 
double order () const
 Return reaction order associated with the reaction rate.
 
void setRateUnits (const UnitStack &rate_units) override
 Set units of the reaction rate expression.
 
bool allowNegativePreExponentialFactor () const
 Get flag indicating whether negative A values are permitted.
 
void setAllowNegativePreExponentialFactor (bool value)
 Set flag indicating whether negative A values are permitted.
 
- 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.
 
void check (const string &equation, const AnyMap &node)
 Check basic syntax and settings of reaction rate expression.
 
virtual void validate (const string &equation, const Kinetics &kin)
 Validate the reaction rate expression.
 
virtual void validate (const string &equation)
 Validate the reaction rate expression (legacy call)
 
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 effectiveActivationEnergy_R (double deltaH_R) const
 Return the effective activation energy (a function of the delta H of reaction) divided by the gas constant (that is, the activation temperature) [K].
 
virtual void getParameters (AnyMap &node) const
 Get parameters.
 

Protected Attributes

vector< pair< size_t, double > > m_stoich_coeffs
 Pairs of species indices and multipliers to calculate enthalpy change.
 
double m_deltaH_R = 0.0
 enthalpy change of reaction (in temperature units)
 
- Protected Attributes inherited from ArrheniusBase
bool m_negativeA_ok = false
 Permissible negative A values.
 
double m_A = NAN
 Pre-exponential factor.
 
double m_b = NAN
 Temperature exponent.
 
double m_Ea_R = 0.
 Activation energy (in temperature units)
 
double m_E4_R = 0.
 Optional 4th energy parameter (in temperature units)
 
double m_logA = NAN
 Logarithm of pre-exponential factor.
 
double m_order = NAN
 Reaction order.
 
string m_A_str = "A"
 The string for the pre-exponential factor.
 
string m_b_str = "b"
 The string for temperature exponent.
 
string m_Ea_str = "Ea"
 The string for activation energy.
 
string m_E4_str = ""
 The string for an optional 4th parameter.
 
- 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.
 

Constructor & Destructor Documentation

◆ BlowersMaselRate() [1/3]

Default constructor.

Definition at line 39 of file BlowersMaselRate.cpp.

◆ BlowersMaselRate() [2/3]

BlowersMaselRate ( double  A,
double  b,
double  Ea0,
double  w 
)

Constructor.

Parameters
APre-exponential factor. The unit system is (kmol, m, s); actual units depend on the reaction order and the dimensionality (surface or bulk).
bTemperature exponent (non-dimensional)
Ea0Intrinsic activation energy in energy units [J/kmol]
wAverage bond dissociation energy of the bond being formed and broken in the reaction, in energy units [J/kmol]

Definition at line 45 of file BlowersMaselRate.cpp.

◆ BlowersMaselRate() [3/3]

BlowersMaselRate ( const AnyMap node,
const UnitStack rate_units = {} 
)
explicit

Definition at line 53 of file BlowersMaselRate.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 89 of file BlowersMaselRate.h.

◆ type()

const string type ( ) const
inlineoverridevirtual

String identifying reaction rate specialization.

Implements ReactionRate.

Definition at line 93 of file BlowersMaselRate.h.

◆ 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 67 of file BlowersMaselRate.cpp.

◆ evalRate()

double evalRate ( double  logT,
double  recipT 
) const
inline

Evaluate reaction rate.

Definition at line 100 of file BlowersMaselRate.h.

◆ updateFromStruct()

void updateFromStruct ( const BlowersMaselData shared_data)
inline

Update information specific to reaction.

Definition at line 106 of file BlowersMaselRate.h.

◆ evalFromStruct()

double evalFromStruct ( const BlowersMaselData shared_data) const
inline

Evaluate reaction rate.

Parameters
shared_datadata shared by all reactions of a given type

Definition at line 120 of file BlowersMaselRate.h.

◆ ddTScaledFromStruct()

double ddTScaledFromStruct ( const BlowersMaselData shared_data) const

Evaluate derivative of reaction rate with respect to temperature divided by reaction rate.

This method does not consider potential changes due to a changed reaction enthalpy. A corresponding warning is raised.

Parameters
shared_datadata shared by all reactions of a given type

Definition at line 59 of file BlowersMaselRate.cpp.

◆ effectiveActivationEnergy_R()

double effectiveActivationEnergy_R ( double  deltaH_R) const
inlineprotected

Return the effective activation energy (a function of the delta H of reaction) divided by the gas constant (that is, the activation temperature) [K].

Definition at line 137 of file BlowersMaselRate.h.

◆ activationEnergy()

double activationEnergy ( ) const
inlineoverridevirtual

Return the activation energy Ea [J/kmol] The value corresponds to the constant specified by input parameters;.

Class specializations may provide alternate definitions that describe an effective activation energy that depends on the thermodynamic state.

Reimplemented from ArrheniusBase.

Definition at line 152 of file BlowersMaselRate.h.

◆ bondEnergy()

double bondEnergy ( ) const
inline

Return the bond dissociation energy w [J/kmol].

Definition at line 157 of file BlowersMaselRate.h.

◆ deltaH()

double deltaH ( ) const
inline

Return current enthalpy change of reaction [J/kmol].

Definition at line 162 of file BlowersMaselRate.h.

◆ setDeltaH()

void setDeltaH ( double  deltaH)
inline

Set current enthalpy change of reaction [J/kmol].

Note
used for testing purposes only; this quantity is not an independent variable and will be overwritten during an update of the state.
Warning
This method is an experimental part of the Cantera API and may be changed or removed without notice.

Definition at line 174 of file BlowersMaselRate.h.

Member Data Documentation

◆ m_stoich_coeffs

vector<pair<size_t, double> > m_stoich_coeffs
protected

Pairs of species indices and multipliers to calculate enthalpy change.

Definition at line 180 of file BlowersMaselRate.h.

◆ m_deltaH_R

double m_deltaH_R = 0.0
protected

enthalpy change of reaction (in temperature units)

Definition at line 182 of file BlowersMaselRate.h.


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