Dimer Method

Overview

The Dimer method is a minimum-mode following algorithm for locating first-order saddle points on the potential energy surface. Unlike path-based methods such as NEB or String, the Dimer method requires only a single starting structure and does not need knowledge of the product geometry.

The method works by constructing a "dimer" consisting of two images separated by a small distance along a trial direction. At each iteration, the dimer is first rotated to align with the lowest curvature mode of the PES (the mode with the most negative eigenvalue), then translated along this mode. The parallel component of the force is inverted so that the structure climbs uphill along the reaction coordinate while relaxing in all perpendicular directions, converging to a nearby saddle point.

Parameters

Parameter Type Default Description
use_hvp bool False Use Hessian-vector products instead of finite differences.
delta float 0.005 Finite-difference displacement for dimer rotation (Angstrom).
rot_max_iter int 5 Maximum rotation iterations per translation step.
rot_alpha float 0.5 Rotation step scaling factor.
rot_f_max_th float 1.0e-3 Max force threshold for rotation convergence.
rot_f_rms_th float 5.0e-4 RMS force threshold for rotation convergence.
step0 float 0.2 Initial translation step size.
step_max float 0.15 Maximum translation step size.
trust_radius float 0.15 Trust radius for translation.
f_max_th float 5.0e-3 Max force convergence threshold for overall dimer.
f_rms_th float 1.0e-3 RMS force convergence threshold.
kappa_to_flip float 0.0 Curvature threshold for mode flipping.
max_iter int 200 Maximum dimer translation iterations.
use_mass_weight bool False Use mass-weighted coordinates.
remove_rigid bool True Remove rigid body translations and rotations.
n_init str "random" Initial dimer direction: "random", "force", or "given".
n_given ndarray None User-supplied initial dimer direction vector.
save_traj bool True Save trajectory of dimer steps.
save_metrics bool True Save convergence metrics to output.

Input Example

#model=ani1xnr
#ts(method=dimer)
#device=gpu0

XYZ /path/to/ts_guess.xyz

Output

  • *_dimer_ts.xyz — The final converged transition state geometry.
  • *_dimer_traj.xyz — Multi-frame XYZ trajectory file containing all intermediate structures generated during the search, useful for visualizing the path from the initial guess to the saddle point.

When to Use

The Dimer method is the right choice when:

  • The product is unknown. You want to explore what reactions are possible from a given structure without knowing the endpoint geometry in advance.
  • Exploring the PES landscape. You want to systematically discover nearby saddle points from a minimum, for example to enumerate possible decomposition pathways or rearrangement channels.
  • Single-ended search is preferred. You have a reasonable guess for the TS geometry (e.g., from chemical intuition or a constrained scan) but do not have a product structure to use with NEB or String.
  • The reaction path is not well-defined. When the reaction involves complex conformational changes where defining a clear product is difficult, the Dimer method can find the nearest saddle point without requiring path construction.