| Cantera 3.0.0

Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BlowersMaselRate Class Reference
Chemical Kinetics » Reactions and Reaction Rates » Arrhenius-type Parameterizations

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 [blowers2004] 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< MultiRateBase > | newMultiRate () 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
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)
ReactionRate & | operator= (const ReactionRate &other)
virtual const string | subType () const
| String identifying sub-type of reaction rate specialization.
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.
void | check (const string &equation, const AnyMap &node)
| Check basic syntax and settings of 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.
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].

## 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]

BlowersMaselRate | ( |  | ) |

Default constructor.

Definition at line 39 of file BlowersMaselRate.cpp.

## ◆ BlowersMaselRate() [2/3]

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

Constructor.

Parameters

  A | Pre-exponential factor. The unit system is (kmol, m, s); actual units depend on the reaction order and the dimensionality (surface or bulk).
  b | Temperature exponent (non-dimensional)
  Ea0 | Intrinsic activation energy in energy units [J/kmol]
  w | Average 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
| inline override virtual

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>>();
Cantera::BlowersMaselRate::newMultiRate
unique_ptr< MultiRateBase > newMultiRate() const override
Create a rate evaluator for reactions of a particular derived type.
Definition BlowersMaselRate.h:89

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
| inline override virtual

String identifying reaction rate specialization.

Implements ReactionRate.

Definition at line 93 of file BlowersMaselRate.h.

## ◆ setContext()

void setContext | ( | const Reaction & | rxn,
|  | const Kinetics & | kin
| ) |  |
| override virtual

Set context of reaction rate evaluation.

Parameters

  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 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_data | data 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_data | data 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
| inline protected

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
| inline override virtual

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:

- BlowersMaselRate.h
- BlowersMaselRate.cpp