Reaction Kinetics
Compute transition-state-theory rate constants from reactant conformer ensembles and transition-state conformers.
from atomiverse import ReactionKinetics
from atomiverse.levels import GFN2_XTB
job = ReactionKinetics(
reactants=[
[reactant_conf_1, reactant_conf_2], # one ensemble per reactant species
],
transition_states=[ts_conf_1, ts_conf_2],
charge=0,
multiplicity=1,
level_of_theory=GFN2_XTB,
temperature_start=280.0,
temperature_stop=340.0,
temperature_step=10.0,
)
job.submit()
result = job.require_result()
for point in result.kinetics:
print(point.temperature, point.rate_constant, point.rate_constant_unit)
Inputs
reactants: list of reactant ensembles. Each ensemble is a list ofAtomsconformers for one reactant species. Bimolecular reactions use two ensembles.transition_states: list of transition-state conformerAtoms.charge,multiplicity: charge and spin multiplicity used for every structure.level_of_theory: method used for single-point energies and Hessians.temperature_start,temperature_stop,temperature_step: temperature grid in K.
Workflow
For each reactant and transition-state conformer, Atomiverse evaluates a single-point energy, vibrational analysis, and MSRRHO thermochemistry. The conformer free energies are combined with a Boltzmann ensemble sum, then an Eyring transition-state-theory rate constant is reported at each temperature.
Results
result.kinetics is a table with:
temperatureactivation_gibbs_kj_per_molrate_constantrate_constant_unit
result.steps contains per-conformer energy, frequencies, zero-point energy, and Gibbs free energies used to build the rate table.
Thresholds and checks
- Temperature grids are limited to 2000 points.
- Vibrational modes with magnitude below 50 cm⁻¹ are treated as external/soft modes by the vibrational workflow.
- Transition-state conformers report the most negative retained frequency as
imaginary_frequency_cm1; inspect this value to confirm the saddle point. - Very large ensembles increase the requested resource tier automatically.