eOn plot TOML config¶
Declarative plot configuration¶
plt-neb, plt-min, and plt-saddle share a TOML plot config via
--config path.toml. Prefer this over long CLI flag lists for suite and CI
runs.
Architecture¶
flowchart TB
subgraph cli["rgpycrumbs CLI"]
FLAG["CLI flags\n(job-dir, plot-type, …)"]
CFG["--config plot.toml"]
end
subgraph merge["plot_config.merge_plot_settings"]
DEF[Built-in defaults]
TOML["[shared] + [min]/[neb]"]
OV[CLI overrides win]
end
subgraph cpp["chemparseplot"]
SFC[SurfaceFitConfig]
PLS[plot_landscape_surface]
end
FLAG --> OV
CFG --> TOML
DEF --> merge
TOML --> merge
OV --> merge
merge -->|"auto_thin, max_surface_points"| SFC
SFC --> PLS
PLS --> GP[rgpycrumbs.surfaces GP]
Long option sets (surface fit, strips, theme) live in plot.toml.
auto_thin = false unless you opt in for dense force-eval movies.
[shared]
auto_thin = true
max_surface_points = 64
[min]
job_dir = ["min_reactant"]
plot_type = "landscape"
surface_type = "grad_imq"
from rgpycrumbs.eon import plot_neb, plot_min
plot_neb(
plot_type="landscape",
con_file="neb.con",
config="plot.toml",
output_file="neb.pdf",
)
# Live objects / ConFrames:
# plot(neb, plot_type="profile", output_file="1d.pdf")
# plot(frames, kind="min", plot_type="landscape", output="min.pdf")
from chemparseplot.plot.neb import SurfaceFitConfig
cfg = SurfaceFitConfig(auto_thin=True, max_surface_points=64)
Merge order¶
Built-in shared defaults
Built-in per-command defaults (
neb/min/saddle)File layers: top-level keys and
[shared], then[neb]/[min]/[saddle]Explicit CLI flags (Click parameter source ≠ default) win last
Example¶
Package example: rgpycrumbs/eon/examples/plot_config.example.toml.
[shared]
energy_unit = "eV"
theme = "ruhi"
dpi = 200
figsize = [5.37, 5.37]
strip_renderer = "xyzrender"
xyzrender_config = "paton"
ira_kmax = 14.0
# Surface fit (chemparseplot; default off)
auto_thin = false
max_surface_points = 64
[neb]
con_file = "neb.con"
plot_type = "landscape"
output_file = "neb_landscape.pdf"
surface_type = "grad_imq"
plot_structures = "crit_points"
[min]
job_dir = ["min_reactant"]
plot_type = "landscape"
prefix = "minimization"
surface_type = "grad_imq"
plot_structures = "endpoints"
# Opt in for dense eOn write_movies clouds:
# auto_thin = true
output = "min_landscape.pdf"
[saddle]
job_dir = ["saddle_run"]
plot_type = "profile"
output = "saddle_profile.pdf"
rgpycrumbs eon plt-neb --config plot.toml
rgpycrumbs eon plt-min --config plot.toml
Surface-fit keys¶
Key |
Default |
Scope |
Notes |
|---|---|---|---|
|
|
shared or command |
TOML-only; not a CLI flag |
|
|
shared or command |
Used when |
|
command-dependent |
shared or command |
Also available as |
When auto_thin is true, chemparseplot subsamples the GP training cloud
(first/last + evenly spaced intermediates) while the path scatter and viewport
still use the full trajectory. This avoids non-finite GradientIMQ grids on
dense force-eval movies without silently changing default behaviour.
Requires chemparseplot>=1.9.10 (SurfaceFitConfig).