Nudged Elastic Band#

The nudged elastic band (NEB) is a method for finding saddle points and minimum energy paths between known reactants and products. The method works by optimizing a number of intermediate images along the reaction path. Each image finds the lowest energy possible while maintaining equal spacing to neighboring images. This constrained optimization is done by adding spring forces along the band between images and by projecting out the component of the force due to the potential perpendicular to the band.

Details may be found in Jonsson et al. [NEB_JMJ98], Sheppard and Henkelman [NEB_SH11], and Ásgeirsson and Jónsson [NEB_AsgeirssonJonsson18].

In order to run a nudged elastic band calculation, set job to nudged_elastic_band in the [Main] section. Details of the optimizer can be set as per the Optimizer document.

Variants#

Added in version 2.0:

Note

eON, like many other codes after Sheppard et al. [NEB_STH08] uses one optimizer instance for moving the whole band of images.

Added in version 3.0_TBA: Via the surrogate potential interface, a native C++ implementation of the Gaussian Process accelerated NEB first described in Koistinen et al. [NEB_KDagbjartsdottirAsgeirsson+17] and Koistinen et al. [NEB_KAsgeirssonVJonsson19].

Configuration#

[Nudged Elastic Band]

Changed in version 2.1_TBA: In TOML, this will be [NEB]

pydantic model eon.schema.NudgedElasticBandConfig[source]#

Show JSON schema
{
   "title": "NudgedElasticBandConfig",
   "type": "object",
   "properties": {
      "images": {
         "default": 5,
         "description": "Number of NEB images between the fixed endpoints.",
         "title": "Images",
         "type": "integer"
      },
      "spring": {
         "default": 5.0,
         "description": "The spring constant, in eV/Ang^2 between the images.",
         "title": "Spring",
         "type": "number"
      },
      "climbing_image_method": {
         "default": false,
         "description": "Indicates if the climbing image method is used.",
         "title": "Climbing Image Method",
         "type": "boolean"
      },
      "old_tangent": {
         "default": false,
         "description": "Indicates if the old tangent method is used.",
         "title": "Old Tangent",
         "type": "boolean"
      },
      "neb_max_iterations": {
         "default": 1000,
         "description": "Maximum number of iterations allowed for the NEB.",
         "title": "Neb Max Iterations",
         "type": "integer"
      },
      "neb_climbing_image_converged_only": {
         "default": true,
         "description": "Indicates if only the climbing image converged is used.",
         "title": "Neb Climbing Image Converged Only",
         "type": "boolean"
      },
      "neb_doubly_nudged": {
         "default": false,
         "description": "Indicates if the doubly nudged method is used.",
         "title": "Neb Doubly Nudged",
         "type": "boolean"
      },
      "neb_doubly_nudged_switching": {
         "default": false,
         "description": "Indicates if the doubly nudged switching method is used.",
         "title": "Neb Doubly Nudged Switching",
         "type": "boolean"
      },
      "neb_elastic_band": {
         "default": false,
         "description": "Indicates if the elastic band method is used.",
         "title": "Neb Elastic Band",
         "type": "boolean"
      },
      "neb_converged_force": {
         "default": 0.01,
         "description": "Converged force threshold for the NEB.",
         "title": "Neb Converged Force",
         "type": "number"
      },
      "neb_energy_weighted": {
         "default": false,
         "description": "Indicates if the energy-weighted method is used.",
         "title": "Neb Energy Weighted",
         "type": "boolean"
      },
      "neb_ksp_min": {
         "default": 0.97,
         "description": "Minimum value for KSP in the energy-weighted method.",
         "title": "Neb Ksp Min",
         "type": "number"
      },
      "neb_ksp_max": {
         "default": 9.7,
         "description": "Maximum value for KSP in the energy-weighted method.",
         "title": "Neb Ksp Max",
         "type": "number"
      }
   }
}

Config:
  • use_attribute_docstrings: bool = True

Fields:
field climbing_image_method: bool = False#

As discussed in Henkelman et al. [NEB_HUJonsson00].

Indicates if the climbing image method is used.

field images: int = 5#

Number of NEB images between the fixed endpoints.

field neb_climbing_image_converged_only: bool = True#

Indicates if only the climbing image converged is used.

field neb_converged_force: float = 0.01#

This defaults to being the same as eon.schema.OptimizerConfig.converged_force

Converged force threshold for the NEB.

field neb_doubly_nudged: bool = False#

Indicates if the doubly nudged method is used.

field neb_doubly_nudged_switching: bool = False#

Method as demonstrated in Trygubenko and Wales [NEB_TW04].

Indicates if the doubly nudged switching method is used.

field neb_elastic_band: bool = False#

Indicates if the elastic band method is used.

field neb_energy_weighted: bool = False#

Method as demonstrated in Ásgeirsson et al. [NEB_AsgeirssonBB+21].

Indicates if the energy-weighted method is used.

field neb_ksp_max: float = 9.7#

Maximum value for KSP in the energy-weighted method.

field neb_ksp_min: float = 0.97#

Minimum value for KSP in the energy-weighted method.

field neb_max_iterations: int = 1000#

Maximum number of iterations allowed for the NEB.

field old_tangent: bool = False#

From Mills and Jónsson [NEB_MJonsson94], before Henkelman and Jónsson [NEB_HJonsson00].

Indicates if the old tangent method is used.

field spring: float = 5.0#

The spring constant, in eV/Ang^2 between the images.

Refinement#

Added in version 2.0.

Far from the minimum energy path, second order optimizers like those using the LBFGS may not be optimal. In these situations, to traverse uninteresting sections of the potential energy surface rapidly, it is best to use an accelerating optimizer like QuickMin to begin with and transition to LBFGS later. To facilitate this, the [Refine] section has been introduced.

pydantic model eon.schema.RefineConfig[source]#

Show JSON schema
{
   "title": "RefineConfig",
   "type": "object",
   "properties": {
      "refine_opt_method": {
         "default": "none",
         "description": "The optimization method to use for refinement.",
         "enum": [
            "none",
            "cg",
            "lbfgs",
            "fire",
            "box",
            "qm"
         ],
         "title": "Refine Opt Method",
         "type": "string"
      },
      "refine_threshold": {
         "default": 0.5,
         "description": "Threshold for refinement optimization.",
         "title": "Refine Threshold",
         "type": "number"
      }
   }
}

Config:
  • use_attribute_docstrings: bool = True

Fields:
field refine_opt_method: Literal['none', 'cg', 'lbfgs', 'fire', 'box', 'qm'] = 'none'#
Options:
  • none: No refinement optimization

  • cg: Conjugate gradient

  • lbfgs: Limited Memory Broyden-Fletcher-Goldfarb-Shanno QuasiNewton optimizer

  • fire: Fast inertial relaxation engine

  • box: Optimizes the atom positions and box using quickmin

  • qm: Quickmin

The optimization method to use for refinement.

field refine_threshold: float = 0.5#

Threshold for refinement optimization.

References#

[NEB_HJonsson00] (1,2)

Graeme Henkelman and Hannes Jónsson. Improved tangent estimate in the nudged elastic band method for finding minimum energy paths and saddle points. The Journal of Chemical Physics, 113(22):9978–9985, December 2000. doi:10.1063/1.1323224.

[NEB_HUJonsson00] (1,2)

Graeme Henkelman, Blas P. Uberuaga, and Hannes Jónsson. A climbing image nudged elastic band method for finding saddle points and minimum energy paths. The Journal of Chemical Physics, 113(22):9901–9904, November 2000. doi:10.1063/1.1329672.

[NEB_JMJ98]

Hannes Jonsson, Greg Mills, and Karsten W. Jacobsen. Nudged elastic band method for finding minimum energy paths of transitions. In Classical and Quantum Dynamics in Condensed Phase Simulations, pages 385–404. WORLD SCIENTIFIC, June 1998. doi:10.1142/9789812839664_0016.

[NEB_KDagbjartsdottirAsgeirsson+17]

Olli-Pekka Koistinen, Freyja B. Dagbjartsdóttir, Vilhjálmur Ásgeirsson, Aki Vehtari, and Hannes Jónsson. Nudged elastic band calculations accelerated with Gaussian process regression. The Journal of Chemical Physics, 147(15):152720, September 2017. doi:10.1063/1.4986787.

[NEB_KAsgeirssonVJonsson19]

Olli-Pekka Koistinen, Vilhjálmur Ásgeirsson, Aki Vehtari, and Hannes Jónsson. Nudged Elastic Band Calculations Accelerated with Gaussian Process Regression Based on Inverse Interatomic Distances. Journal of Chemical Theory and Computation, 15(12):6738–6751, December 2019. doi:10.1021/acs.jctc.9b00692.

[NEB_MJonsson94] (1,2)

Greg Mills and Hannes Jónsson. Quantum and thermal effects in H 2 dissociative adsorption: Evaluation of free energy barriers in multidimensional quantum systems. Physical Review Letters, 72(7):1124–1127, February 1994. doi:10.1103/PhysRevLett.72.1124.

[NEB_SMJonsson94]

Gregory K. Schenter, Gregory Mills, and Hannes Jónsson. Reversible work based quantum transition state theory. The Journal of Chemical Physics, 101(10):8964–8971, November 1994. doi:10.1063/1.468447.

[NEB_SH11]

Daniel Sheppard and Graeme Henkelman. Paths to which the nudged elastic band converges. Journal of Computational Chemistry, 32(8):1769–1771, 2011. doi:10.1002/jcc.21748.

[NEB_STH08]

Daniel Sheppard, Rye Terrell, and Graeme Henkelman. Optimization methods for finding minimum energy paths. The Journal of Chemical Physics, 128(13):134106, April 2008. doi:10.1063/1.2841941.

[NEB_TW04] (1,2)

Semen A. Trygubenko and David J. Wales. A doubly nudged elastic band method for finding transition states. The Journal of Chemical Physics, 120(5):2082–2094, February 2004. doi:10.1063/1.1636455.

[NEB_AsgeirssonBB+21] (1,2)

Vilhjálmur Ásgeirsson, Benedikt Orri Birgisson, Ragnar Bjornsson, Ute Becker, Frank Neese, Christoph Riplinger, and Hannes Jónsson. Nudged Elastic Band Method for Molecular Reactions Using Energy-Weighted Springs Combined with Eigenvector Following. Journal of Chemical Theory and Computation, 17(8):4929–4945, August 2021. doi:10.1021/acs.jctc.1c00462.

[NEB_AsgeirssonJonsson18]

Vilhjálmur Ásgeirsson and Hannes Jónsson. Exploring Potential Energy Surfaces with Saddle Point Searches. In Wanda Andreoni and Sidney Yip, editors, Handbook of Materials Modeling, pages 1–26. Springer International Publishing, Cham, 2018. doi:10.1007/978-3-319-42913-7_28-1.