Skip to content

Optimization with the Python GeomeTRIC package

The geomeTRIC python package is developed and maintained by Lee-Ping Wang at UC Davis.12 Unlike the built-in optimizers, use of geomeTRIC-python implies that two programs will be running and TeraChem will be "driven" by geomeTRIC-python. Thus, one must run geomeTRIC from a Python session (and geomeTRIC will call TeraChem to do the electronic structure calculations). Please note that extensive documentation for geomeTRIC-python is available at: https://geometric.readthedocs.io

To begin, you need to install geomeTRIC in your Python (2.7 or 3.5+) environment (NumPy, Scipy, and NetworkX must also be installed):

pip install geometric

Make sure the $TeraChem environment variable is defined and that $TeraChem/bin/terachem corresponds to the desired TeraChem executable. You are all done! You should now be able to run an optimization (geometry minimization) by typing (example input files: geopt.tcin and spmin.xyz):

geometric-optimize --engine tera geopt.tcin

where geopt.tcin is the TeraChem input file. Be sure that the geopt.tcin file and the coordinates file specified in geopt.tcin are in the same directory where you are launching the optimization. Also, be sure that your geopt.tcin file contains at least the charge, spinmult, method, basis, and coords keywords.

During the optimization, you can monitor the progress by looking in the subfolder geopt.tmp which is the working directory for the TeraChem process.

At the end of the optimization, you will find the following files:

  • run.log File record of stdout from the optimization
  • run_optim.xyz Multi-structure XYZ file with the geometries from the optimization (the last one is the optimized geometry).

Transition State Optimization

geomeTRIC is also capable of optimizing transition states and conical intersections. For details, the reader is referred to the geomeTRIC documentation. For quick reference, a command for transition state optimization (and subsequent frequency and thermodynamic analysis at 300.0 K and 1.0 bar) is (example input files: ts.tcin and spts.xyz):

geometric-optimize --engine tera --transition yes --hessian first+last --frequency yes --thermo 300.0 1.0 ts.tcin

producing the files

  • ts.log File record of stdout from optimization
  • ts_optim.xyz Multi-structure XYZ file with the geometries from the optimization (the last one is the optimized geometry).
  • ts.vdata_first ForceBalance format file with geometry and frequency analysis from first Hessian (at first geometry in TS optimization)
  • ts.vdata_last ForceBalance format file with geometry and frequency analysis from last Hessian (at optimized TS)

Conical Intersection Optimization

For conical intersection optimization (example input files: meci.tcin, meci2.tcin, and spmin.xyz):

geometric-optimize --engine tera meci.tcin --meci meci2.tcin

where meci2.tcin should be a TeraChem input file specifying the computation of the upper state gradient and meci.tcin should be a TeraChem input file specifying the computation of the lower state gradient. This should produce the files:

  • meci.log File record of stdout from optimization
  • meci_optim.xyz Multi-structure XYZ file with the geometries from the optimization (the last one is the optimized geometry).

  1. L.-P. Wang and C. C. Song, Geometry optimization made simple with translation and rotation coordinates, J. Chem. Phys. 144 214108 (2016). 

  2. https://github.com/leeping/geomeTRIC