pele.transition_states.NEB#

class pele.transition_states.NEB(path, potential, distance=<function distance_cart>, k=100.0, adjustk_freq=0, adjustk_tol=0.1, adjustk_factor=1.05, with_springenergy=False, dneb=True, copy_potential=False, quenchParams=None, quenchRoutine=None, save_energies=False, verbose=-1, events=None, use_minimizer_callback=True)[source]#

Doubly nudged elastic band implementation

Parameters:
path: iteratable

iteratable object of all images

potential

the potential object

distancecallable

distance function for the elastic band

kfloat, optional

the elastic band spring constant

adjustk_freqinteger

frequency to adjust k, set to zero to disable

adjustk_tolfloat

tolerance for adjusting k up or down

adjustk_factorfloat

the multiplicative factor used to adjust k

dneb: bool, optional

do double nudging, default True

with_springenergy: boolean, optional

add the spring energy to the total energy of the band, default is False

copy_potentialbool, optional

if True a separate copy of the potential will be made for each image. This can be used to keep neighbor lists from being rebuilt over and over again.

quenchRoutinecallable

the quench routine to use in optimizing the band

quenchParams

parameters passed to the quench routine. The default tolerance for quench is 1e-4

save_energiesbool

if True and quenchParams.iprint exists and is positive, then the energy along the NEB path will be printed to a file of the form “neb.EofS.####” every iprint steps.

verboseinteger

verbosity level

eventslist of callables

list of callback functions called just before getEnergyGradient returns

use_minimizer_callback: boolean, optional

use the callback function of theminimizer to adjust k, it is not recommended to change this to false

See also

InterpolatedPath

used to construct required parameter path

InterpolatedPathDensity

alternate interpolater

Notes

use the Interpolation tools in this package to construct the initial path from a starting and ending point

Methods

MakeAllMaximaClimbing()

Make all maxima along the neb climbing images.

MakeHighestImageClimbing()

Make the image with the highest energy a climbing image

NEBForce(isclimbing, image, left, right, ...)

Calculate NEB force for 1 image.

copy()

create a copy of the current neb

getEnergy(coords)

this is a very dumb way of getting the energy.

getEnergyGradient(coords1d)

Calculates the gradient for the whole NEB.

optimize([quenchRoutine])

Optimize the band

printState()

print the current state of the NEB.

tangent(central, left, right, gleft, gright)

New uphill tangent formulation

tangent_old(central, left, right, gleft, gright)

Old tangent construction based on average of neighbouring images

Attributes