# Nudged Elastic Band (NEB)¶

The Nudged Elastic Band (NEB) method [1] can be used to find a reaction path and the transition state between a reactant and a product state.

Fig. 1 Pictorial representation of a reaction path computed with NEB

At the beginning of a NEB calculation, the geometry of the initial and final systems are optimized to minimize their energy (unless the OptimizeEnds option is set to False).

Then, a rough approximation of the reaction path is build: a set of images is created by performing a linear interpolation between the initial and final systems. Optionally, an intermediate system can be provided, in which case the interpolation is performed between the initial and intermediate systems, and then between the intermediate and final systems.

Finally, a reaction path is found by performing a simultaneous optimization of all the images. In the NEB method the images are not independent from each other. The force on each image depend on its neighboring images: at each step the forces parallel to the reaction path are eliminated and a so-called spring force is added that tries to keep each image in the middle between its neighbors. This does not let images slide to the initial or final reaction state and ensures that they are evenly distributed along the reaction path.

During the NEB path optimization, a climbing image algorithm is used to drive the highest-energy image in the path to the transition state (unless the Climbing option is set to False).

Be aware that NEB is a computationally expensive method, typically involving hundreds if not thousands of energy and gradients evaluations.

## Input¶

A NEB calculation in AMS is triggered by setting the Task to NEB:

Task NEB


The NEB method requires two or three input systems. The first, unnamed system is used as the initial system and the system called final is used as a final system. These two systems are mandatory. This is an example of system-definitions for a HCN isomerization reaction:

Task NEB

# This is the initial system:
System
Atoms
C   0.0000   0.0000   0.0000
N   1.1800   0.0000   0.0000
H   2.1960   0.0000   0.0000
End
End

# This is the final system (note the header 'final' in the next line):
System final
Atoms
C   0.0000   0.0000   0.0000
N   1.1630   0.0000   0.0000
H  -1.0780   0.0000   0.0000
End
End


Optionally, a third system, called intermediate, can be used to provide a better approximation for the transition state. The intermediate system will be placed in the middle of the chain. When providing three input systems it may be a good idea to optimize the ends in advance and set OptimizeEnds to False to prevent creating an unbalanced reaction path.

Note that not only the atomic coordinates, but also the lattice parameters and the charge (if non-zero) must be set for all input systems.

Important

The order in which atoms are specified in the System%Atoms blocks must be the same for the initial and final systems (if you provide an intermediate system, you must use a consistent atom-ordering for that too). The order of the atoms must be consistent because the images-interpolation algorithm maps the n-th atom of the initial system to the n-th atom of the final system.

All NEB-specific options are specified in the NEB input block:

NEB
Climbing [True | False]
ClimbingThreshold float
Images integer
InterpolateInternal [True | False]
InterpolateShortest [True | False]
Iterations integer
Jacobian float
MapAtomsToCell [True | False]
OldTangent [True | False]
OptimizeEnds [True | False]
OptimizeLattice [True | False]
Parallel
nCoresPerGroup integer
nGroups integer
nNodesPerGroup integer
End
Restart string
Spring float
End


All keys of the NEB block have reasonable defaults or are optional. Thus, in principle, the NEB block can be omitted altogether. These are the main options:

NEB
Images
Type: Integer 8 Number of images Number of NEB images (not counting the chain ends). Using more images will result in a smoother reaction path and can help with convergence problems, but it will also increase the computation time.
Iterations
Type: Integer Maximum number of iterations Maximum number of NEB iterations. The default value depends on the number of degrees of freedom (number of images, atoms, periodic dimensions).
Spring
Type: Float 1.0 Hartree/Bohr^2 Spring value Spring force constant in atomic units.
Climbing
Type: Bool True Climb highest image to TS Use the climbing image algorithm to drive the highest image to the transition state.
ClimbingThreshold
Type: Float 0.0 Hartree/Bohr CI force threshold Climbing image force threshold. If ClimbingThreshold > 0 and the max perpendicular force component is above the threshold then no climbing is performed at this step. This entry can be used to get a better approximation for the reaction path before starting the search for the transition state. A typical value is 0.01 Hartree/Bohr.
InterpolateInternal
Type: Bool True Interpolate in Internal coordinates The initial NEB image geometries are calculated by interpolating between the initial and the final state. By default, for unconstrained non-periodic systems the interpolation is performed in Internal coordinates but the user can choose to do it in the Cartesian ones. For periodic systems or systems with constraints the interpolation is always done in Cartesian coordinates.
InterpolateShortest
Type: Bool True Interpolate across cell boundary Allow interpolation across periodic cell boundaries. Set to false if an atom is intended to move more than half across the simulation box during reaction.
OptimizeEnds
Type: Bool True Optimize reactants/products Start the NEB with optimization of the reactant and product geometries.
Restart
Type: String Restart from Provide an ams.rkf file from a previous NEB calculation to restart from. It can be an unfinished NEB calculation or one performed with different engine parameters.

The following keys are related to solid-state NEB (SS-NEB):

NEB
OptimizeLattice
Type: Bool False Optimize lattice Turn on the solid-state NEB (SS-NEB).
Jacobian
Type: Float Jacobian value Scaling factor used to convert the lattice strain to a NEB coordinate value. Default value: sqrt(N)*(V/N)^(1/d), where V - lattice volume (area for 2D, length for 1D), N - number of atoms, and d - number of periodic dimensions.
MapAtomsToCell
Type: Bool True Map atoms to cell Translate atoms to the [-0.5,0.5] cell before every step. This option cannot be disabled for SS-NEB.

At each iteration, the images may be computed in parallel. The parallel execution is normally configured completely automatically, but users can override the automatic parallelization using the keys in the Parallel block.

NEB
Parallel
Type: Block Configuration for how the individual systems are calculated in parallel.
nCoresPerGroup
Type: Integer Number of cores in each working group.
nGroups
Type: Integer Total number of processor groups. This is the number of tasks that will be executed in parallel.
nNodesPerGroup
Type: Integer Cores per task Number of nodes in each group. This option should only be used on homogeneous compute clusters, where all used compute nodes have the same number of processor cores.

The following keys modify other aspects of the NEB and should, in principle, be left to their defaults:

NEB
OldTangent
Type: Bool False Use old tangent Turn on the old central difference tangent.

## Frozen atom constraints¶

It is possible to perform NEB with part of the system frozen, using the Atom key of the Constraints block:

Constraints
Atom
Type: Integer True Fix the position of an atom. Just one integer referring to the index of the atom in the [System%Atoms] block.

Note: the frozen atom constraints will not be enforced during the geometry optimizations of the initial and final systems, but only during the NEB optimization.

## Optimizations and convergence criteria¶

The NEB path is optimized using a limited-memory BFGS (l-BFGS) method where the system being optimized is a union of all NEB images with their respective molecular and spring forces.

The NEB convergence thresholds are defined in the GeometryOptimization%Convergence block. NEB is considered converged when the following criteria are satisfied:

• the change in the highest image energy must be less than [GeometryOptimization%Convergence%Energy]
• the max atomic force component for the highest image must be less than [GeometryOptimization%Convergence%Gradients]
• the max atomic force component for all other images must be less than ten times the [GeometryOptimization%Convergence%Gradients] value.

If the optimization of the initial NEB end point fails to converge, you can try using the FIRE optimization method.

## Output¶

Results are printed to the text output and stored in the binary result file ‘ams.rkf’. In the ‘ams.rkf’ file, NEB calculation results are stored in the History section just like in a normal geometry optimization. The NEB section of the RKF file contains additional, NEB-specific, information.

The NEB reaction path can be visualized using the ADFMovie GUI module.

## Troubleshooting¶

• In case the geometry optimization of the initial and final systems fails: try using the FIRE optimization method
• In case the optimization of the NEB path does not converge:

References

 [1] G. Henkelman, B.P. Uberuaga and H. Jonsson, A climbing image nudged elastic band method for finding saddle points and minimum energy paths, Journal of Chemical Physics 113, 9901 (2000)