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:
objectKnobs 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) / 2before 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_cm1are 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)¶
Methods
__init__([step_bohr, sym_strict, ...])Attributes
When True, also evaluate the dipole moment at every displaced geometry and assemble the dipole-derivative tensor
∂μ_β/∂R_iα(in atomic units, e).- 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 onecompute_dipolecall per displacement. Required byir_intensities(). Default False.