vibeqc.HessianFDOptions

class vibeqc.HessianFDOptions(step_bohr=0.005, sym_strict=True, project_trans_rot=True, atomic_masses_amu=None, include_dipole_derivatives=False)[source]

Bases: object

Knobs for compute_hessian_fd().

step_bohr

Centered-finite-difference displacement (default 0.005 bohr). Smaller → more sensitive to SCF round-off; larger → more anharmonicity contamination. 0.001–0.01 bohr is the practical sweet spot.

sym_strict

Symmetrize the FD Hessian as H = (H + H.T) / 2 before mass-weighting (default True). Set False to keep the raw FD matrix — useful for diagnosing translational invariance of the gradient.

project_trans_rot

Project the 3 (linear: 2) translational + 3 (linear: 2) rotational zero modes out of the mass-weighted Hessian before diagonalisation (default True). When True, the corresponding entries of frequencies_cm1 are exactly zero so callers can slice [6:] (or [5:] for linear molecules) for the vibrational subset.

atomic_masses_amu

Optional per-atom mass override (length n_atoms, in amu). Defaults to the standard atomic masses for the molecule’s Z values. Use this for isotope substitution (D for H, ¹³C, etc.).

Parameters:
__init__(step_bohr=0.005, sym_strict=True, project_trans_rot=True, atomic_masses_amu=None, include_dipole_derivatives=False)
Parameters:
Return type:

None

Methods

__init__([step_bohr, sym_strict, ...])

Attributes

atomic_masses_amu

include_dipole_derivatives

When True, also evaluate the dipole moment at every displaced geometry and assemble the dipole-derivative tensor ∂μ_β/∂R_iα (in atomic units, e).

project_trans_rot

step_bohr

sym_strict

step_bohr: float = 0.005
sym_strict: bool = True
project_trans_rot: bool = True
atomic_masses_amu: Sequence[float] | None = None
include_dipole_derivatives: bool = False

When True, also evaluate the dipole moment at every displaced geometry and assemble the dipole-derivative tensor ∂μ_β/∂R_iα (in atomic units, e). Cheap because the SCF is already done — adds only one compute_dipole call per displacement. Required by ir_intensities(). Default False.