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.
Local transition state search
FindTransitionState(coords, pot[, tol, ...]) |
This class implements the hybrid eigenvector following routine for finding the nearest transition state |
findTransitionState(*args, **kwargs) |
simply a wrapper for initializing and running FindTransitionState |
Lowest eigenvalue search
findLowestEigenVector(coords, pot[, ...]) |
Compute the lowest eigenvector of the Hessian using Rayleigh-Ritz minimization |
(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 |