Awesome
GoodVibes is a Python package to compute thermochemical data from one or a series of electronic structure calculations. It has been used since 2015 by several groups, primarily to correct the poor description of low frequency vibrations by the rigid-rotor harmonic oscillator treatment. The current version includes thermochemistry at variable temperature/concentration, various quasi-harmonic entropy and enthalpy schemes, automated detection of frequency scaling factors, Boltzmann averaging, duplicate conformer filtering, automated tabulation and plotting of energy profiles, and error checking.
All (electronic, translational, rotational and vibrational) partition functions are recomputed and will be adjusted to any temperature or concentration. These default to 298.15 Kelvin and 1 atmosphere.
The program will attempt to parse the level of theory and basis set used in the calculations and then try to apply the appropriate vibrational (zpe) scaling factor. Scaling factors are taken from the Truhlar group database.
Documentation
GoodVibes documentation can be found on our read-the-docs page.
Quasi-Harmonic Approximation
Two types of quasi-harmonic approximation are readily applied. The first is vibrational entropy: below a given cut-off value vibrational normal modes are not well described by the rigid-rotor-harmonic-oscillator (RRHO) approximation and an alternative expression is instead used to compute the associated entropy. The quasi-harmonic vibrational entropy is always less than or equal to the standard (RRHO) value obtained using Gaussian. Two literature approaches have been implemented. In the simplest approach, from Cramer and Truhlar,<sup>1</sup> all frequencies below the cut-off are uniformly shifted up to the cut-off value before entropy calculation in the RRHO approximation. Alternatively, as proposed by Grimme,<sup>2</sup> entropic terms for frequencies below the cut-off are obtained from the free-rotor approximation; for those above the RRHO expression is retained. A damping function is used to interpolate between these two expressions close to the cut-off frequency.
The second type of quasi-harmonic approximation available is applied to the vibrational energy used in enthalpy calculations. Similar to the entropy corrections, the enthalpy correction implements a quasi-harmonic correction to the RRHO vibrational energy computed in DFT methods. The quasi-harmonic enthalpy value as specified by Head-Gordon<sup>3</sup> will be less than or equal to the uncorrected value using the RRHO approach, as the quasi-RRHO value of the vibrational energy used to compute the enthalpy is damped to approach a value of 0.5RT, opposed to the RRHO value of RT. Because of this, the quasi-harmonic enthalpy correction is appropriate for use in systems and reactions resulting in a loss of a rotational or translational degree of freedom.
Installation
- With pypi:
pip install goodvibes
- With conda:
conda install -c conda-forge goodvibes
Citing GoodVibes
Luchini, G.; Alegre-Requena, J. V.; Funes-Ardoiz, I.; Paton, R. S. GoodVibes: Automated Thermochemistry for Heterogeneous Computational Chemistry Data. F1000Research, 2020, 9, 291 DOI: 10.12688/f1000research.22758.1
Usage
python -m goodvibes [-q] [--qs grimme/truhlar] [--qh] [-f cutoff_freq] [--fs S_cutoff_freq] [--fh H_cutoff_freq]
[--check] [-t temperature] [-c concentration] [--ti 't_initial, t_final, step'] [--ee] [--bav "global" or "conf"]
[--cosmo cosmo_filename] [--cosmoint cosmo_filename,initial_temp,final_temp] [-v frequency_scale_factor]
[--nosymm] [--spc link/filename] [--boltz] [--dup][--pes pes_yaml] [--nogconf]
[--graph graph_yaml] [--cpu] [--imag] [--invertifreq] [--freespace solvent_name] [--output output_name]
[--media solvent_name] [--xyz] [--csv] [--custom_ext file_extension] <output_file(s)>
See read-the-docs: Usage for an explanation of these arguments
See read-the-docs: Examples for example usage.
See read-the-docs: Checks for information on automated job checking
Symmetry
GoodVibes is able to detect a probable symmetry point group for each species and apply a symmetry correction to the entropy (S<sub>sym</sub>) by finding a molecule's internal symmetry. As of version 4 this uses the python interface to the pymsym package.
Tips and Troubleshooting
- The python file doesn’t need to be in the same folder as the Gaussian files. Just set the location of GoodVibes.py in the
$PATH
variable of your system (this is not necessary if installed with pip or conda) - It is possible to run on any number of files at once using wildcards to specify all of the Gaussian files in a directory (specify
*.out
or*.log
) - File names not in the form of filename.log or filename.out are not read, however more file extensions can be added with the option
--custom_ext
- The script will not work if terse output was requested in the Gaussian job
- Problems may occur with Restart Gaussian jobs due to missing information in the output file.
- HF, DFT, MP2, semi-empirical, time dependent (TD) DFT and HF, ONIOM, and G4 calculations from Gaussian are also supported.
Contributors
- Robert Paton
- Ignacio Funes-Ardoiz
- Guilian Luchini
- Juan V. Alegre-Requena
- Yanfei Guan
- Jaime Rodríguez-Guerra
- Eric Berquist
- JingTao Chen
- Julia Velmiskina
- Shree Sowndarya
- Heather Mayes
- Sibo Wang
- F Roessler
License:
GoodVibes is freely available under an MIT License