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.

https://asciinema.org/a/300731.png

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

NEB-Optimizers

Conjugate Gradient

Backtracking variant

NEB-Optimizers

QuickMin

NEB-Optimizers

FIRE

NEB-Optimizers

BFGS

NEB-Optimizers

1.3.3. Transition state optimization

Algorithm

Comment

Links

RS-P-RFO

default

RFO-Paper, RS-Paper

RS-I-RFO

RFO-Paper, RS-Paper

TRIM

TRIM-Paper

Dimer method

1.3.4. Intrinsic Reaction Coordinate integrators

Algorithm

Comment

Links

Damped-Velocity-Verlet

DVV-Paper

Euler

Not recommended

EulerPC

default

Kaestner-PC, Euler-PC

Gonzales-Schlegel 2

GS2-Paper

Local Quadratic Approximation

LQA-Paper

Modified IMK

IMK-Paper

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]