oqp.library.neb_utils
Dependency-light helpers for geomeTRIC NEB endpoint paths.
Attributes
Classes
Functions
|
|
|
|
|
Module Contents
- BOHR_TO_ANGSTROM = 0.52917721092
- class NEBImage
One NEB path image in user-facing Angstrom coordinates.
- symbols: list[str]
- coordinates_angstrom: list[list[float]]
- kabsch_align(reference: Iterable[Iterable[float]], mobile: Iterable[Iterable[float]]) list[list[float]]
Rigidly align ``mobile`` coordinates onto ``reference``. Coordinates may use any common unit. The returned coordinates retain the reference centroid, and the fitted transform is constrained to a proper rotation so a reflection cannot change molecular handedness.
- interpolate_xyz_endpoints(reactant_xyz: str | pathlib.Path, product_xyz: str | pathlib.Path, nimage: int, align: bool = False) list[NEBImage]
Return linearly interpolated NEB images including both endpoints. Input and output coordinates are Angstrom, matching OpenQP XYZ/system input conventions. Atom symbols/count/order must match exactly so each image can be evaluated on the same state-specific surface. With ``align=True``, the product endpoint is first rigidly superimposed on the reactant, removing overall translation and rotation before interpolation.
- write_neb_xyz(path: str | pathlib.Path, symbols: Iterable[str], images_bohr: Iterable[Iterable[float]], energies: Iterable[float] | None = None) pathlib.Path
Write a final NEB path as a standard multi-frame XYZ file. ``images_bohr`` accepts flat ``3*natom`` arrays or ``(natom, 3)`` arrays. Optional energies are written in Hartree in each frame's comment line.