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_valuewhere 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:
- Spring forces: Keep images evenly distributed along the path
- 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§
- Drive
Coordinate - Represents a specific geometric coordinate to drive during reaction path exploration.
- Path
Statistics - Statistics for a reaction path Statistics and data collected along a reaction path.
Enums§
- Coordinate
Type - 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.