1. Overview of pysisyphus
pysisyphus is a software-suite for the exploration of potential energy surfaces in ground- and excited states. User input is read from YAML files, but it can also be used as a python library to set up custom workflows.
Below you can find a screencast of the transition state (TS) search for the famous alanine dipeptide isomerization at the xtb level of theory. It starts with pre-optimizations of the initial and final geometry, a subsequent growing string calculation in delocalized internal coordinates to generate a guess for the final TS optimization and with which it concludes.
Besides being able to track excited states over the course of an optimization the idea of pysisyphus is to provide tools for handling the whole process of calculating reaction paths, starting from pre-optimizing the given input geometries for chain of states methods and ending with the hessian calculation on the optimized IRC endpoints.
1.1. Entry points
pysisyphus provides several entry points that can be called from the shell (command line). The available commands of the entry points can be queried with the -h or --help arguments:
# Run calculations (Minima optimization, TS search, IRC, NEB, GS, ...)
pysis
# Plotting of path-energies, optimization progress, IRC progress, etc ...
pysisplot
# Manipulate a .trj file or multiple .xyz files
pysistrj
1.1.1. pysis
Called with a YAML-input file. Simple and more complex examples can be found in the examples directory of this repository. Some common arguments are given below:
usage: pysis [-h] [--clean] --cp CP]
[yaml]
positional arguments:
yaml Start pysisyphus with input from a YAML file.
optional arguments:
--clean Ask for confirmation before cleaning.
--cp CP, --copy CP Copy .yaml file and corresponding geometries to a new
directory. Similar to TURBOMOLEs cpc command.
1.1.2. pysisplot
Visualization/plotting of the pysisyphus calculations. Some common arguments are given below:
usage: pysisplot (--cosforces | --cosens | --all_energies | --afir | --opt | --irc | --overlaps)
optional arguments:
--cosforces, --cf Plot image forces along a COS.
--cosens, --ce Plot COS energies.
--all_energies, -a Plot ground and excited state energies from 'overlap_data.h5'.
--afir Plot AFIR and true -energies and -forces from an AFIR calculation.
--opt Plot optimization progress.
--irc Plot IRC progress.
--overlaps, -o
1.1.3. pysistrj
Please see pysistrj --help for a list of available arguments.
1.2. Available calculators
1.2.1. Excited state capabilities
Program |
Gradient |
Hessian |
Exc. states |
Version |
---|---|---|---|---|
ORCA |
y |
y |
TD-DFT, TDA |
4.2.x |
Turbomole |
y |
y |
TD-DFT, TDA, ricc2 |
7.2-7.4 |
Gaussian16 |
y |
y |
tested TD-DFT, TDA |
|
PySCF |
y |
y |
tested TD-DFT |
1.7.5 |
OpenMOLCAS |
y |
n |
&rasscf |
Not yet derived from OverlapCalculator |
1.2.2. Ground states capabilities
Program |
Gradient |
Hessian |
Version |
---|---|---|---|
MOPAC2016 |
y |
y |
|
XTB |
y |
y |
6.3.2 |
QCEngine |
y |
n |
>= 0.16.0 |
Psi4 |
y |
y |
1.2.3. Pure python calculators & Wrappers
Program |
Gradient |
Hessian |
Comment |
---|---|---|---|
Sympy 2D |
y |
y |
Many analytical potentials (LEPS, Rosenbrock, Cerjan-Miller, Muller-Brown, ...) |
Lennard-Jones |
y |
n |
No periodic boundary conditions |
AFIR |
y |
n |
|
ONIOM |
y |
n |
Arbitrary number of layers with multicenter-support in the highest layer. |
FakeASE |
y |
n |
Wraps pysisyphus calculators so they can be used with ase. |
1.3. Available algorithms
1.3.1. Chain Of States Methods
Algorithm |
Coordinates |
Comment |
---|---|---|
Nudged Elastic Band (NEB) |
Cartesian, DLC planned |
Climbing Image variants, Doubly nudged variant |
Adaptive NEB |
Cartesian |
Not well tested |
Free-End NEB |
Cartesian |
Not well tested |
Simple Zero-Temperature-String |
Cartesian |
Equal spacing, energy-dependent spacing |
Growing String Method |
Cartesian, DLC |
1.3.2. Chain Of States Optimizer
Algorithm |
Comment |
Links |
---|---|---|
Steepest Descent |
Backtracking variant |
|
Conjugate Gradient |
Backtracking variant |
|
QuickMin |
||
FIRE |
||
BFGS |
1.3.3. Transition state optimization
Algorithm |
Comment |
Links |
---|---|---|
RS-P-RFO |
default |
|
RS-I-RFO |
||
TRIM |
||
Dimer method |
1.3.4. Intrinsic Reaction Coordinate integrators
Algorithm |
Comment |
Links |
---|---|---|
Damped-Velocity-Verlet |
||
Euler |
Not recommended |
|
EulerPC |
default |
|
Gonzales-Schlegel 2 |
||
Local Quadratic Approximation |
||
Modified IMK |
||
Runge-Kutta-4 |
Not recommended |
1.4. Additional remarks
pysisyphus uses the tempfile module from the python stdlib. The location of the temporary directories can be controlled by setting the $TMPDIR environment variable before executing pysis.
export TMPDIR=[tmpdir]