Potential Energy Surface Scanning
Overview
The PES Scan module performs systematic exploration of the potential energy surface along user-specified internal coordinates. It supports one-dimensional (1D), two-dimensional (2D), and three-dimensional (3D) scans. Two scan modes are available: relaxed scans, where all coordinates except the scanned ones are optimized at each point, and rigid scans, where MAPLE moves the detected connected fragment to satisfy the target scan coordinate without running an optimization.
PES scans are commonly used for constructing torsional energy profiles, mapping bond-dissociation curves, exploring conformational landscapes, and generating starting geometries for transition-state searches.
Available Methods
Relaxed scans reuse MAPLE's geometry optimization dispatcher at each scan point. The following optimizers can be selected via the method parameter; rigid scans do not require an optimizer.
| Method | Keyword | Description |
|---|---|---|
| L-BFGS | lbfgs |
Limited-memory BFGS quasi-Newton method. Default and recommended for routine relaxed scans. |
| RFO | rfo |
Rational Function Optimization with trust-radius control. Useful for difficult scan points or strong curvature changes. |
| SD | sd |
Steepest descent. Robust stabilization for distorted geometries. |
| CG | cg |
Conjugate gradient. Memory-efficient relaxation when starting geometries are already reasonable. |
| SD/CG | sdcg |
Hybrid steepest-descent / conjugate-gradient with optional DIIS acceleration. |
Quick Usage
To run a PES scan, add the #scan directive to your input file. The method and scan mode can be specified in parentheses:
#scan(method=lbfgs, mode=relaxed)
If no options are specified, the defaults method=lbfgs and mode=relaxed are used:
#scan
Rigid scans skip optimization and only move the detected connected fragment to satisfy the target coordinate:
#scan(mode=rigid)
Scan Coordinate Syntax
Scan coordinates are specified with the S command at the end of the input file, after the molecular geometry. The format depends on the type of internal coordinate being scanned:
- Distance scan (2 atoms):
S atom1 atom2 step_size n_steps - Angle scan (3 atoms):
S atom1 atom2 atom3 step_size n_steps - Dihedral scan (4 atoms):
S atom1 atom2 atom3 atom4 step_size n_steps
Where:
- atom1, atom2, ... — 1-based atom indices defining the internal coordinate to scan.
- step_size — increment per step (in Angstroms for bonds, degrees for angles/dihedrals). Negative values scan in the decreasing direction.
- n_steps — number of increments to apply after the initial point; each scan coordinate therefore produces
n_steps + 1values.
Scan Modes
MAPLE supports two scan modes, selected via the mode parameter:
| Mode | Description | Use Case |
|---|---|---|
| relaxed | Optimizes all degrees of freedom except the scanned coordinates at each scan point. Produces a minimum-energy path along the scan coordinate. | Torsional profiles, bond dissociation curves, conformational analysis. |
| rigid | Moves the detected connected fragment as a rigid body to satisfy each target scan coordinate. No geometry optimization is performed. | Quick energy profiles, repulsive wall scans, initial survey of PES topology. |
Input Example
The checked-in MAPLE example examples/scan/da.inp is a two-coordinate relaxed scan with the ANI-1xnr model on a GPU. Only the long coordinate block is elided below; in a real input file the S scan commands must come after the molecular coordinates because MAPLE parses them as post-processing commands:
#model=ANI-1xnr
#scan
#device=gpu0
[XYZ coordinates from examples/scan/da.inp]
S 11 52 -0.1 15
S 14 51 -0.1 15
The two S lines define scanned distances, each with 15 increments of −0.1 Å, producing a 16 × 16 = 256 point grid. Because #scan defaults to method=lbfgs and mode=relaxed, the header above is equivalent to #scan(method=lbfgs, mode=relaxed). At each grid point MAPLE constrains both target coordinates and optimizes the remaining degrees of freedom with the selected optimizer.
Common Parameters
These parameters are shared across all scan calculations. Individual optimizers may accept additional method-specific parameters (see each method's sub-page).
| Parameter | Default | Description |
|---|---|---|
mode |
relaxed |
Scan mode: relaxed (optimize at each point) or rigid (rigid-body fragment motion without optimization). |
method |
lbfgs |
Optimizer used for relaxed scans. Supported: lbfgs, rfo, sd, cg, sdcg. Ignored for rigid scans. |
level |
medium |
Convergence preset passed to the underlying optimizer (relaxed scans only). Options: extratight, tight, medium, loose, extraloose, superloose. |
max_iter |
256 |
Maximum number of optimization cycles per scan point (relaxed scans only). |
verbose |
0 |
Per-point optimizer output verbosity. Scan keeps this low by default to keep the scan log readable; the overall scan progress is always reported. |
Output Files
The scan module produces the following output files:
*_scan_final.xyz— Multi-frame XYZ file containing the final geometry at each scan point. Can be visualized as a trajectory in standard molecular viewers.*.out— Main text output with scan progress, energies, coordinates, and optimizer diagnostics when applicable.
The scan trajectory file uses the standard multi-frame XYZ format, with one frame per scan point. Each frame header includes the scan combination index, target values of the scanned internal coordinates, and the energy.
For routine relaxed scans, the default L-BFGS optimizer with level=medium is sufficient. Use mode=rigid for quick initial PES surveys when geometry optimization at each point is not needed.
