vibeqc.write_orca_hess

vibeqc.write_orca_hess(path, molecule, result, *, energy_ha=0.0, multiplicity=1, actual_temperature_K=0.0, frequency_scale_factor=1.0)[source]

Write a vibe-qc HessianResult to an ORCA-format .hess file.

Parameters:
  • path (str | PathLike) – Output file path (overwritten if it exists).

  • molecule (vibeqc._vibeqc_core.Molecule) – The Molecule the Hessian was computed for. Atom species, masses, and Cartesian positions go into the $atoms block.

  • result (HessianResult) – HessianResult carrying the Cartesian Hessian, mass- weighted normal modes, and frequencies.

  • energy_ha (float) – Total electronic energy at the reference geometry, in Hartree. Goes into $act_energy. Pass the SCF total energy here.

  • multiplicity (int) – Spin multiplicity 2S+1. Default 1 (singlet).

  • actual_temperature_K (float) – Finite-temperature data temperature in K. ORCA writes 0.0 by default; we follow.

  • frequency_scale_factor (float) – Empirical harmonic-to-experimental frequency scaling factor (e.g. 0.95 for HF, 0.97 for DFT). 1.0 = no scaling. Default 1.0.

Return type:

None

Notes

moltui consumes $atoms, $vibrational_frequencies, and $normal_modes to animate vibrational modes. The Hessian + dipole-derivative + IR-spectrum blocks are written unconditionally (zeroed when not available on the HessianResult) so the file is a drop-in for any consumer that scans for them.

Examples

>>> from vibeqc import (
...     Molecule, BasisSet, run_rhf, RHFOptions,
...     compute_hessian_rhf_analytic,
... )
>>> from vibeqc.io import write_orca_hess
>>> mol = Molecule.from_xyz("h2o.xyz")
>>> basis = BasisSet(mol, "sto-3g")
>>> rhf = run_rhf(mol, basis, RHFOptions())
>>> hess = compute_hessian_rhf_analytic(mol, basis, rhf,
...                                       basis_name="sto-3g")
>>> write_orca_hess("h2o.hess", mol, hess, energy_ha=rhf.energy)