Growing String Method (GSM)

Overview

The Growing String Method (GSM) is an adaptive path-based algorithm for finding minimum energy paths and transition states between a given reactant and product. Unlike NEB, which creates all images at once, GSM grows the path incrementally from both endpoints, adding new nodes only where needed. This adaptive growth strategy can be significantly more efficient than NEB for large molecular systems.

MAPLE's GSM implementation features Kabsch alignment of endpoints, two-ended adaptive growth with constrained mini-relaxation in the hyperplane orthogonal to the local path direction, energy-weighted tangents, and a dynamic growth policy including side pausing and forced connector pulls. In the current runtime, the equal-arc GSM path is finalized by taking the highest-energy image into the String-TS/P-RFO output path.

Parameters

Parameter Type Default Description
grow_step float 0.12 Step size for growing new nodes (Angstrom).
grow_step_min float 0.02 Minimum growing step size.
grow_backtrack float 0.5 Backtracking factor during growth.
grow_relax_iters int 10 Relaxation iterations after each growth step.
grow_relax_tol float 2.5e-3 Force tolerance for growth relaxation.
grow_energy_tol float 1.0e-3 Energy tolerance for growth relaxation (Eh).
pause_imbalance int 2 Pause growth from one end if it leads the other by this many nodes.
refine_end_every int 3 Re-optimize endpoint images every N growth steps.
merge_threshold float 0.5 Distance threshold for merging approaching fronts (Angstrom).
n_images int 9 Target number of string images.
max_iter_relax int 300 Maximum iterations for full string relaxation.
string_f_max_th float 5.0e-3 Max force convergence threshold for string.
string_f_rms_th float 1.0e-3 RMS force convergence threshold for string.
lbfgs_memory int 7 L-BFGS memory for string relaxation.
lbfgs_curvature float 70.0 L-BFGS initial curvature estimate.
lbfgs_max_step float 0.2 L-BFGS maximum step.
reparam_every int 3 Reparametrize string every N iterations.
refine str None Accepted explicit refinement values: "cistring" or "stringts". Other values, including NEB-only refine keywords, are rejected during input parsing.
cistring_f_max_th float 4.0e-3 Compatibility threshold for CI-String-style refinement settings; current String-TS output follows the HEI-to-P-RFO finalization path.
cistring_f_rms_th float 2.0e-3 Compatibility threshold for CI-String-style refinement settings; current String-TS output follows the HEI-to-P-RFO finalization path.
max_iter_grow int 100 Maximum iterations for the growing phase.
log_every int 1 Log progress every N iterations.
guide_conn_min float 0.3 Minimum connectivity for geodesic guiding.
guide_d_switch float 4.0 Distance switch for geodesic guidance.
guide_inc_trigger int 2 Trigger for increasing guidance strength.

Input Example

Checked-in MAPLE example: examples/ts/string/inp1.inp. It uses the same reactant/product endpoint files as the NEB example. The portable form below is for an input file saved in the MAPLE repository root; if you save the input elsewhere, adjust the XYZ paths because relative paths are resolved from the input file location.

#model=ANI-1xnr
#ts(method=string,refine=stringts)
#device=gpu0

XYZ examples/ts/neb/react.xyz
XYZ examples/ts/neb/prod.xyz

Output

The current runtime writes the String/GSM path and then the String-TS finalization files from the highest-energy image.

  • *_gsm_grow_final.xyz — The final path after the growth phase is complete, before reparameterization.
  • *_gsm_mep.xyz — The reparameterized minimum energy path with equally spaced images.
  • *_gsm_hei.xyz — The highest-energy image selected from the reparameterized string.
  • *_stringts_mep.xyz — The path with the refined TS inserted after the selected HEI.
  • *_stringts_ts.xyz — The final optimized TS geometry obtained from P-RFO refinement of the highest-energy image along the string.

Visualization

The String-TS visualization uses *_stringts_mep.xyz for the path and *_stringts_ts.xyz for the refined TS geometry.

String-TS minimum energy path animation with energy profile
Fig. 1 — String-TS path with energy trace.
String-TS final transition state geometry
Fig. 2 — String-TS final refined TS geometry.

Comparison with NEB

Both GSM and NEB are path-based methods that require reactant and product endpoints. The key differences are:

Aspect NEB String/GSM
Path construction All images created at once via interpolation Images grown adaptively from both ends
Computational cost All images evaluated at every iteration Only frontier images evaluated during growth
Large systems Can be expensive due to many simultaneous images More efficient; fewer evaluations needed during growth
Path resolution Uniform resolution along entire path Adaptive resolution; concentrates images where needed
Robustness Well-established; generally robust Can stall for very large structural differences

For small to medium systems with modest structural changes, NEB and GSM typically perform comparably. For large systems (hundreds of atoms) or reactions with large geometric rearrangements, GSM's adaptive growth can provide significant computational savings.