IRC: Euler Predictor–Corrector (EulerPC)

Overview

The Euler Predictor–Corrector (EulerPC) method is the simplest predictor-corrector IRC integrator available in MAPLE. It uses a basic Euler integration step (following the negative gradient direction) as the predictor, then applies a corrector step to project the path back onto the true minimum energy path. While EulerPC is generally slower than the other IRC methods due to smaller effective step sizes, it is the most robust option for difficult potential energy surfaces where higher-order methods may fail to converge.

Algorithm

At each IRC step, the EulerPC method proceeds in two phases:

  1. Predictor (Euler step) — A simple Euler integration step is taken along the negative gradient direction in mass-weighted coordinates. The step length is controlled by the step_length_bohr parameter. This produces a trial point that approximately follows the steepest-descent path.
  2. Corrector (gradient projection) — The actual gradient is evaluated at the trial point, and a correction is applied to project the geometry back onto the minimum energy path. This correction uses bisection or gradient-based projection to ensure the corrected point lies on the true IRC path rather than drifting off due to the finite step size of the Euler predictor.

Because the Euler predictor is only first-order accurate, smaller step sizes are typically needed compared to LQA or HPC to maintain path accuracy. However, the simplicity of the algorithm means it makes no assumptions about PES smoothness or curvature, giving it superior robustness on highly anharmonic or irregular surfaces.

Parameters

The complete EulerPCParams dataclass:

Parameter Type Default Description
target_mode int 1 Index of the imaginary mode to follow.
step_length_bohr float 0.10 Step length in Bohr.
max_steps int 50 Maximum IRC steps per direction.
max_pred_steps int 500 Maximum predictor sub-steps.
loose_cycles int 3 Number of initial cycles with loosened convergence.
hessian_recalc int None Recalculate Hessian every N steps.
hessian_update str "bofill" Hessian update: "bfgs" or "bofill".
dwi_n int 4 Distance-weighted interpolation points.
mbs_max_k int 15 Max polynomial order for MBS.
mbs_points int 20 Number of MBS integration points.
mbs_tol float 1e-5 MBS convergence tolerance.
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=eulerpc)
#device=gpu0

XYZ /path/to/transition_state.xyz

Comparison of IRC Methods

Method Speed Robustness Best For
GS Moderate High General use (default)
LQA Fast Moderate Smooth surfaces
HPC Fast High Balanced speed/accuracy
EulerPC Slow Very High Difficult/anharmonic surfaces

When to Use

The EulerPC method is recommended as a fallback when other IRC methods have difficulty:

  • When the default GS method, LQA, or HPC fail to converge along the IRC path.
  • For highly anharmonic reactions where the PES curvature changes drastically along the reaction coordinate.
  • For reactions involving large-amplitude motions, bond breaking/forming events with flat or irregular PES regions.
  • When path accuracy is more important than computational speed.

For routine IRC calculations on well-behaved surfaces, the default GS method or the faster HPC method are generally preferred.