IRC: Local Quadratic Approximation (LQA)

Overview

The Local Quadratic Approximation (LQA) method is an IRC integration algorithm that fits a local quadratic surface to the potential energy surface at each point along the reaction path. Using the current energy, gradient, and Hessian, LQA constructs a second-order Taylor expansion of the PES and analytically determines the steepest-descent path on this quadratic model. The predicted next point is then corrected using the actual gradient computed at the new geometry.

LQA can be more efficient than the default GS method on smooth, well-behaved potential energy surfaces because the quadratic model provides a good approximation of the local PES curvature, allowing larger effective step sizes with fewer gradient evaluations per IRC point.

Algorithm

At each IRC step, the LQA method proceeds as follows:

  1. Construct local quadratic model — Using the energy, gradient, and Hessian at the current point, build a quadratic approximation of the PES in mass-weighted coordinates.
  2. Predict next point — Analytically solve for the steepest-descent direction on the quadratic surface and step to the predicted next IRC point.
  3. Correct — Evaluate the actual gradient at the predicted point and apply a correction step to bring the path back onto the true minimum energy path.
  4. Update Hessian — Update the Hessian using BFGS/Bofill formulas for use in the next step.

Parameters

The complete LQAParams dataclass:

Parameter Type Default Description
target_mode int 1 Index of the imaginary mode to follow.
step_length_bohr float 0.10 Step length along the IRC path in Bohr.
max_steps int 50 Maximum IRC steps per direction.
euler_n int 5000 Number of Euler integration sub-steps per IRC step.
hessian_recalc int None Recalculate Hessian every N steps.
hessian_update str "bofill" Hessian update: "bfgs" or "bofill".
f_max_th float 2e-3 Max force convergence threshold.
f_rms_th float 5e-4 RMS force convergence threshold.
print_each bool True Print details at each IRC point.
write_traj bool True Write trajectory XYZ files.

Input Example

#model=ani1xnr
#irc(method=lqa)
#device=gpu0

XYZ /path/to/transition_state.xyz

Comparison with GS

The LQA and GS methods differ primarily in how they determine each IRC step:

  • GS uses a pivot-step followed by constrained optimization on a hypersphere. It does not rely on the quadratic approximation for the step direction, making it more robust on surfaces where the quadratic model breaks down.
  • LQA uses the full quadratic model (gradient + Hessian) to analytically predict the next point, which can be faster when the quadratic approximation is accurate.

In practice, LQA tends to be faster on smooth, harmonic-like surfaces, while GS is more robust for highly anharmonic or strongly curved reaction paths. If LQA has convergence difficulties, switching to GS or EulerPC is recommended.