Vibrational Analysis and Thermochemistry
This document describes the theoretical background and implementation details for computing vibrational frequencies, IR intensities, and thermochemistry from the Hessian matrix in Metalquicha.
From Hessian to Vibrational Frequencies
The Cartesian Hessian
The Hessian matrix contains second derivatives of the energy with respect to atomic displacements:
For a system with N atoms, the Hessian is a 3N x 3N matrix in Cartesian coordinates, with units of Hartree/Bohr².
Mass-Weighting
The Hessian must be mass-weighted before diagonalization. Each element is divided by the square root of the product of the corresponding atomic masses:
where \(m_i\) is the mass of the atom associated with coordinate i (in atomic mass units
converted to atomic units via AMU_TO_AU = 1822.888).
Projection of Translational and Rotational Modes
For an isolated molecule, 6 degrees of freedom (5 for linear molecules) correspond to overall translation and rotation. These must be projected out to obtain pure vibrational frequencies.
Translation Vectors (3 modes)
for all atoms, and similarly for \(T_y\) and \(T_z\).
Mass-weighted: \(\tilde{T} = T \times \sqrt{m}\)
Rotation Vectors (3 modes for nonlinear, 2 for linear)
For rotation about axis \(\alpha\), the displacement of atom i at position \(r_i\) from center of mass:
where \(\hat{e}_\alpha\) is the unit vector along axis \(\alpha\).
Projection Procedure
Orthonormalize the translation/rotation vectors using Gram-Schmidt
Construct projection matrix: \(P = I - \sum_k |v_k\rangle\langle v_k|\)
Apply to mass-weighted Hessian: \(\tilde{H}_{proj} = P \times \tilde{H} \times P\)
Diagonalization
Diagonalize the projected mass-weighted Hessian to obtain eigenvalues \(\lambda_i\) and eigenvectors (normal modes):
where \(\Lambda\) is diagonal with eigenvalues \(\lambda_i\).
Conversion to Frequencies
Eigenvalues have units of Hartree/(Bohr² x m_e). Convert to cm⁻¹:
where AU_TO_CM1 = 2.642461 x 10^7 is the conversion factor.
Negative eigenvalues indicate imaginary frequencies (saddle points), reported as negative cm⁻¹ values.
Additional Vibrational Properties
Reduced Masses
where the sum is over mass-weighted normal mode components. Units: amu.
Force Constants
Can be converted to mDyne/Å using AU_TO_MDYNE_ANG = 15.569141.
Cartesian Displacements
Un-mass-weight the eigenvectors:
IR Intensities from Dipole Derivatives
Theory
IR intensity is proportional to the square of the transition dipole moment, which depends on how the dipole moment changes along the normal mode coordinate:
Dipole Derivative Matrix
The dipole derivative matrix (3 x 3N) contains derivatives of the dipole moment with respect to Cartesian displacements:
where \(\alpha \in \{x, y, z\}\) and i runs over all 3N Cartesian coordinates.
This is computed via finite differences of the dipole moment during the Hessian calculation.
Transformation to Normal Coordinates
Transform dipole derivatives from Cartesian to normal mode coordinates:
The transformation matrix \(\partial x / \partial Q\) comes from the mass-weighted normal modes:
IR Intensity Calculation
For each normal mode i:
In atomic units, the conversion factor to km/mol is:
AU_TO_KMMOL = 1.7770969e6
The intensity is:
Thermochemistry (RRHO Approximation)
The Rigid Rotor Harmonic Oscillator (RRHO) approximation computes thermodynamic properties by treating:
Translation as an ideal gas
Rotation as a rigid rotor (classical limit)
Vibration as quantum harmonic oscillators
Input Requirements
Molecular geometry (coordinates, atomic numbers)
Vibrational frequencies (cm⁻¹)
Temperature T (default: 298.15 K)
Pressure P (default: 1 atm)
Symmetry number σ (default: 1)
Spin multiplicity (default: 1)
Moments of Inertia
Compute the inertia tensor in the center-of-mass frame:
Diagonalize to get principal moments \(I_A, I_B, I_C\) (in amu·Å²).
Linear molecule detection: \(I_A \approx 0\) (smallest moment below threshold).
Rotational Temperatures
Zero-Point Energy (ZPE)
where CM1_TO_KELVIN = 1.4387773538277 K/cm⁻¹.
Only positive (real) frequencies are included. Imaginary frequencies are skipped with a warning.
Translational Contributions
For an ideal gas:
Partition function:
Rotational Contributions
Nonlinear molecules (3 rotational DOF):
Linear molecules (2 rotational DOF):
Vibrational Contributions
For each mode with vibrational temperature \(\theta_v = 1.4388 \times \nu\) (K):
Define \(u = \theta_v / T\):
Electronic Contributions
Ground state only:
Total Thermodynamic Functions
Implementation Notes
Matching Reference Programs
During development, the thermochemistry output was validated against xtb (extended tight-binding). Several adjustments were needed to match reference values:
Rotational Temperature Constant
Issue: Rotational partition function and entropy were off by a factor of ~1.7
Root cause: Incorrect rotational temperature constant
Fix: Changed from
16.8576 / Ito24.2637 / I(K, for I in amu·Å²)
Heat Capacity Convention
Issue: TR (translational) heat capacity showed 2.981 cal/K/mol instead of 4.968
Root cause: Reported Cv instead of Cp
Fix: For the TR row, report \(C_p = C_v + R = \frac{5}{2}R\) instead of \(C_v = \frac{3}{2}R\)
Enthalpy Table (TOT row)
Issue: TOT enthalpy showed ~15000 cal/mol instead of ~2372
Root cause: ZPE was included in the TOT row of the contribution table
Fix: TOT row shows only thermal contributions (VIB + ROT + TR), ZPE is reported separately
Thermal Correction Display
Issue: H(0)-H(T)+PV value was ~6x too large
Root cause: ZPE was included in this quantity
Fix: H(0)-H(T)+PV represents only the thermal correction without ZPE: \(E_{trans} + E_{rot} + E_{vib} + RT\)
Key Constants
Constant |
Value |
Units |
Description |
|---|---|---|---|
|
1822.888 |
m_e/amu |
Mass conversion |
|
2.642461 x 10^7 |
cm⁻¹ |
Frequency conversion |
|
1.4387773538277 |
K/cm⁻¹ |
Vibrational temperature |
Θ_rot constant |
24.2637 |
K·amu·Å² |
Rotational temperature |
|
1.98720425864 |
cal/(mol·K) |
Gas constant |
|
1.7770969 x 10^6 |
km/mol |
IR intensity conversion |