IRC: Gonzalez–Schlegel (GS) Method
Overview
The Gonzalez–Schlegel (GS) method is the default IRC integrator in MAPLE. It operates in mass-weighted Cartesian coordinates and uses a two-phase pivot-step plus constrained-optimization approach at each IRC point:
- Pivot step — A steepest-descent step is taken along the negative gradient direction in mass-weighted coordinates to produce a trial point on a hypersphere centered at the current IRC point.
- Constrained optimization — The trial point is refined by minimizing the energy on the surface of the hypersphere, using the perpendicular component of the gradient, until the corrector converges.
The Hessian is updated along the path using BFGS/Bofill update formulas, avoiding full Hessian recomputation at every step. Adaptive step-size control adjusts the arc length based on path curvature, and an optional parabolic fit detects when the path has descended into a minimum basin.
The GS method integrates both the forward and backward IRC paths, starting from the transition state.
Parameters
All GS parameters can be specified in the #irc(...) header line. The complete GSParams dataclass:
| Parameter | Type | Default | Description |
|---|---|---|---|
target_mode |
int | 1 | Index of the imaginary vibrational mode to follow (1-based). |
step_length_bohr |
float | 0.10 | Step length along the IRC path in Bohr. |
max_steps |
int | 50 | Maximum number of IRC steps in each direction. |
max_micro_cycles |
int | 20 | Maximum micro-iterations per IRC macro-step (constrained optimization on hypersphere). |
micro_step_thresh |
float | 1e-3 | Convergence threshold for micro-iterations. |
hessian_recalc |
int | None | Recalculate the full Hessian every N steps. None means never recalculate. |
hessian_update |
str | "bofill" |
Hessian update method: "bfgs" or "bofill". |
f_max_th |
float | 2e-3 | Max force convergence threshold (Hartree/Bohr). |
f_rms_th |
float | 5e-4 | RMS force convergence threshold. |
print_each |
bool | True | Print step details for each IRC point. |
write_traj |
bool | True | Write trajectory XYZ files. |
Input Example
Basic GS IRC calculation with default parameters:
#model=ani1xnr
#irc(method=gs)
#device=gpu0
XYZ /path/to/transition_state.xyz
