rgpycrumbs.eon.modes_tensormap

Normal modes from an eOn Hessian job as a metatensor TensorMap.

Added in version 1.11.0.

eOn’s Hessian job writes modes.con: one frame per eigenvalue of the mass-weighted Hessian, lowest first, with the unit Cartesian mode in the readcon displacements section and mode_eigenvalue, hbar_omega and wavenumber in the frame metadata. This gathers them into one TensorMap with two blocks, so the modes travel with their labels into any metatensor consumer:

  • key block=0, the modes: samples atom, components xyz, properties mode. Values in Angstrom, each mode of unit norm.

  • key block=1, the spectrum: samples mode, properties quantity, where quantity 0 is the eigenvalue in eV / (Angstrom**2 amu), 1 is hbar omega in eV and 2 is the wavenumber in cm**-1. An imaginary mode reads negative in 1 and 2.

Attributes

Functions

read_modes(→ tuple[numpy.ndarray, numpy.ndarray])

Modes (n_atoms, 3, n_modes) and spectrum (n_modes, 3).

modes_tensormap(modes, spectrum)

The two-block TensorMap described in the module docstring.

main(modes_con, output)

Write the normal modes in MODES_CON as a metatensor TensorMap.

Module Contents

rgpycrumbs.eon.modes_tensormap.log[source]
rgpycrumbs.eon.modes_tensormap.QUANTITIES = ('mode_eigenvalue', 'hbar_omega', 'wavenumber')[source]
rgpycrumbs.eon.modes_tensormap.read_modes(path: pathlib.Path) → tuple[numpy.ndarray, numpy.ndarray][source]

Modes (n_atoms, 3, n_modes) and spectrum (n_modes, 3).

rgpycrumbs.eon.modes_tensormap.modes_tensormap(modes: numpy.ndarray, spectrum: numpy.ndarray)[source]

The two-block TensorMap described in the module docstring.

rgpycrumbs.eon.modes_tensormap.main(modes_con, output)[source]

Write the normal modes in MODES_CON as a metatensor TensorMap.