Vibrations
Use plot_vibs to inspect normal modes from FRUST frequency calculations. For
transition states, the imaginary mode should match the intended reaction
coordinate.
from frust.vis import plot_vibs
plot_vibs(df_ok, row_index=0, vId=0)
One imaginary frequency is not enough
A first-order saddle point should have one imaginary frequency, but the mode must also describe the intended bond formation, bond breaking, proton transfer, hydride transfer, or other reaction coordinate.
Multiple Rows
plot_vibs(
df_ok,
row_indices=[0, 1, 2, 3],
viewergrid=(2, 2),
linked=True,
)
Custom Coordinate Column
Use custom_coords_col_name when you want to inspect vibrations against a
specific coordinate stage.
plot_vibs(
df_ok,
row_index=0,
vId=0,
custom_coords_col_name="UMA-OptTS-oc",
)
Export HTML
Use export_HTML to save an interactive viewer that can be embedded in the
documentation or shared with collaborators.
Export an imaginary-mode viewer
plot_vibs(
df_ok,
row_index=0,
vId=0,
export_HTML="docs/assets/my-imaginary-mode.html",
)
Then embed it in a Markdown page:
<iframe
src="../../assets/my-imaginary-mode.html"
title="Imaginary-mode animation"
width="100%"
height="480"
loading="lazy"
style="border: 1px solid var(--md-default-fg-color--lightest); border-radius: 6px;"
></iframe>
Label comparison grids
When comparing rows, pass legends so each viewer cell is identified:
plot_vibs(
df_ok,
row_indices=[0, 1],
legends=["lowest", "second-lowest"],
)