plt-saddle

Visualizing Dimer/Saddle Search Optimization

This tool generates 2D optimization landscape plots and convergence profiles from dimer or saddle point search calculations. Like plt-min and plt-neb, it uses the shared renderer-option bundle for structure strips and viewing controls.

*

Library API

from rgpycrumbs.eon import plot_saddle, plot

# Job directory (write_movies=true)
plot_saddle(job_dir="results/", plot_type="profile", output="out.pdf")

# Live object frames (Matter.movie_frames / MinModeSaddleSearch.climb_frames)
# or a ConFrame sequence with kind="saddle"
plot(frames, kind="saddle", plot_type="profile", output="out.pdf")

Same pipeline as the CLI. Heavy deps stage via ensure_import when RGPYCRUMBS_AUTO_DEPS is on (library entries enable it by default).

Method

Uses the same gradient-enhanced surface interpolation as NEB landscapes, but with different reference structures and axis labels. The (s, d) projection maps into optimization progress (s) and lateral deviation (d), where s represents how far along the path from initial to saddle, and d represents wasted sideways motion.

Requires eOn output with write_movies=true and a climb concatenated movie. Metadata-rich full CON movies are treated as the canonical structured source; climb.dat is retained as a compatibility and export layer when present.

Plot Types

Energy/Eigenvalue Profile

rgpycrumbs eon plt-saddle --job-dir results/ --plot-type profile

Shows energy delta and eigenvalue vs iteration. Useful for checking convergence behavior.

2D Optimization Landscape

rgpycrumbs eon plt-saddle --job-dir results/ --plot-type landscape

Projects the dimer trajectory into (s, d) coordinates using RMSD from the initial structure and saddle point.

Convergence Panel

rgpycrumbs eon plt-saddle --job-dir results/ --plot-type convergence

Side-by-side plots of force norm and step size vs iteration.

Options

Option

Default

Description

--job-dir

(required)

eOn output directory

--plot-type

profile

profile, landscape, convergence, mode-evolution

--ref-product

None

Optional product .con for (initial, product) reference pair

--project-path

True

Project into (s, d) coordinates

--surface-type

grad_matern

Surface fitting method

--ira-kmax

14.0

IRA kmax for RMSD calculation

--energy-unit

eV

Presentation unit: eV, kcal/mol, kJ/mol

--theme

ruhi

Plot theme

--plot-structures

none

Structure strip below landscape: none, endpoints

--strip-renderer

xyzrender

Renderer backend for structure strips

--xyzrender-config

paton

xyzrender preset for strip rendering

--rotation

auto

Shared viewing rotation control

--perspective-tilt

0.0

Small off-axis tilt to reveal occluded atoms

-o

saddle_{type}.pdf

Output file path

--dpi

200

Resolution

Using a Product Reference

By default, the landscape uses (initial, saddle) as the two references. To use (initial, product) instead (showing the full reaction path context):

rgpycrumbs eon plt-saddle --job-dir results/ --plot-type landscape --ref-product product.con

Structure Rendering

Landscape plots can render the endpoint strip below the axes:

rgpycrumbs eon plt-saddle \
  --job-dir results/ \
  --plot-type landscape \
  --plot-structures endpoints \
  --strip-renderer xyzrender \
  --rotation auto \
  --perspective-tilt 6

This shared renderer contract is identical to plt-min and plt-neb.

Prefer --config plot.toml for surface-fit knobs (auto_thin, default off); see eOn plot TOML config.

Required eOn Output Files

File

Required

Description

climb

Yes

Concatenated structure movie

climb.dat

Fallback

Compatibility/export TSV when the movie does not carry full per-frame metadata

reactant.con or pos.con

Yes

Initial structure

saddle.con

No

Final saddle point

mode.dat

No

Eigenvector at saddle

See Also