NEB transition state finder

This page gives a description of the input section that controls the “Nudged Elastic Band” (NEB) transition state finder. This is a complicated calculation that requires very careful input. It involves multiple images in a “chain-of-states” calculation, and the generation of the intermediate states between the reactant and product geometries can be very tricky, and lead to poorly behaved geometries, possibly even leading to atoms being placed on top of one another. Hence, use of this feature requires very careful construction on the part of the user. To trigger an NEB calculation, enter a “do neb” instruction in the command options. There is a NEB Tutorial available that provides additional guidance in the use of NEB to find transition states.

The code implements a method based on that described in:
“Nudged elastic band method for finding minimum energy paths of transitions”,
H. Jonsson, G.Mills, and K.W. Jacobsen, in “Classical and Quantum Dynamics in Condensed Phase Simulations” ediited by B.J. Berne, G. Ciccoti, and D.F. Coker (World Scientific, Singapore, 1998), p385.
and
“A climbing image nudged elastic band method for finding saddle points and minimum energy paths”
G. Henkelman, B.P. Uberuaga, and Hannes Jonsson, J. Chem. Phys. 113, 9901 (2000).

Important: experience indicates that relaxation of a NEB chain of geometries is very challenging. The Broyden method that is the Quest default for geometry relaxation will usually fail. Hence, when doing a NEB calculation, it is recommended that the user invoke a dynamical method (e.g., ASD) for relaxing geometries in the geometry relaxation section.

Input options

There are two parts to the input section. A beginning part, which is highly structured, keyword-driven, with both required and optional data that must be in a particular order (such as for the setup structure data), and a following section of data that is optional, also keyword-driven.

The keywords must be left-justified, but all data input is free-format.

neb data - begin NEB input data section
images - the number of (intermediate) NEB images
     images (int)
einitial - total energy (Ry) of starting point of band
     energy_start (real)
[coordinates] - list of atomic coordinates, start of banddo i_atom = 1, n_atom
     x_atom y_atom z_atom (3*real)enddo
     - OR -
[atom, types, and positions?] - list of atoms as in setup:
do i_atom = 1, n_atom
     label_atom type_atom x_atom y_atom z_atom (2*char,3*real)
enddo
efinal - total energy (Ry) of end point of band
     energy_end (real)
coordinates - list of atomic coordinates, end of band
do i_atom = 1, n_atom
     x_atom y_atom z_atom (3*real)
enddo
     - OR -
atom, types, and positions? - list of atoms as in setup:
do i_atom = 1, n_atom
     label_atom type_atom x_atom y_atom z_atom (2*char,3*real)
enddo
End of structured required section, begin optional (any order) input:
...
Note: invocation of following three options is changing.
antikink | no_antikink - tangent = to uphill image, or from downhill to uphill image
...
climb - invoke climbing image (highest image only)
...
extreme | no_extreme - push nearest images to min/max, or not
...
restart | no_restart - restart NEB (very iffy, code untested), or prevent restart
...
nebspring - spring constant connecting NEB images
     spring_neb (real)
...
image - intermediate image for input of coords
     image (int)
coordinates - list of atomic coordinates for this image
do i_atom = 1, n_atom
     x_atom y_atom z_atom (3*real)
enddo
     - OR -
atom, types, and positions? - list of atoms as in setup:
do i_atom = 1, n_atom
     label_atom type_atom x_atom y_atom z_atom (2*char,3*real)
enddo
...
end neb data

Return to Top

Details

The NEB method is intended to find the minimum energy path (MEP) between two points – which can be thought of reactant and product of a reaction – to find a path that traverses a transition barrier. The two points are usually local equilibria, but there is no requirement this be so. The requirement is solely that the end-points be on a MEP. For example, one could use the NEB to find the path between a saddle point (i.e. highest point on a MEP, the transition state) and one of the end-point equilibrium configurations.

The atomic configuration entered in the setup phase is, by default, taken to be the initial (reactant) state, and the atom types (elements) of the atom list are taken from the setup phase input. NB: make sure that the endpoint and any images entered in the NEB input have the same order of atom types as in the setup. The NEB code does not check for consistency of atom types. The user must take care not to transmute elements in the NEB input! While input of atomic positions in the NEB section is possible through either the coordinate – OR – atom, types, and position form (the latter as in the setup phase), during the NEB input, all atom type information is ignored.

Even though the initial state default is the geometry given in the setup, it can be overridden in the NEB input section. Even if the user does not override the initial state coordinates, the input must provide a total energy einitial for the initial state. The final state endpoint total energy efinal and coordinates are both required in the NEB input. The energies are used in defining the uphill/downhill directions for the antikink (highly recommended) prescription and the extreme option.

The restart option is not entirely validated. The safest procedure is to transfer the last recorded band image geometries into the NEB input file, and begin the MEP minimization anew (dropping the history).

The NEB code fills in missing images in the NEB using linear interpolation. Occasionally, this may result in a pathological configuration (e.g., atoms being at the same point in space) that needs to be avoided. Or there might be an earlier, partially converged NEB calculation that the user would like to start from. The NEB input file has the facility to input each of the individual NEB image configurations using the image/coordinate keywords in the optional section of the NEB input file. The user can input any or all of the images. The code will fill in any missing (empty) images with linear interpolation between the nearest image configurations for which it has coordinates. Note that the code outputs, both in the standard listing file, and in the NEB restart file, image coordinates that can be directly transferred into the NEB input data section.

Important: all the NEB images share the system information (cell, k-sample, symmetry, atom types, geometry constraints) described in the setup phase section of the input file. Note that the intermediate images in the NEB may have less symmetry than the two end points (reactant and product), and the input file will need to be modified to reflect this. The same atoms will be “frozen” in all images, the same supercell will be used, and the atom types as listed in the setup phase data will be used across all images (make sure that the atoms in the two endpoints of the NEB are in the same order).

Return to Top

Troubleshooting

Experience in NEB calculations is limited. The below is a description of possible approaches to deal with certain problems.

The NEB is taking a large number of steps to converge (also check geometry troubleshooting).
Rumor is this problem is characteristic of NEB calculations. Please forward summaries of successful approaches here.
Possible suggestions: Add or reduce number of images, increase or decrease the NEB spring constant, try alternate relaxation methods, turn the “extreme” option off, incrementally add more images to the NEB, apply constraints to geometry minimization (esp. frame constraints to molecular NEB calculations), …

One of the NEB images crashes in the setup phase in the first NEB step.
Perhaps the linear interpolation between the NEB endpoints created a geometry where two atoms have the same position in space?
Check the endpoints. Make sure the atoms are in the same order in both the reactant and product geometries. If indeed two atoms cross in space, create an explicit geometry for that image in the NEB such that the atoms do not coincide in position, and insert it into the NEB input section (using the image keyword above).

One or more of the geometries “blows up” during the NEB.
Perhaps the geometry relaxation method was Broyden (the default)?
Change the minimization method to a dynamical method (ASD, etc.). Take the last “good” set of images in the calculation, and transfer into the NEB input file, and begin the calculation again. Also check geometry troubleshooting.

In a parallel NEB calculation, all images are identical.
Two possibilities:

  • Check that the initial and final state in your input are correct
  • Check that you are using the MPI rather than serial executable.
    If you use the serial executable in an MPI run, each processor will run the same serial NEB sequence.