12.3. Kinetics Database

This section describes the general usage of RMG’s kinetic database. See Modifying the Kinetics Database for instructions on modifying the database.

Pressure independent reaction rates in RMG are calculated using a modified Arrhenius equation, designating the reaction coefficient as \(k(T)\) at temperature \(T\).

\[k(T) = A\left(\frac{T}{T_0}\right)^ne^{-(E_0 + \alpha \Delta H_{rxn})/(RT)}\]

\(R\) is the universal gas constant. The kinetic parameters determining the rate coefficient are:

  • \(A\): the pre-exponential A-factor

  • \(T_0\): the reference temperature

  • \(n\): the temperature exponent

  • \(E_0\): the activation energy for a thermoneutral reaction (a barrier height intrinsic to the kinetics family)

  • \(\alpha\): the Evans-Polanyi coefficient (characterizes the position of the transition state along the reaction coordinate, \(0 \le \alpha \le 1\))

  • \(\Delta H_{rxn}\): the enthalpy of reaction

When Evans-Polanyi corrections are used, \(\Delta H_{rxn}\) is calculated using RMG’s thermo database, instead of being specified in the kinetic database. When Evans-Polanyi corrections are not used, \(\Delta H_{rxn}\) and \(\alpha\) are set to zero, and \(E_0\) is the activation energy of the reaction.

12.3.1. Libraries

Kinetic libraries delineate kinetic parameters for specific reactions. RMG always chooses to use kinetics from libraries over families. If multiple libraries contain the same reaction, then precedence is given to whichever library is listed first in the input.py file.

For combustion mechanisms, you should always use at least one small-molecule combustion library, such as the pre-packaged BurkeH2O2 and/or FFCM1 for natural gas. The reactions contained in these libraries are poorly estimated by kinetic families and are universally important to combustion systems.

Kinetic libraries should also be used in the cases where:

  • A set of reaction rates were optimized together

  • You know the reaction rate is not generalizable to similar species (perhaps due to catalysis or aromatic structures)

  • No family exists for the class of reaction

  • You are not confident about the accuracy of kinetic parameters

A full list of the libraries can be found on the RMG website (please allow 1-2 minutes for the website to load).

12.3.2. Families

Allowable reactions in RMG are divided up into classes called reaction families. All reactions not listed in a kinetic library have their kinetic parameters estimated from the reaction families.

Each reaction family contains the files:

  • groups.py containing the recipe, group definitions, and hierarchical trees

  • training.py containing a training set for the family

  • rules.py containing kinetic parameters for rules

A full list of the kinetic families can be found on the RMG website (please allow 1-2 minutes for the website to load).

12.3.2.1. Recipe

The recipe can be found near the top of groups.py and describes the changes in bond order and radicals that occur during the reaction. Reacting atoms are labelled with a starred number. Shown below is the recipe for the H-abstraction family.

../../../_images/Recipe.png

The table below shows the possible actions for recipes. The arguments are given in the curly braces as shown above. For the order of bond change in the Change_Bond action, a -1 could represent a triple bond changing to a double bond while a +1 could represent a single bond changing to a double bond.

Action

Argument1

Argument2

Argument3

Break_Bond

First bonded atom

Type of bond

Second bonded atom

Form_Bond

First bonded atom

Type of bond

Second bonded atom

Change_Bond

First bonded atom

Order of bond change

Second bonded atom

Gain_Radical

Specified atom

Number of radicals

Lose_Radical

Specified atom

Number of radicals

Change_Bond order cannot be directly used on benzene bonds. During generation, aromatic species are kekulized to alternating double and single bonds such that reaction families can be applied. However, RMG cannot properly handle benzene bonds written in the kinetic group definitions.

12.3.2.2. Training Set vs Rules

The training set and rules both contain trusted kinetics that are used to fill in templates in a family. The training set contains kinetics for specific reactions, which are then matched to a template. The kinetic rules contain kinetic parameters that do not necessarily correspond to a specific reaction, but have been generalized for a template.

When determining the kinetics for a reaction, a match for the template is searched for in the kinetic database. The three cases in order of decreasing reliability are:

  1. Reaction match from training set

  2. Node template exact match using either training set or rules

  3. Node template estimate averaged from children nodes

Both training sets and reaction libraries use the observed rate, but rules must first be divided by the degeneracy of the reaction. For example, the reaction CH4 + OH –> H2O + CH3 has a reaction degeneracy of 4. If one performed an experiment or obtained this reaction rate using Arkane (applying the correct symmetry), the resultant rate parameters would be entered into libraries and training sets unmodified. However a kinetic rule created for this reaction must have its A-factor divided by 4 before being entered into the database.

The reaction match from training set is accurate within the documented uncertainty for that reaction. A template exact match is usually accurate within about one order of magnitude. When there is no kinetics available for for the template in either the training set or rules, the kinetics are averaged from the children nodes as an estimate. In these cases, the kinetic parameters are much less reliable. For more information on the estimation algorithm see Kinetics Estimation.

The training set can be modified in training.py and the rules can be modified in rules.py. For more information on modification see Adding Training Reactions and Adding Kinetic Rules.