Morse Pt NEB (built-in potential)¶
A compact Pt surface / adatom band on the built-in morse_pt potential.
Geometries match benchmarks/data/neb_morse_pt/.
Both plot cells pass --ira-kmax 1.8.
That value is the usual factor on the basis search for similar structures.
A larger factor leaves this match unchanged and the search then dominates the plot.
Workflow:
write
config.iniand copy endpointsrun
eonclientplot 1D profiles and a 2D reaction-valley landscape with the current
rgpycrumbs eon plt-nebconventions (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, mark 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"),
"--ira-kmax",
"1.8",
"--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)
$ /home/runner/work/eOn/eOn/.pixi/envs/docs-mta/bin/python3.12 -m rgpycrumbs.cli eon plt-neb --con-file /tmp/eon_morse_pt_neb_7l2jvmju/neb.con --input-dat-pattern /tmp/eon_morse_pt_neb_7l2jvmju/neb_*.dat --ira-kmax 1.8 --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 /tmp/eon_morse_pt_neb_7l2jvmju/plots/neb_1d.png
--> Dispatching to: /home/runner/work/eOn/eOn/.pixi/envs/docs-mta/bin/python3.12 /home/runner/work/eOn/eOn/.pixi/envs/docs-mta/lib/python3.12/site-packages/rgpycrumbs/eon/plt_neb.py --con-file /tmp/eon_morse_pt_neb_7l2jvmju/neb.con --input-dat-pattern /tmp/eon_morse_pt_neb_7l2jvmju/neb_*.dat --ira-kmax 1.8 --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 /tmp/eon_morse_pt_neb_7l2jvmju/plots/neb_1d.png
[10/21/26 13:48:04] INFO INFO - Setting global rcParams for ruhi theme
WARNING WARNING - Font 'Atkinson Hyperlegible' not found.
Falling back to 'sans-serif'.
[10/21/26 13:48:05] INFO INFO - Reading structures from
/tmp/eon_morse_pt_neb_7l2jvmju/neb.con
INFO INFO - Loaded 9 structures.
INFO INFO - Loading explicit saddle point from sp.con
INFO INFO - Searching for files with pattern:
'/tmp/eon_morse_pt_neb_7l2jvmju/neb_*.dat'
INFO INFO - Found 26 file(s).
INFO INFO - Loading /tmp/tmp4xcg8uty.xyz
INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:07] INFO INFO - Loading /tmp/tmpwexppfp3.xyz
INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:08] INFO INFO - Loading /tmp/tmpo6qs450g.xyz
INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:09] INFO INFO - Loading /tmp/tmp9_6zkrzu.xyz
INFO INFO - Built graph: 343 atoms, 1628 bonds
[10/21/26 13:48:11] INFO INFO - Loading /tmp/tmpopu2awl7.xyz
INFO INFO - Built graph: 343 atoms, 1629 bonds
[10/21/26 13:48:12] INFO INFO - Loading /tmp/tmpk5t9twtw.xyz
INFO INFO - Built graph: 343 atoms, 1628 bonds
[10/21/26 13:48:13] INFO INFO - Loading /tmp/tmpovbwg3ox.xyz
[10/21/26 13:48:14] INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:15] INFO INFO - Loading /tmp/tmp0slve5_o.xyz
INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:16] INFO INFO - Loading /tmp/tmp8u_v7ih7.xyz
INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:18] INFO INFO - Profile content layout: main=3.55 in,
strip=1.95 in, figsize=(6.40, 6.91)
--> Using active interpreter (readcon/plot stack present or --dev)
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"),
"--ira-kmax",
"1.8",
"--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)
$ /home/runner/work/eOn/eOn/.pixi/envs/docs-mta/bin/python3.12 -m rgpycrumbs.cli eon plt-neb --con-file /tmp/eon_morse_pt_neb_7l2jvmju/neb.con --input-dat-pattern /tmp/eon_morse_pt_neb_7l2jvmju/neb_*.dat --input-path-pattern /tmp/eon_morse_pt_neb_7l2jvmju/neb_path_*.con --ira-kmax 1.8 --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 /tmp/eon_morse_pt_neb_7l2jvmju/plots/neb_2d.png
--> Dispatching to: /home/runner/work/eOn/eOn/.pixi/envs/docs-mta/bin/python3.12 /home/runner/work/eOn/eOn/.pixi/envs/docs-mta/lib/python3.12/site-packages/rgpycrumbs/eon/plt_neb.py --con-file /tmp/eon_morse_pt_neb_7l2jvmju/neb.con --input-dat-pattern /tmp/eon_morse_pt_neb_7l2jvmju/neb_*.dat --input-path-pattern /tmp/eon_morse_pt_neb_7l2jvmju/neb_path_*.con --ira-kmax 1.8 --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 /tmp/eon_morse_pt_neb_7l2jvmju/plots/neb_2d.png
[10/21/26 13:48:20] INFO INFO - Setting global rcParams for ruhi theme
WARNING WARNING - Font 'Atkinson Hyperlegible' not found.
Falling back to 'sans-serif'.
INFO INFO - Reading structures from
/tmp/eon_morse_pt_neb_7l2jvmju/neb.con
INFO INFO - Loaded 9 structures.
INFO INFO - Loading explicit saddle point from sp.con
INFO INFO - Searching for files with pattern:
'/tmp/eon_morse_pt_neb_7l2jvmju/neb_*.dat'
INFO INFO - Found 26 file(s).
INFO INFO - Searching for files with pattern:
'/tmp/eon_morse_pt_neb_7l2jvmju/neb_path_*.con'
INFO INFO - Found 26 file(s).
INFO INFO - Computing Landscape data...
[10/21/26 13:48:34] INFO INFO - Saving Landscape cache to
.neb_landscape.parquet...
INFO INFO - Calculated heuristic RBF smoothing: 0.0395
INFO INFO - Generating 2D surface using grad_imq
(Projected: True)...
INFO INFO - Unable to initialize backend 'tpu':
INTERNAL: Failed to open libtpu.so: libtpu.so:
cannot open shared object file: No such file or
directory
INFO INFO - Unable to initialize backend 'proxy': The
'proxy' backend requires the address of an IFRT
Proxy server. Set it via the JAX_BACKEND_TARGET
environment variable or the jax_backend_target
config option, e.g.
JAX_BACKEND_TARGET=grpc://localhost:29000.
[10/21/26 13:48:43] INFO INFO - Plotting explicit SP at R=0.114, P=0.113
WARNING WARNING - Looks like you are using a tranform that
doesn't support FancyArrowPatch, using ax.annotate
instead. The arrows might strike through texts.
Increasing shrinkA in arrowprops might help.
[10/21/26 13:48:44] INFO INFO - Loading /tmp/tmpadw64kx0.xyz
INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:45] INFO INFO - Loading /tmp/tmp2jmu7m14.xyz
INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:46] INFO INFO - Loading /tmp/tmpqof9lv2z.xyz
INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:47] INFO INFO - Loading /tmp/tmpk3m5z7h1.xyz
INFO INFO - Built graph: 343 atoms, 1628 bonds
[10/21/26 13:48:48] INFO INFO - Loading /tmp/tmp2mu8odtu.xyz
INFO INFO - Built graph: 343 atoms, 1629 bonds
[10/21/26 13:48:49] INFO INFO - Loading /tmp/tmplpcumwws.xyz
INFO INFO - Built graph: 343 atoms, 1628 bonds
[10/21/26 13:48:50] INFO INFO - Loading /tmp/tmpfdvdz39y.xyz
[10/21/26 13:48:51] INFO INFO - Built graph: 343 atoms, 1626 bonds
INFO INFO - Loading /tmp/tmpt1e7421v.xyz
[10/21/26 13:48:52] INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:53] INFO INFO - Loading /tmp/tmpmnz7stxm.xyz
INFO INFO - Built graph: 343 atoms, 1626 bonds
[10/21/26 13:48:54] INFO INFO - Set 1:1 (s,d) square panel: Δs=Δd=0.422 Å
(s=[-0.020, 0.402], d=[-0.211, 0.211]);
strip_rows=2; figsize=(8.35, 10.48) in
--> Using active interpreter (readcon/plot stack present or --dev)
See also¶
Visualizing optimization trajectories: PET-MAD / vinyl alcohol visualization walkthrough
Nudged elastic band: NEB parameters
atomistic-cookbook eon-pet-neb: metatomic oxadiazole NEB with the same plot stack