Modeling Chemical Reactions in Cantera¶
Here, we describe how Cantera calculates chemical reaction rates for various reaction types.
Reactions with a PressureIndependent Rate¶
The reaction()
entry is used to represent homogeneous reactions with
pressureindependent rate coefficients and mass action kinetics. Examples of
reaction entries that implement some reactions in the GRIMech 3.0 natural gas
combustion mechanism [3] are shown below:
units(length = 'cm', quantity = 'mol', act_energy = 'cal/mol') ... reaction( "O + H2 <=> H + OH", [3.87000E+04, 2.7, 6260]) reaction( "O + HO2 <=> OH + O2", [2.00000E+13, 0.0, 0]) reaction( "O + H2O2 <=> OH + HO2", [9.63000E+06, 2.0, 4000]) reaction( "O + HCCO <=> H + 2 CO", [1.00000E+14, 0.0, 0]) reaction( "H + O2 + AR <=> HO2 + AR", kf=Arrhenius(A=7.00000E+17, b=0.8, E=0)) reaction( equation = "HO2 + C3H7 <=> O2 + C3H8", kf=Arrhenius(2.55000E+10, 0.255, 943)) reaction( equation = "HO2 + C3H7 => OH + C2H5 + CH2O", kf=[2.41000E+13, 0.0, 0])
ThreeBody Reactions¶
A threebody reaction is a gasphase reaction of the form:
Here \(\mathrm{M}\) is an unspecified collision partner that carries away excess energy to stabilize the \(\mathrm{AB}\) molecule (forward direction) or supplies energy to break the \(\mathrm{AB}\) bond (reverse direction).
Different species may be more or less effective in acting as the collision partner. A species that is much lighter than \(\mathrm{A}\) and \(\mathrm{B}\) may not be able to transfer much of its kinetic energy, and so would be inefficient as a collision partner. On the other hand, a species with a transition from its ground state that is nearly resonant with one in the \(\mathrm{AB^*}\) activated complex may be much more effective at exchanging energy than would otherwise be expected.
These effects can be accounted for by defining a collision efficiency \(\epsilon\) for each species, defined such that the forward reaction rate is
where
where \(C_{\mathrm{k}}\) is the concentration of species \(\mathrm{k}\). Since any constant collision efficiency can be absorbed into the rate coefficient \(k_f(T)\), the default collision efficiency is 1.0.
A threebody reaction may be defined using the three_body_reaction()
entry. The equation string for a threebody reaction must contain an 'M' or
'm' on both the reactant and product sides of the equation. The collision
efficiencies are specified as a string, with the species name followed by a
colon and the efficiency.
Some examples from GRIMech 3.0 are shown below:
three_body_reaction("2 O + M <=> O2 + M", [1.20000E+17, 1, 0], "AR:0.83 C2H6:3 CH4:2 CO:1.75 CO2:3.6 H2:2.4 H2O:15.4 ") three_body_reaction("O + H + M <=> OH + M", [5.00000E+17, 1, 0], efficiencies="AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6 ") three_body_reaction( equation = "H + OH + M <=> H2O + M", rate_coeff=[2.20000E+22, 2, 0], efficiencies="AR:0.38 C2H6:3 CH4:2 H2:0.73 H2O:3.65 " )
As always, the field names are optional if the field values are entered in the declaration order.
Falloff Reactions¶
A falloff reaction is one that has a rate that is firstorder in \([M]\) at low pressure, like a threebody reaction, but becomes zeroorder in \([M]\) as \([M]\) increases. Dissociation/association reactions of polyatomic molecules often exhibit this behavior.
The simplest expression for the rate coefficient for a falloff reaction is the Lindemann form [2]:
In the lowpressure limit, this approaches \(k0{[\mathrm{M}]}\), and in the highpressure limit it approaches \(k_\infty\).
Defining the nondimensional reduced pressure:
The rate constant may be written as
More accurate models for unimolecular processes lead to other, more complex, forms for the dependence on reduced pressure. These can be accounted for by multiplying the Lindemann expression by a function \(F(T, P_r)\):
This expression is used to compute the rate coefficient for falloff reactions. The function \(F(T, P_r)\) is the falloff function, and is specified by assigning an embedded entry to the falloff field.
The Troe Falloff Function¶
A widelyused falloff function is the one proposed by Gilbert et al. [1]:
The Troe()
directive requires specifying the first three parameters
\((A, T_3, T_1)\). The fourth parameter, \(T_2\), is optional, defaulting to 0.0.
The SRI Falloff Function¶
This falloff function is based on the one originally due to Stewart et al. [4], which required three parameters \(a\), \(b\), and \(c\). Kee et al. [5] generalized this function slightly by adding two more parameters \(d\) and \(e\). (The original form corresponds to \(d = 1\) and \(e = 0\).) Cantera supports the extended 5parameter form, given by:
In keeping with the nomenclature of Kee et al. [5], we will refer to this as
the “SRI” falloff function. It is implemented by the SRI()
directive.
ChemicallyActivated Reactions¶
For these reactions, the rate falls off as the pressure increases, due to collisional stabilization of a reaction intermediate. Example:
which competes with:
Like falloff reactions, chemicallyactivated reactions are described by blending between a “low pressure” and a “high pressure” rate expression. The difference is that the forward rate constant is written as being proportional to the low pressure rate constant:
and the optional blending function \(F\) may described by any of the
parameterizations allowed for falloff reactions. Chemicallyactivated
reactions can be defined using the chemically_activated_reaction()
directive.
An example of a reaction specified with this parameterization:
chemically_activated_reaction('CH3 + OH (+ M) <=> CH2O + H2 (+ M)', kLow=[2.823201e+02, 1.46878, (3270.56495, 'cal/mol')], kHigh=[5.880000e14, 6.721, (3022.227, 'cal/mol')], falloff=Troe(A=1.671, T3=434.782, T1=2934.21, T2=3919.0))
In this example, the units of \(k_0\) (kLow) are m^{3}/kmol/s and the units of \(k_\infty\) (kHigh) are 1/s.
PressureDependent Arrhenius Rate Expressions (PLog)¶
The pdep_arrhenius()
class represents pressuredependent reaction rates
by logarithmically interpolating between Arrhenius rate expressions at various
pressures. Given two rate expressions at two specific pressures:
The rate at an intermediate pressure \(P_1 < P < P_2\) is computed as
Multiple rate expressions may be given at the same pressure, in which case the rate used in the interpolation formula is the sum of all the rates given at that pressure. For pressures outside the given range, the rate expression at the nearest pressure is used.
An example of a reaction specified in this format:
pdep_arrhenius('R1 + R2 <=> P1 + P2', [(0.001315789, 'atm'), 2.440000e+10, 1.04, 3980.0], [(0.039473684, 'atm'), 3.890000e+10, 0.989, 4114.0], [(1.0, 'atm'), 3.460000e+12, 0.442, 5463.0], [(10.0, 'atm'), 1.720000e+14, 0.01, 7134.0], [(100.0, 'atm'), 7.410000e+30, 5.54, 12108.0], [(100.0, 'atm'), 1.900000e+15, 0.29, 8306.0])
The first argument is the reaction equation. Each subsequent argument is a sequence of four elements specifying a pressure and the Arrhenius parameters at that pressure.
Chebyshev Reaction Rate Expressions¶
Class chebyshev_reaction()
represents a phenomenological rate coefficient
\(k(T,P)\) in terms of a bivariate Chebyshev polynomial. The rate constant
can be written as:
where \(\alpha_{tp}\) are the constants defining the rate, \(\phi_n(x)\) is the Chebyshev polynomial of the first kind of degree \(n\) evaluated at \(x\), and
are reduced temperatures and reduced pressures which map the ranges \((T_\mathrm{min}, T_\mathrm{max})\) and \((P_\mathrm{min}, P_\mathrm{max})\) to \((1, 1)\).
A Chebyshev rate expression is specified in terms of the coefficient matrix \(\alpha\) and the temperature and pressure ranges. An example of a Chebyshev rate expression where \(N_T = 6\) and \(N_P = 4\) is:
chebyshev_reaction('R1 + R2 <=> P1 + P2', Tmin=290.0, Tmax=3000.0, Pmin=(0.001, 'atm'), Pmax=(100.0, 'atm'), coeffs=[[1.44280e+01, 2.59970e01, 2.24320e02, 2.78700e03], [ 2.20630e+01, 4.88090e01, 3.96430e02, 5.48110e03], [2.32940e01, 4.01900e01, 2.60730e02, 5.04860e03], [2.93660e01, 2.85680e01, 9.33730e03, 4.01020e03], [2.26210e01, 1.69190e01, 4.85810e03, 2.38030e03], [1.43220e01, 7.71110e02, 1.27080e02, 6.41540e04]])
Note that the Chebyshev polynomials are not defined outside the interval \((1,1)\), and therefore extrapolation of rates outside the range of temperatures and pressure for which they are defined is strongly discouraged.
Surface Reactions¶
Heterogeneous reactions on surfaces are represented by an extended Arrhenius like rate expression, which combines the modified Arrhenius rate expression with further corrections dependent on the fractional surface coverages \(\theta_{\mathrm{k}}\) of one or more surface species. The forward rate constant for a reaction of this type is:
where \(A\), \(b\), and \(E_a\) are the modified Arrhenius
parameters and \(a_{\mathrm{k}}\), \(m_{\mathrm{k}}\), and \(E_{\mathrm{k}}\) are the coverage
dependencies from species \(\mathrm{k}\). A reaction of this form with a single coverage
dependency (on the species H(S)) can be written using class
surface_reaction()
with the coverage keyword argument supplied to the
class Arrhenius()
:
surface_reaction("2 H(S) => H2 + 2 PT(S)", Arrhenius(A, b, E_a, coverage=['H(S)', a_1, m_1, E_1]))
For a reaction with multiple coverage dependencies, the following syntax is used:
surface_reaction("2 H(S) => H2 + 2 PT(S)", Arrhenius(A, b, E_a, coverage=[['H(S)', a_1, m_1, E_1], ['PT(S)', a_2, m_2, E_2]]))
Sticking Coefficients¶
Collisions between gasphase molecules and surfaces which result in the gas phase molecule sticking to the surface can be described as a reaction which is parameterized by a sticking coefficient:
where \(a\), \(b\), and \(c\) are constants specific to the reaction. The values of these constants must be specified so that the sticking coefficient \(\gamma\) is between 0 and 1 for all temperatures.
The sticking coefficient is related to the forward rate constant by the formula:
where \(\Gamma_\mathrm{tot}\) is the total molar site density, \(m\) is the sum of all the surface reactant stoichiometric coefficients, and \(W\) is the molecular weight of the gas phase species.
A reaction of this form can be written as:
surface_reaction("H2O + PT(S) => H2O(S)", stick(a, b, c))
Additional Options¶
Reaction Orders¶
Explicit reaction orders different from the stoichiometric coefficients are sometimes used for nonelementary reactions. For example, consider the global reaction:
the forward rate constant might be given as [6]:
This reaction could be defined as:
reaction("C8H18 + 12.5 O2 => 8 CO2 + 9 H2O", [4.6e11, 0.0, 30.0], order="C8H18:0.25 O2:1.5")
Special care is required in this case since the units of the preexponential factor depend on the sum of the reaction orders, which may not be an integer.
Note that you can change reaction orders only for irreversible reactions.
Normally, reaction orders are required to be positive. However, in some cases negative reaction orders are found to be better fits for experimental data. In these cases, the default behavior may be overridden by adding negative_orders to the reaction options like the following:
reaction("C8H18 + 12.5 O2 => 8 CO2 + 9 H2O", [4.6e11, 0.0, 30.0], order="C8H18:0.25 O2:1.75", options=['negative_orders'])
Some global reactions could have reactions orders for nonreactant species. One should add nonreactant_orders to the reaction options to use this feature:
reaction("C8H18 + 12.5 O2 => 8 CO2 + 9 H2O", [4.6e11, 0.0, 30.0], order="C8H18:0.25 CO:0.15", options=['negative_orders', 'nonreactant_orders'])
References
[1]  R. G. Gilbert, K. Luther, and J. Troe. Ber. Bunsenges. Phys. Chem., 87:169, 1983. 
[2] 

[3]  Gregory P. Smith, David M. Golden, Michael Frenklach, Nigel W. Moriarty, Boris Eiteneer, Mikhail Goldenberg, C. Thomas Bowman, Ronald K. Hanson, Soonho Song, William C. Gardiner, Jr., Vitali V. Lissianski, , and Zhiwei Qin. GRIMech version 3.0, 1997. see http://www.me.berkeley.edu/gri_mech. 
[4]  P. H. Stewart, C. W. Larson, and D. Golden. Combustion and Flame, 75:25, 1989. 
[5]  (1, 2) R. J. Kee, F. M. Rupley, and J. A. Miller. ChemkinII: A Fortran chemical kinetics package for the analysis of gasphase chemical kinetics. Technical Report SAND898009, Sandia National Laboratories, 1989. 
[6]  C. K. Westbrook and F. L. Dryer. Simplified reaction mechanisms for the oxidation of hydrocarbon fuels in flames. Combustion Science and Technology 27, pp. 31—43. 1981. 