oqp.library.oqp_irc
OQP intrinsic reaction coordinate (IRC) for OpenQP.
Backend-agnostic (NumPy only) Gonzalez--Schlegel mass-weighted steepest-descent
reaction path (Gonzalez & Schlegel, J. Phys. Chem. 94, 5523 (1990)).
The IRC is the steepest-descent path in mass-weighted Cartesian coordinates
q = M^{1/2} x. Each step of mass-weighted arc length ``s`` is taken with the
Gonzalez--Schlegel constrained scheme:
1. pivot point q* = q_k - (s/2) g_hat (g_hat = mass-weighted gradient dir);
2. find q_{k+1} on the hypersphere |q - q*| = s/2 that minimizes E, i.e. the
point whose gradient is radial (no tangential component).
The first point is displaced from the transition state along the
imaginary-frequency mode (mass-weighted), in the requested forward/backward
direction. The caller supplies ``energy_gradient(x_flat) -> (E, g_flat)`` in
atomic units, so this module is testable on analytic surfaces without the OQP
core.
Classes
Functions
|
Module Contents
- class IRC(mass, x_ts, init_direction_mw, step=0.1, sign=1, logger=None)
- sqm
- x_ts
- dir
- step
- sign = 1
- logger = None
- run(energy_gradient, max_points=50, gtol=0.0001, micro_max=6, micro_tol=0.0001, on_point=None)
- imaginary_mode(mass, hessian, coordinates=None, negative_tol=1e-08)
Return the unique imaginary mode of a first-order saddle Hessian. ``mass`` in amu (natom,), ``hessian`` in Hartree/Bohr**2 (3N,3N), and optional ``coordinates`` in Bohr. With coordinates, translations and rotations are projected before diagonalization so their near-zero numerical curvature cannot be mistaken for imaginary vibrations. Returns the normalized mass-weighted eigenvector and curvature. Numerical negative noise above ``-negative_tol`` is ignored. A valid IRC start must contain exactly one significant vibrational negative mode; minima and higher-order saddles are rejected.