Skip to main content

Minimal energy path tools for atomistic systems

Project description

Minimum Energy Path Tools

CircleCI Coverage Status


This package contains various methods for finding the minimal energy path in atom simulations.

Currently the following methods are implemented:

Nudged elastic band method [1]

Climbing image nudged elastic band method [2]

How to use

Regular NEB

from mep.optimize import ScipyOptimizer
from mep.path import Path
from mep.neb import NEB
from mep.models import LEPS

leps = LEPS() # Test model 
op = ScipyOptimizer(leps) # local optimizer for finding local minima
x0 = op.minimize([1, 4], bounds=[[0, 4], [-2, 4]]).x # minima one
x1 = op.minimize([3, 1], bounds=[[0, 4], [-2, 4]]).x # minima two

path = Path.from_linear_end_points(x0, x1, 101, 1)  # set 101 images, and k=1
neb =NEB(leps, path) # initialize NEB
history = # run

The results will be like the following


Similar results can be obtained using the LEPS model with harmonics LEPSHarm

LEPSHarm_example LEPS_NEB


Every thing is the same except that

neb =NEB(leps, path, climbing=True, n_climbs=1) # set one image for climbing
history =, n_steps=10, n_climb_steps=100) # run normal NEB for 10 steps and then switch to CINEB

For comparison, normal NEB using LEPSHarm potential with 5 images gives the following




We can see that using only 5 images, the CINEB gets Ea = 3.63 eV, the same as the one we ran with 101 images! With only normal NEB, however, this Ea value is substantially smaller (3.25 eV).


[1] Henkelman, G., & Jónsson, H. (2000). Improved tangent estimate in the nudged elastic band method for finding minimum energy paths and saddle points. The Journal of chemical physics, 113(22), 9978-9985.

[2] Henkelman, G., Uberuaga, B. P., & Jónsson, H. (2000). A climbing image nudged elastic band method for finding saddle points and minimum energy paths. The Journal of chemical physics, 113(22), 9901-9904.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for mep, version 0.0.1
Filename, size File type Python version Upload date Hashes
Filename, size mep-0.0.1-py3-none-any.whl (11.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size mep-0.0.1.tar.gz (12.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page