pele.transition_states.findLowestEigenVector#

pele.transition_states.findLowestEigenVector(coords, pot, eigenvec0=None, H0=None, orthogZeroEigs=0, dx=0.001, first_order=True, gradient=None, **minimizer_kwargs)[source]#

Compute the lowest eigenvector of the Hessian using Rayleigh-Ritz minimization

*orthogZeroEigs is system dependent, don’t forget to set it*

Parameters:
coords

the coordinates at which to find the lowest eigenvector

pot

potential object

eigenvec0

the initial guess for the lowest eigenvector (will be random if not passed)

H0float

the initial guess for the diagonal component of the inverse Hessian

orthogZeroEigscallable

this function makes a vector orthogonal to the known zero eigenvectors:

orthogZeroEigs=0  : default behavior, assume translational and
                    rotational symmetry
orthogZeroEigs=None : the vector is unchanged
first_orderbool

use the first order forward finite differences approximation for the curvature rather than the second order central differences approximation. This is less accurate, but requires one fewer potential call per iteration.

gradientfloat array

the true gradient at coords. If first_order is true and gradient is not None then one potential call will be saved.

minimizer_kwargs

any additional keyword arguments are passed to the minimizer

See also

FindTransitionState

uses this class