Warning: used thermodynamics relations inappropriate for low-frequency modes

I am aware that this may be a very basic question, but almost in every calculation I receive this warning. I have no experience in quantum chemistry, so please be gentle. The questions I have are:

  1. how bad it is?
  2. what should be done to fix the warning?

Input:

memory 100GB
molecule qm9_halo_056 {
0 1
C     -0.387085    1.302739    0.013163
N     -1.355910    0.380852    0.010718
C     -1.021573   -0.916122   -0.002101
O     -1.911105   -1.830565   -0.004927
N      0.283606   -1.210209   -0.011799
C      1.246632   -0.284135   -0.009289
O      0.903614    0.976673    0.003273
Cl     2.922708   -0.778114   -0.022753
H     -0.680887    2.358882    0.023713
}
set{
basis 6-311g_2df_2p_
maxiter 2000
geom_maxiter 2000
g_convergence gau_verytight
dft_spherical_points 590
dft_radial_points 99
dft_pruning_scheme robust
}

optimize("b3lyp")
energy("b3lyp")
frequency("b3lyp")

Log file:

Optimizer: Optimization complete!
 43 displacements needed.
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
Warning: used thermodynamics relations inappropriate for low-frequency modes: ['55.4172' '159.2153' '274.7268' '416.3786' '427.0737' '548.9056'
 '568.1361']

Psi4 version:
1.4rc1

I’m not 100% sure why Psi4 prints this warning, but it could be alluding to the outsized impact low-frequency vibrational modes can have on the total entropy of a molecule. I would not worry too much about this for this system. I’m not sure if there’s more going on here, because I would not consider modes > 500 cm-1 to be “low-frequency”.

There’s two assumptions that make computing vibrational modes a lot easier: the mode behaves like a harmonic oscillator, and the vibrational motion is completely independent from the molecule’s rotational motion. Frequencies computed with these assumptions will be a few wavenumbers off. However, low-frequency modes contribute a significant portion of the total vibrational entropy, so the error in these frequencies could translate to over a kcal/mol error in free energy if you have a lot modes < 100 cm-1. This will be compounded with numerical noise in the rest of the computation, as well as using finite differences to compute the harmonic frequencies.

Using anharmonic frequencies would fix a lot of that error, but they are significantly more expensive (structures with multiple modes below 100 cm-1 are typically large). A cheaper way would be to make systematic adjustments to the vibrational entropy to mitigate this problem. Two popular approaches are quasi-RRHO and quasi-harmonic free energies. For quasi-harmonic, any real vibrational frequency below a threshold (typically 100 cm-1) is shifted up to that threshold. The quasi-RRHO approach dampens the entropy from all modes and complements them with some free-rotor entropy. The damping is stronger for low-frequency modes.

Here’s some references for these methods:

  1. quasi-RRHO - see the section on computing gas-phase entropies in https://doi.org/10.1002/chem.201200497
  2. quasi-harmonic - a couple paragraphs into the "Computations" section in https://doi.org/10.1021/jp205508z

If you want to use these free energies, it’s probably easy to do in an Excel sheet or even a small script. Some existing software can also apply these corrections. ORCA uses quasi-RRHO by default. AaronTools (I am a developer) is one that can apply these corrections after the computation is done, and can read Psi4 output files. You can use the grabThermo.py script that comes with AaronTools, or use the Python interface. The SEQCROW plugin (which I develop) for ChimeraX has a GUI tool that uses AaronTools to calculate quasi-RRHO and quasi-harmonic free energies. Goodvibes can also calculate these values after the computation is finished, but it only reads Gaussian output files. Perhaps someone has modified it to read Psi4 output. Shermo can process output from more software, but they do not list Psi4 support.

1 Like

Implementing quasi-RRHO is on our wish list. I agree on the around 100 cm limit.

Thanks for your answer. And many thanks for suggesting and developing AaronTools. Since my plan is to put a large number of molecules into Psi4 I would eventually need such automation tool. I starred your repo.