Reaction events

Microcanonical rate coefficients

rmgpy.pdep.reaction.calculate_microcanonical_rate_coefficient(reaction, ndarray e_list, ndarray j_list, ndarray reac_dens_states, ndarray prod_dens_states=None, double T=0.0)

Calculate the microcanonical rate coefficient \(k(E)\) for the reaction reaction at the energies e_list in J/mol. reac_dens_states and prod_dens_states are the densities of states of the reactant and product configurations for this reaction. If the reaction is irreversible, only the reactant density of states is required; if the reaction is reversible, then both are required. This function will try to use the best method that it can based on the input data available:

  • If detailed information has been provided for the transition state (i.e. the molecular degrees of freedom), then RRKM theory will be used.

  • If the above is not possible but high-pressure limit kinetics \(k_\infty(T)\) have been provided, then the inverse Laplace transform method will be used.

The density of states for the product prod_dens_states and the temperature of interest T in K can also be provided. For isomerization and association reactions prod_dens_states is required; for dissociation reactions it is optional. The temperature is used if provided in the detailed balance expression to determine the reverse kinetics, and in certain cases in the inverse Laplace transform method.

RRKM theory

rmgpy.pdep.reaction.apply_rrkm_theory(transition_state, ndarray e_list, ndarray j_list, ndarray dens_states)

Calculate the microcanonical rate coefficient for a reaction using RRKM theory, where transition_state is the transition state of the reaction, e_list is the array of energies in J/mol at which to evaluate the microcanonial rate, and dens_states is the density of states of the reactant.

RRKM (Rice-Ramsperger-Kassel-Marcus) theory is the microcanonical analogue of transition state theory. The microcanonical rate coefficient as a function of total energy \(E\) and total angular momentum quantum number \(J\) is given by

\[k(E,J) = \frac{N^\ddagger(E, J)}{h \rho(E, J)}\]

where \(N^\ddagger(E, J)\) is the sum of states of the transition state and \(\rho(E, J)\) is the density of states of the reactant. If the J-rotor is treated as active, the J-dependence can be averaged in the above expression to give

\[k(E) = \frac{N^\ddagger(E)}{h \rho(E)}\]

as a function of total energy alone. This is reasonable at high temperatures, but less accurate at low temperatures.

Use of RRKM theory requires detailed information about the statistical mechanics of the reactant and transition state. However, it is generally more accurate than the inverse Laplace transform method.

Inverse Laplace transform method

rmgpy.pdep.reaction.apply_inverse_laplace_transform_method(transition_state, Arrhenius kinetics, ndarray e_list, ndarray j_list, ndarray dens_states, double T=0.0)

Calculate the microcanonical rate coefficient for a reaction using the inverse Laplace transform method, where kinetics is the high pressure limit rate coefficient, E0 is the ground-state energy of the transition state, e_list is the array of energies in kJ/mol at which to evaluate the microcanonial rate, and dens_states is the density of states of the reactant. The temperature T in K is not required, and is only used when the temperature exponent of the Arrhenius expression is negative (for which the inverse transform is undefined).

The inverse Laplace transform method exploits the following relationship to determine the microcanonical rate coefficient:

\[\mathcal{L} \left[k(E) \rho(E) \right] = \int_0^\infty k(E) \rho(E) e^{-E/k_\mathrm{B} T} \ dE = k_\infty(T) Q(T)\]

Given a high-pressure limit rate coefficient \(k_\infty(T)\) represented as an Arrhenius expression with positive \(n\) and \(E_\mathrm{a}\), the microcanonical rate coefficient \(k(E)\) can be determined via an inverse Laplace transform. For \(n = 0\) the transform can be defined analytically:

\[k(E) = A \frac{\rho(E - E_\mathrm{a})}{\rho(E)} \ \ \ \ (n = 0)\]

For \(n > 0\) the transform is defined numerically. For \(n < 0\) or \(E_\mathrm{a} < 0\) the transform is not defined; in this case we approximate by simply lumping the \(T^n\) or \(e^{-E_\mathrm{a}/RT}\) terms into the preexponential factor, and use a different \(k(E)\) at each temperature.

The ILT method does not required detailed transition state information, but only the high-pressure limit kinetics. However, it assumes that (1) \(k_\infty(T)\) is valid over the temperature range from zero to infinity and (2) the activation energy \(E_\mathrm{a}\) is physically identical to the reaction barrier \(E_0^\ddagger - E_0\).