Follow a minimum mode#

MinModeSession estimates a low-curvature direction by dimer rotation or Lanczos, then advances on the min-mode force. L-BFGS takes Accept::Step and rgmin’s NEB guards: the reflected force is not a potential gradient (Goswami, Gunde, and Jónsson, Front. Chem. (2026), https://doi.org/10.3389/fchem.2026.1807063, Eq. 9), an empty memory scales the step by 0.01, and a two-loop step that reaches the per-atom cap or faces away from the force drops its pairs. Lanczos stops when the relative change in the lowest Ritz value falls under rotation_tol, or when the residual does, and a repeat visit whose Rayleigh quotient still agrees with the retained curvature returns after one product (Olsen, Kroes, Henkelman, Arnaldsson, and Jónsson, J. Chem. Phys. 121, 9776 (2004), https://doi.org/10.1063/1.1809574; eOn quit_early). While the curvature along that mode is not negative the step is one full per-atom max_move along the mode (the perpendicular force is dropped). Once the curvature is negative the perpendicular force stays and the parallel part is reflected, and the L-BFGS pairs and the FIRE velocity survive a mode turn inside 45 degrees. A turn past that cone drops the memory and zeros the FIRE velocity. FIRE’s timestep stays 1. From rest the move is a quarter of the reflected force, because a zero power halves the step before the Euler update. When the per-atom cap shortens that step and the arrival is no longer negative, the move is replaced from the last negative point by 0.01 times the reflected force, the empty-memory scale of the L-BFGS guard. A capped step that stays negative is kept. L-BFGS is unchanged, and no C field was added. Lanczos uses the same translation. At the stock rotation_tol of 1e-4 the dimer also stops after one rotation once the rotational force is under 1; a tighter residual keeps iterating. FiniteDifference selects forward or central Hessian actions. A surface can supply analytic actions and excluded directions through PointSurface.

The reported force norm must satisfy the selected ForceGate, and the estimated curvature must be negative. If a translation reaches a stationary point, the session measures curvature at that accepted position before reporting convergence. This directional test does not certify the full Hessian index.

set_kappa selects the basin constraint. set_highs selects the optional feasible-step control. Call reset at a surface change and use set_force_gate to select the physical stopping norm. Hosts that require exactly one imaginary mode must perform their full index check.