Publications
KinBot: Automated stationary point search on potential energy surfaces
Van de Vijver, Ruben; Zador, Judit Z.
KinBot is a Python code that automatically characterizes kinetically important stationary points on reactive potential energy surfaces and arranges the results into a form that lends itself easily to master equation calculations. This version of KinBot tackles C, H, O and S atom containing species and unimolecular (isomerization or dissociation) reactions. KinBot iteratively changes the geometry of the reactant to obtain initial guesses for reactive saddle points defined by KinBot's reaction types, which are then optimized by a third-party quantum chemistry package. KinBot verifies the connectivity of the saddle points with the reactant and identifies the products through intrinsic reaction coordinate calculations. New calculations can be automatically spawned from the products to obtain complete potential energy surfaces. The utilities of KinBot include conformer searches, projected frequency and hindered rotor calculations, and the automatic determination of the rotational symmetry numbers. Input files for popular RRKM master equation codes are automatically built, enabling an automated workflow all the way to the calculation of pressure and temperature dependent rate coefficients. Four examples are included. (i) [1,3]-sigmatropic H-migration reactions of unsaturated hydrocarbons and oxygenates are calculated to assess the relative importance of suprafacial and antrafacial reactions. (ii) Saddle points on three products of gamma-valerolactone thermal decomposition are studied and compared to literature potential energy surfaces. (iii) The previously published propene+OH reaction is reproduced to show the capability of building an entire potential energy surface. (iv) All species up to C4 in the Aramco Mech 2.0 are subjected to a KinBot search. Program summary: Program title: KinBot Program files doi: http://dx.doi.org/10.17632/hsh6dvv2zj.1 Licensing provisions: BSD 3-Clause Programming language: Python Supplementary material: 1. A static version of the source code (KinBot.tar), 2. The manual for the static version (KinBot_Manual.pdf) 3. Geometries and energies of the stationary points on the potential energy surface of the sigmatropic reaction search (sigmatropic_H_shift.out) 4. Geometries and energies of the stationary points on the potential energy surface of the propene+ OH central and terminal addition reaction (propene+oh central addition.out, propene+oh terminal addition.out) 5. Geometries and energies of the stationary points on the potential energy surface of gamma valerolactone, 4-pentenoic acid and 3-pentenoic acid (GVL energies and geometries.out, 4PA energies and geometries.out, 3PA energies and geometries.out) 6. Example runs including all input and output files for a one-well search for propanol radical, full PES search for the n-pentyl radical, a search for all homolytic scission in propanol, and the reaction searches for GVL (output.zip) 7. Results of symmetry calculations for a literature benchmark dataset (Symmetry_correct.pdf, Symmetry_wrong.pdf) Nature of problem: Automatic discovery of unimolecular reaction pathways (isomerization and dissociation) for molecules and radicals relevant in gas-phase combustion and atmospheric chemistry, including oxidation and pyrolytic processes for structures including carbon, oxygen, sulfur and hydrogen atoms. The reactants, products, and transition states are characterized using a suite of tools coupled to electronic structure codes, and the results are provided in a format that lends itself easily to calculating rate coefficients based on statistical rate theories with other external codes. Solution method: Reaction pathways are identified using heuristic searches starting from a reactant by iteratively altering its geometry toward a good guess for a transition state for reactions with barriers. The transition state is identified as a first-order saddle point on the potential energy surface, which is located using local optimization methods of third-party quantum chemistry codes. We use intrinsic reaction coordinate calculations to verify the direct connectivity of the saddle point to the reactant and to identify the product species. Conformational searches, hindered rotor potentials, frequency calculations, and high-level optimizations yield the necessary data for RRKM master equation calculations. Additional comments including restrictions and unusual features: KinBot is designed to run on Unix clusters, and is written in Python, compatible with versions 2.7 and 3. It communicates with a PBS or SLURM workload manager to submit quantum chemistry calculations to third-party software. It makes use of a modified fork of ASE for the input writing, calling and output parsing of the quantum chemistry software which has been tested with Gaussian (G09RevD.01). OpenBabel (2.4.1) and RDKit (2018.09.01) are used to convert smiles to internal species representations and for species comparison and results visualization. The output of KinBot can be visualized with the PESViewer script, and graph structures are drawn using NetworkX. The master equation solvers MESS or MESMER are needed to calculate rate coefficients at the end of a given run. This version of KinBot can handle H, C, S, and O atom-containing molecules, and searches for isomerization and dissociation pathways.