# Transition States (pele.transition_states)¶

This module contains functions and classes related to local transition state searches. Most of these algorithms will not need to be directly called by the user. However it is important to know how these work because they form some of the core routines of landscape exploration.

## (Doubly-) Nudged Elastic Band¶

The following functions implement the Nudged Elastic Band and Doubly-Nudged Elastic Band method. The user should interact via the driver class:

 NEBDriver(potential, coords1, coords2[, k, ...]) driver class for NEB

In the backend, the work is done by the following functions.

 NEB(path, potential[, distance, k, ...]) Doubly nudged elastic band implementation InterpolatedPath(initial, final, nimages[, ...]) Wraps interpolation that it can be accessed like a list / array without storing the nodes InterpolatedPathDensity(initial, final, distance) Return a InterpolatedPath object with the appropriate

## Orthogonalize to zero eigenvectors¶

These functions make a vector orthogonal to known zero eigenvectors (eigenvectors with a zero eigenvalue). Typically these correspond to known symmetries of the system like translational invariance, rotational invariance. Frozen degrees of freedom also contribute zero eigenvecotrs

 orthogopt(v, coords[, norm, translation_only]) make a vector orthogonal to eigenvectors of the Hessian corresponding to overall orthogopt_translation_only(v, coords[, ...]) a convience wrapper for orthogopt with the translation_only flag set to True zeroEV_translation(coords) return the set of zero eigenvalue vectors corresponding to uniform translation zeroEV_rotation(coords) return the set of zero eigenvalue vectors corresponding to global rotation zeroEV_cluster(coords) return the set of zero eigenvalue vectors corresponding to uniform translation and rotation gramm_schmidt(v) make a set of vectors orthogonal to each other.

### Finding minima on either side of a transition state¶

When a transition state is found we step off either side of the transition state to find the minima which the transition state connects. This routine controls that process

 minima_from_ts(pot, xt[, n, quench]) step off either side of a transition state and quench to find the minima