vibeqc.HessianResult¶
- class vibeqc.HessianResult(hessian, hessian_mw, frequencies_cm1, normal_modes, imaginary_count, n_displacements, is_linear, dipole_derivatives=None, dipole_origin=None, masses_amu=None)[source]¶
Bases:
objectOutput of
compute_hessian_fd().- hessian
(3N, 3N) matrix in Hartree/bohr². Indexing convention: row/col
3*i + αis atomi, Cartesian directionα ∈ {0, 1, 2}for{x, y, z}.- hessian_mw
Mass-weighted Hessian:
M^(-1/2) H M^(-1/2)whereMis the diagonal mass matrix in electron-mass units, with each atom’s mass duplicated 3× (one per Cartesian DOF). Eigenvalues of this matrix areω²in atomic units.- frequencies_cm1
(3N,) array of harmonic frequencies in cm⁻¹, sorted ascending. Imaginary modes appear as negative numbers. Trans/rot zero modes appear as exact 0.0 when
project_trans_rot=True.- normal_modes
(3N, 3N) orthonormal mass-weighted normal-mode matrix (each column is a mode). Cartesian displacement pattern for atom
iin modekisnormal_modes[3i:3i+3, k] / sqrt(M_i).- imaginary_count
Number of modes with ω² < 0 after trans/rot projection.
- n_displacements
6 * n_atomsfor centered FD.- is_linear
True when the molecule’s inertia tensor is rank-deficient (collinear atoms) — 5 zero modes instead of 6.
- Parameters:
- __init__(hessian, hessian_mw, frequencies_cm1, normal_modes, imaginary_count, n_displacements, is_linear, dipole_derivatives=None, dipole_origin=None, masses_amu=None)¶
Methods
__init__(hessian, hessian_mw, ...[, ...])Attributes
(3N, 3) tensor of
∂μ_β/∂R_iαin atomic units (e), populated whenHessianFDOptions.include_dipole_derivatives=True(else None).(3,) array, the dipole reference origin in bohr — typically the center of mass of the reference (undisplaced) geometry, which keeps the dipole-derivative tensor origin-consistent across displacements.
(n_atoms,) atomic masses in amu used during mass-weighting.
- dipole_derivatives: ndarray | None = None¶
(3N, 3) tensor of
∂μ_β/∂R_iαin atomic units (e), populated whenHessianFDOptions.include_dipole_derivatives=True(else None). Row index3*i + α; columnβ ∈ {0,1,2}for{x,y,z}. Used byir_intensities()to compute IR band intensities.