Skip to content

Nudged Elastic Band

Interpolates a series of images between two endpoint structures and relaxes them into a minimum energy path (MEP), reporting the forward and reverse reaction barriers.

from ase.build import bulk
from materialsframework.analysis import NEBAnalyzer
from materialsframework.calculators import CHGNetCalculator

initial = bulk("Ni", "fcc", a=3.52, cubic=True)
final = initial.copy()
final.positions[0] += [0.5, 0.5, 0.0]  # move one atom toward a neighboring site

calc = CHGNetCalculator()
neb = NEBAnalyzer(calculator=calc, n_images=5, climb=True)
res = neb.calculate(initial, final)

print(res["energies"])         # eV per image, including endpoints
print(res["barrier"])          # forward energy barrier (eV)
print(res["reverse_barrier"])  # reverse energy barrier (eV)
print(res["reaction_energy"])  # eV, final image minus initial image
print(res["converged"])

See Theory for the derivation, or the API Reference for the full parameter list.