Skip to main content
← OpenMECP Documentation

Module reaction_path

Module reaction_path 

Source
Expand description

NEB and path optimization Reaction path optimization and coordinate driving methods.

This module implements various methods for exploring reaction paths and potential energy surfaces in quantum chemistry calculations. It provides tools for:

  • Coordinate Driving: Systematically vary geometric parameters along a reaction coordinate
  • Nudged Elastic Band (NEB): Optimize minimum energy paths between reactants and products
  • Path Analysis: Calculate path statistics and analyze reaction mechanisms
  • Constraint Handling: Apply geometric constraints during path optimization

§Theoretical Background

§Reaction Coordinates

A reaction coordinate is a geometric parameter that describes the progress of a chemical reaction. Common reaction coordinates include:

  • Bond lengths: Distance between two atoms (r₁₂)
  • Bond angles: Angle between three atoms (∠ABC)
  • Dihedral angles: Torsion angle between four atoms (∠ABCD)

§Coordinate Driving

Coordinate driving systematically varies a chosen reaction coordinate from an initial value to a final value while optimizing all other degrees of freedom. This generates a series of geometries that represent a possible reaction path.

The method uses constrained optimization at each point:

minimize E(x) subject to g(x) = target_value

where E(x) is the energy, g(x) is the reaction coordinate, and target_value varies from start to end.

§Nudged Elastic Band (NEB) Method

The NEB method finds the minimum energy path (MEP) between two known structures (reactant and product) by optimizing a chain of intermediate images connected by springs. The method balances two forces:

  1. Spring forces: Keep images evenly distributed along the path
  2. True forces: Drive images toward the minimum energy path

The NEB force on image i is:

F_i = F_i^spring + F_i^⊥

where F_i^spring is the spring force along the path tangent and F_i^⊥ is the component of the true force perpendicular to the path.

§Applications

  • Transition State Search: Find saddle points along reaction paths
  • Reaction Mechanism Elucidation: Understand how reactions proceed
  • Barrier Height Calculation: Determine activation energies
  • Conformational Analysis: Explore molecular conformational changes

§References

  • Henkelman, G.; Jónsson, H. J. Chem. Phys. 2000, 113, 9978-9985.
  • Henkelman, G.; Uberuaga, B. P.; Jónsson, H. J. Chem. Phys. 2000, 113, 9901-9904.
  • Sheppard, D.; Terrell, R.; Henkelman, G. J. Chem. Phys. 2008, 128, 134106.

Structs§

DriveCoordinate
Represents a specific geometric coordinate to drive during reaction path exploration.
PathStatistics
Statistics for a reaction path Statistics and data collected along a reaction path.

Enums§

CoordinateType
Types of geometric coordinates that can be driven during reaction path exploration.

Functions§

adjust_bond_length 🔒
Adjusts the bond length between two atoms to a target value.
analyze_reaction_path
Analyzes a reaction path and computes comprehensive statistical information.
calculate_constraint_force 🔒
Calculates the constraint force (gradient) for a single geometric constraint.
calculate_constraint_violation 🔒
Calculates the constraint violation for a single geometric constraint.
calculate_distance 🔒
Calculates the Euclidean distance between two atoms in a molecular geometry.
calculate_neb_force 🔒
Calculates the NEB force for a specific image in the reaction path.
calculate_rmsd 🔒
Calculates the Root Mean Square Deviation (RMSD) between two molecular geometries.
calculate_tangent 🔒
Calculates the tangent vector for NEB path optimization.
constrained_coordinate_driving 🔒
Performs constrained optimization to drive a coordinate to its target value.
drive_coordinate
Generates a series of geometries by systematically driving a coordinate from start to end value.
geometry_to_coords 🔒
Converts a molecular geometry to a flat coordinate vector.
get_average_spacing 🔒
Calculates the average spacing between consecutive images in a reaction path.
optimize_reaction_path
Optimizes a reaction path using the Nudged Elastic Band (NEB) method.
subtract_geometries 🔒
Subtracts two geometries coordinate-wise to compute displacement vectors.