Morse Pt NEB (built-in potential)

A compact Pt surface / adatom NEB using the built-in morse_pt potential. Geometries match benchmarks/data/neb_morse_pt/. The system is small, uses only a built-in potential, and is suitable for docs CI.

Workflow:

  1. write config.ini and copy endpoints

  2. run eonclient

  3. plot 1D profiles and a 2D reaction-valley landscape with the current rgpycrumbs eon plt-neb conventions (full history, 1:1 Å panel, structure strip)

Prerequisites

which eonclient
python -c "import rgpycrumbs, chemparseplot, readcon"

Setup and run

1D energy profiles (full history)

Plot every optimization step, highlight the final band, and attach a structure strip for all images on the path (--plot-structures all). The saddle is marked with a gold star on the final profile.

neb_profile = plot_dir / "neb_1d.png"
run_rgpycrumbs(
    "eon",
    "plt-neb",
    "--con-file",
    str(work / "neb.con"),
    "--input-dat-pattern",
    str(work / "neb_*.dat"),
    "--plot-type",
    "profile",
    "--highlight-last",
    "--show-pts",
    "--plot-structures",
    "all",
    "--strip-renderer",
    "xyzrender",
    "--strip-dividers",
    "--xyzrender-config",
    "paton",
    "--rotation",
    "90x,0y,0z",
    "--show-legend",
    "--title",
    "Morse Pt NEB path optimization",
    "--dpi",
    "150",
    "--output-file",
    str(neb_profile),
    cwd=work,
)
show_plot(neb_profile)

2D reaction-valley landscape

Use the full optimization history for the surface (--landscape-path all), project into progress / orthogonal deviation (--project-path), and keep a true 1:1 Å panel (Δs = Δd). The strip under the map shows every band image in two rows when there are many structures.

neb_land = plot_dir / "neb_2d.png"
run_rgpycrumbs(
    "eon",
    "plt-neb",
    "--con-file",
    str(work / "neb.con"),
    "--input-dat-pattern",
    str(work / "neb_*.dat"),
    "--input-path-pattern",
    str(work / "neb_path_*.con"),
    "--plot-type",
    "landscape",
    "--rc-mode",
    "path",
    "--landscape-mode",
    "surface",
    "--landscape-path",
    "all",
    "--surface-type",
    "grad_imq",
    "--project-path",
    "--show-pts",
    "--highlight-last",
    "--plot-structures",
    "all",
    "--strip-renderer",
    "xyzrender",
    "--strip-dividers",
    "--xyzrender-config",
    "paton",
    "--rotation",
    "90x,0y,0z",
    "--show-legend",
    "--title",
    "Morse Pt NEB-RMSD surface",
    "--dpi",
    "150",
    "--output-file",
    str(neb_land),
    cwd=work,
)
show_plot(neb_land)

See also