The Nudged Elastic Band (NEB) method is useful for searching reaction pathways and calculating activation energies. In Matlantis, calculations can be executed easily using the ase.neb.NEB class or MatlantisFeatures.features.common.NEBFeature.
(Reference) MatlantisFeatures also offers ReactionStringFeature, a calculation method based on the String method [3] and similar to the CI-NEB algorithm, to automatically compute transition states with high precision.
This article explains the points of caution when performing NEB calculations.
Notes on NEB Calculations
1. On the Structure of the Initial and Final States
- Ensure that the atomic indices (indx; the sequential numbers assigned to each atom) of the initial and final state structures are identical when creating them.
- When applying Periodic Boundary Conditions (PBC), do not use functions like "wrap" to bring atoms that have escaped outside the cell back into the interior of the periodic structure.
- If you save the structure in CIF format, atoms that exited the cell will be registered as if they were moved back inside the periodic structure. Therefore, it is recommended that you save the structure in formats such as XYZ, ASE Trajectory (.traj), or JSON.
2. On Calculator Assignment
In an NEB calculation, a calculator is assigned to all structures in the path (the initial state, the final state, and all intermediate interpolating states). We will now explain the points of caution when assigning this calculator.
-
Points of Caution When Running in Parallel Using ase.neb.NEB
The total execution time of an NEB calculation can be significantly reduced by running the calculation for all path structures in parallel, which is done by setting the NEB argument parallel=True as shown below:
neb = NEB(neb_images, k=0.05, parallel=True, climb=True, allow_shared_calculator=False)
However, if you use PFP as the calculator, it is designed not to support parallel execution with a single calculator instance. Therefore, you must set allow_shared_calculator=False and also generate and set a PFP calculator instance individually for every single structure in neb_images that you pass to NEB, as shown in the example below:
for neb_image in neb_images: estimator = Estimator(calc_mode=calc_mode, model_version=model_version) calculator = ASECalculator(estimator) neb_image.calc = calculator
- Consistency of Calculator Settings
Ensure that the settings of the calculator used for structure optimization of the initial and final states are identical to the settings of the calculator used for the NEB calculation. If the settings are not identical, the NEB calculation may fail to converge or converge to an abnormal path.
Reference
1. Atomic Simulation Environment, Nudged elastic band
https://wiki.fysik.dtu.dk/ase/ase/neb.html
2. RactionStringFeature
3. Weinan, E., Ren, W., and Vanden-Eijnden, E., Physical Review B, 66, 052301 (2002).
4. Atomistic Simulation Tutorial, Reaction Path Analysis
https://docs.matlantis.com/atomistic-simulation-tutorial/en/5_1_neb_basic.html
https://docs.matlantis.com/atomistic-simulation-tutorial/en/5_2_neb_catalyst.html