| Cantera 3.0.0

Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | Private Attributes | List of all members
InterfaceRateBase Class Reference
Chemical Kinetics » Reactions and Reaction Rates » Interface Rate Parameterizations

Base class for rate parameterizations that involve interfaces. More...

`#include <InterfaceRate.h>`

Inheritance diagram for InterfaceRateBase:
[legend]

## Detailed Description

Base class for rate parameterizations that involve interfaces.

Rate expressions defined for interfaces may include coverage dependent terms, where an example is given by Kee, et al. [kee2003], Eq 11.113. Using Cantera nomenclature, this expression can be rewritten as

\[ k_f = A T^b \exp \left( - \frac{E_a}{RT} \right) \prod_k 10^{a_k \theta_k} \theta_k^{m_k} \exp \left( \frac{- E_k \theta_k}{RT} \right) \]

It is evident that this expression combines a regular modified Arrhenius rate expression \( A T^b \exp \left( - \frac{E_a}{RT} \right) \) with coverage-related terms, where the parameters \( (a_k, E_k, m_k) \) describe the dependency on the surface coverage of species \( k, \theta_k \). In addition to the linear coverage dependence on the activation energy modifier \( E_k \), polynomial coverage dependence is also available. When the dependence parameter \( E_k \) is given as a scalar value, the linear dependency is applied whereas if a list of four values are given as \( [E^{(1)}_k, ..., E^{(4)}_k] \), a polynomial dependency is applied as

\[ k_f = A T^b \exp \left( - \frac{E_a}{RT} \right) \prod_k 10^{a_k \theta_k} \theta_k^{m_k} \exp \left( \frac{- E^{(1)}_k \theta_k - E^{(2)}_k \theta_k^2 - E^{(3)}_k \theta_k^3 - E^{(4)}_k \theta_k^4}{RT} \right) \]

The InterfaceRateBase class implements terms related to coverage only, which allows for combinations with arbitrary rate parameterizations (for example Arrhenius and BlowersMaselRate).

Definition at line 92 of file InterfaceRate.h.

## Public Member Functions
void | setParameters (const AnyMap &node)
| Perform object setup based on AnyMap node information.
void | getParameters (AnyMap &node) const
| Store parameters needed to reconstruct an identical object.
void | setCoverageDependencies (const AnyMap &dependencies, const UnitSystem &units=UnitSystem())
| Set coverage dependencies based on AnyMap node information.
void | getCoverageDependencies (AnyMap &dependencies, bool asVector=false) const
| Store parameters needed to reconstruct coverage dependencies.
virtual void | addCoverageDependence (const string &sp, double a, double m, const vector< double > &e)
| Add a coverage dependency for species sp, with exponential dependence a, power-law exponent m, and activation energy dependence e, where e is in Kelvin, that is, energy divided by the molar gas constant.
bool | exchangeCurrentDensityFormulation ()
| Boolean indicating whether rate uses exchange current density formulation.
void | setContext (const Reaction &rxn, const Kinetics &kin)
| Build rate-specific parameters based on Reaction and Kinetics context.
void | setSpecies (const vector< string > &species)
| Set association with an ordered list of all species associated with a given `Kinetics` object.
void | updateFromStruct (const InterfaceData &shared_data)
| Update reaction rate parameters.
double | voltageCorrection () const
| Calculate modifications for the forward reaction rate for interfacial charge transfer reactions.
bool | usesElectrochemistry ()
| Boolean indicating whether rate uses electrochemistry.
double | beta () const
| Return the charge transfer beta parameter.
double | siteDensity () const
| Return site density [kmol/m^2].
void | setSiteDensity (double siteDensity)
| Set site density [kmol/m^2].

## Protected Attributes
double | m_siteDensity
| Site density [kmol/m^2].
double | m_acov
| Coverage contribution to pre-exponential factor.
double | m_ecov
| Coverage contribution to activation energy.
double | m_mcov
| Coverage term in reaction rate.
bool | m_chargeTransfer
| Boolean indicating use of electrochemistry.
bool | m_exchangeCurrentDensityFormulation
double | m_beta
| Electrochemistry only.
double | m_deltaPotential_RT
| Normalized electric potential energy change.
double | m_deltaGibbs0_RT
| Normalized standard state Gibbs free energy change.
double | m_prodStandardConcentrations
| Products of standard concentrations.
map< size_t, size_t > | m_indices
| Map from coverage dependencies stored in this object to the index of the coverage species in the Kinetics object.
vector< string > | m_cov
| Vector holding names of coverage species.
vector< double > | m_ac
| Vector holding coverage-specific exponential dependence.
vector< vector< double > > | m_ec
| Vector holding coverage-specific activation energy dependence as a 5-membered array of polynomial coeffcients starting from 0th-order to 4th-order coefficients.
vector< bool > | m_lindep
| Vector holding boolean for linear dependence.
vector< double > | m_mc
| Vector holding coverage-specific power-law exponents.

## Private Attributes
vector< pair< size_t, double > > | m_stoichCoeffs
| Pairs of species index and multipliers to calculate enthalpy change.
vector< pair< size_t, double > > | m_netCharges
| Pairs of phase index and net electric charges (same order as m_stoichCoeffs)

## Constructor & Destructor Documentation

## ◆ InterfaceRateBase()

InterfaceRateBase | ( |  | ) |

Definition at line 93 of file InterfaceRate.cpp.

## Member Function Documentation

## ◆ setParameters()

void setParameters | ( | const AnyMap & | node | ) |

Perform object setup based on AnyMap node information.

Parameters

  node | AnyMap object containing reaction rate specification

Definition at line 107 of file InterfaceRate.cpp.

## ◆ getParameters()

void getParameters | ( | AnyMap & | node | ) | const

Store parameters needed to reconstruct an identical object.

Parameters

  node | AnyMap object receiving reaction rate specification

Definition at line 120 of file InterfaceRate.cpp.

## ◆ setCoverageDependencies()

void setCoverageDependencies | ( | const AnyMap & | dependencies,
|  | const UnitSystem & | units = `UnitSystem()`
| ) |  |

Set coverage dependencies based on AnyMap node information.

Parameters

  dependencies | Coverage dependencies
  units | Unit system

Definition at line 137 of file InterfaceRate.cpp.

## ◆ getCoverageDependencies()

void getCoverageDependencies | ( | AnyMap & | dependencies,
|  | bool | asVector = `false`
| ) |  | const

Store parameters needed to reconstruct coverage dependencies.

Parameters

  dependencies | AnyMap receiving coverage information
  asVector | Optional boolean flag to override map output

Deprecated:
  After Cantera 3.0, the optional asVector argument will be removed.

Definition at line 181 of file InterfaceRate.cpp.

## ◆ addCoverageDependence()

void addCoverageDependence | ( | const string & | sp,
|  | double | a,
|  | double | m,
|  | const vector< double > & | e
| ) |  |
| virtual

Add a coverage dependency for species sp, with exponential dependence a, power-law exponent m, and activation energy dependence e, where e is in Kelvin, that is, energy divided by the molar gas constant.

Reimplemented in InterfaceRate< RateType, DataType >.

Definition at line 217 of file InterfaceRate.cpp.

## ◆ exchangeCurrentDensityFormulation()

bool exchangeCurrentDensityFormulation | ( |  | ) |
| inline

Boolean indicating whether rate uses exchange current density formulation.

Definition at line 124 of file InterfaceRate.h.

## ◆ setContext()

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

Build rate-specific parameters based on Reaction and Kinetics context.

Parameters

  rxn | Reaction associated with rate parameterization
  kin | Kinetics object associated with rate parameterization

Definition at line 297 of file InterfaceRate.cpp.

## ◆ setSpecies()

void setSpecies | ( | const vector< string > & | species | ) |

Set association with an ordered list of all species associated with a given `Kinetics` object.

Definition at line 232 of file InterfaceRate.cpp.

## ◆ updateFromStruct()

void updateFromStruct | ( | const InterfaceData & | shared_data | ) |

Update reaction rate parameters.

Parameters

  shared_data | data shared by all reactions of a given type

Definition at line 246 of file InterfaceRate.cpp.

## ◆ voltageCorrection()

double voltageCorrection | ( |  | ) | const
| inline

Calculate modifications for the forward reaction rate for interfacial charge transfer reactions.

For reactions that transfer charge across a potential difference, the activation energies are modified by the potential difference. The correction factor is based on the net electric potential energy change

\[ \Delta E_{p,j} = \sum_i E_{p,i} \nu_{i,j} \]

where potential energies are calculated as \( E_{p,i} = F \phi_i z_i \). Here, \( F \) is Faraday's constant, \( \phi_i \) is the electric potential of the species phase and \( z_i \) is the charge of the species.

When an electrode reaction rate is specified in terms of its exchange current density, the correction factor is adjusted to the standard reaction rate constant form and units. Specifically, this converts a reaction rate constant that was specified in units of A/m2 to kmol/m2/s.

Warning
  The updated calculation of voltage corrections is an experimental part of the Cantera API and may be changed or removed without notice.

Definition at line 162 of file InterfaceRate.h.

## ◆ usesElectrochemistry()

bool usesElectrochemistry | ( |  | ) |
| inline

Boolean indicating whether rate uses electrochemistry.

If this is true, the Butler-Volmer correction

\[ f_{BV} = \exp ( - \beta * Delta E_{p,j} / R T ) \]

is applied to the forward reaction rate.

See also
  voltageCorrection().

Definition at line 197 of file InterfaceRate.h.

## ◆ beta()

double beta | ( |  | ) | const
| inline

Return the charge transfer beta parameter.

Definition at line 202 of file InterfaceRate.h.

## ◆ siteDensity()

double siteDensity | ( |  | ) | const
| inline

Return site density [kmol/m^2].

Warning
  This method is an experimental part of the Cantera API and may be changed or removed without notice.

Definition at line 214 of file InterfaceRate.h.

## ◆ setSiteDensity()

void setSiteDensity | ( | double | siteDensity | ) |
| inline

Set site density [kmol/m^2].

Note
  This method is used internally, for testing purposes only as the site density is a property of InterfaceKinetics and will be overwritten during an update of the thermodynamic state.

Warning
  This method is an experimental part of the Cantera API and may be changed or removed without notice.

Definition at line 227 of file InterfaceRate.h.

## Member Data Documentation

## ◆ m_siteDensity

double m_siteDensity
| protected

Site density [kmol/m^2].

Definition at line 232 of file InterfaceRate.h.

## ◆ m_acov

double m_acov
| protected

Coverage contribution to pre-exponential factor.

Definition at line 233 of file InterfaceRate.h.

## ◆ m_ecov

double m_ecov
| protected

Coverage contribution to activation energy.

Definition at line 234 of file InterfaceRate.h.

## ◆ m_mcov

double m_mcov
| protected

Coverage term in reaction rate.

Definition at line 235 of file InterfaceRate.h.

## ◆ m_chargeTransfer

bool m_chargeTransfer
| protected

Boolean indicating use of electrochemistry.

Definition at line 236 of file InterfaceRate.h.

## ◆ m_exchangeCurrentDensityFormulation

bool m_exchangeCurrentDensityFormulation
| protected

Definition at line 237 of file InterfaceRate.h.

## ◆ m_beta

double m_beta
| protected

Electrochemistry only.

Forward value of apparent electrochemical transfer coefficient

Definition at line 238 of file InterfaceRate.h.

## ◆ m_deltaPotential_RT

double m_deltaPotential_RT
| protected

Normalized electric potential energy change.

Definition at line 239 of file InterfaceRate.h.

## ◆ m_deltaGibbs0_RT

double m_deltaGibbs0_RT
| protected

Normalized standard state Gibbs free energy change.

Definition at line 240 of file InterfaceRate.h.

## ◆ m_prodStandardConcentrations

double m_prodStandardConcentrations
| protected

Products of standard concentrations.

Definition at line 241 of file InterfaceRate.h.

## ◆ m_indices

map<size_t, size_t> m_indices
| protected

Map from coverage dependencies stored in this object to the index of the coverage species in the Kinetics object.

Definition at line 245 of file InterfaceRate.h.

## ◆ m_cov

vector<string> m_cov
| protected

Vector holding names of coverage species.

Definition at line 246 of file InterfaceRate.h.

## ◆ m_ac

vector<double> m_ac
| protected

Vector holding coverage-specific exponential dependence.

Definition at line 247 of file InterfaceRate.h.

## ◆ m_ec

vector<vector<double> > m_ec
| protected

Vector holding coverage-specific activation energy dependence as a 5-membered array of polynomial coeffcients starting from 0th-order to 4th-order coefficients.

Definition at line 251 of file InterfaceRate.h.

## ◆ m_lindep

vector<bool> m_lindep
| protected

Vector holding boolean for linear dependence.

Definition at line 252 of file InterfaceRate.h.

## ◆ m_mc

vector<double> m_mc
| protected

Vector holding coverage-specific power-law exponents.

Definition at line 253 of file InterfaceRate.h.

## ◆ m_stoichCoeffs

vector<pair<size_t, double> > m_stoichCoeffs
| private

Pairs of species index and multipliers to calculate enthalpy change.

Definition at line 257 of file InterfaceRate.h.

## ◆ m_netCharges

vector<pair<size_t, double> > m_netCharges
| private

Pairs of phase index and net electric charges (same order as m_stoichCoeffs)

Definition at line 260 of file InterfaceRate.h.

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

- InterfaceRate.h
- InterfaceRate.cpp