Reaction Paths (NEB)

A nudged-elastic-band calculation produces an ordered chain of images between two minima. Unlike a trajectory these are not frames in time: the x-axis is a reaction coordinate, and the quantities of interest are the forward and reverse barriers, the reaction energy, and the location of the saddle.

The path shown below is synthetic: no DFT, NEB or MD code produced it. The geometries are an ideal rocksalt MgO cell with one Li interstitial walked along a hand-chosen route, the energies come from E(u) = A·sin²(πu) + 0.18·u eV shifted by a constant −284.317 eV so they read like VASP totals, and the forces are that expression's analytic −dE/ds. Every number on this page exercises the viewer; none of them describes Li migration in MgO.

image 0 (1/7) 0 eV
Forward barrier
0.8339 eV
Reverse barrier
0.6539 eV
Reaction energy
0.18 eV
Highest image
#3 at 0.9563 Å
Fitted saddle (force-hermite)
+0.00691 eV above image #3

Why the reaction coordinate must be minimum-image

The migrating Li leaves the cell through the +z face and re-enters at −z. Taking raw coordinate differences turns that one 0.287 Å step into a 3.93 Å jump across almost the whole cell, and inflates the path with it:

Minimum-image arc length
1.988 Å
Raw coordinate subtraction
5.628 Å
Inflation factor
2.83×

Fitted saddle versus highest image

The highest computed image is #3, at 0.8339 eV above the initial state. The force-hermite fit places the saddle 0.00691 eV higher, between images #3 and #4. Quoting the fitted value as if an image sat there is a real reporting error, so the two are always reported separately.

Comparing mechanisms

Both paths in this fixture connect the same endpoints, so they must share a reaction energy of +0.18 eV; only the barrier distinguishes them. The direct hop carries forces and is fitted with the force-projected spline, the curved hop has energies only and falls back to a natural cubic.

Input format

Reaction paths are read from matterviz-reaction-path JSON. Drop a file onto the viewer above, or drop a multi-frame extended-XYZ file (what ase.io.write("neb.xyz", images) writes) — energies come from the energy= key on each comment line and forces from a forces block in Properties=. Loose single-structure files dropped together are assembled into one path in drop order and must each carry a numeric properties.energy.

{
  "format": "matterviz-reaction-path",
  "version": 1,
  "energy_unit": "eV",
  "paths": {
    "direct hop": {
      "label": "direct hop",
      "images": [
        {
          "energy": -284.317,
          "label": "image 0",
          "forces": [[0.0, 0.0, -0.09], ...],
          "structure": { "lattice": { "matrix": [[4.21, 0, 0], ...] }, "sites": [...] }
        }
      ]
    }
  }
}

A single path may replace paths with a top-level images array. A browser cannot read a directory from a plain drop, so a VASP 00/, 01/ … layout has to be converted to one of these formats first.