Vibrational and Thermochemical Analysis

Code author: Rollin A. King and Lori A. Burns

Section author: Lori A. Burns

Module: Keywords, PSI Variables, THERMO


It is important to know that PSI4, like any other quantum chemistry program, does not compute the usual enthalpies, entropies, or Gibbs free energies of formation provided by most reference books. Instead, quantum chemistry programs compute “absolute” thermodynamic properties relative to infinitely separated nuclei and electrons, not “formation” values relative to elements in their standard states. If you are computing thermodynamic differences, like a reaction enthalpy computed as the enthalpy of the products minus the enthalpy of the reactants, then these “absolute” enthalpies are perfectly valid and usable. However, they cannot be mixed and matched with enthalpies of formation from reference books, since the zero of energy is not the same. Additionally, the “thermal energies” reported in kcal/mol are the finite-temperature corrections to the electronic total energy, and not the overall thermal energies themselves. If in doubt, use the reported Total Energies in Hartree/particle.



Temperature in Kelvin for thermodynamic analysis. Note that 273.15 is the value for IUPAC STP.

  • Type: double

  • Default: 298.15


Pressure in Pascal for thermodynamic analysis. Note that 100000. is the value for IUPAC STP.

  • Type: double

  • Default: 101325


Rotational symmetry number for thermodynamic analysis. Default is set from the full point group (e.g., Td for methane) as opposed to the computational point group (e.g., C2v for methane). Default takes into account symmetry reduction through asymmetric isotopic substitution and is unaffected by user-set symmetry on molecule, so this option is the sole way to influence the symmetry-dependent aspects of the thermodynamic analysis. Note that this factor is handled differently among quantum chemistry software.

  • Type: integer

  • Default: 1


A thermochemical analysis is performed after any full (not just specific symmetry subgroups). If the wavefunction is retained, it may be reused at a different temperature, pressure, rotational symmetry number, or isotopic substitution through the function psi4.driver.qcdb.vib.thermo() as is shown in freq-isotope2.

A few summary psivars are set: “ZPVE”, “THERMAL ENERGY CORRECTION”, “ENTHALPY CORRECTION”, “GIBBS FREE ENERGY CORRECTION”, “ZERO K ENTHALPHY”, “THERMAL ENERGY”, “ENTHALPY”, “GIBBS FREE ENERGY”. But additionally, every valid combination of {S, Cv, Cp, ZPE, E, H, G} with {elec, trans, rot, vib, corr, tot} (e.g., vibrational entropy, S_vib, and enthalpy correction, H_corr) is returned by dictionary from the thermo function. See psi4/tests/pytests/ (near the end) for an example.


The full list of keywords for thermo is provided in Appendix THERMO.

Information on the Psithon function that drives frequency analyses is provided at frequency().