vibrav.zpvc.zpvc module¶
- class vibrav.zpvc.zpvc.ZPVC(config_file, *args, **kwargs)[source]¶
Bases:
object
Class to calculate the Zero-point vibrational corrections of a certain property.
Required inputs in configuration file.
Attribute
Description
Data Type
number_of_modes
Number of normal modes in the molecule.
int
number_of_nuclei
Number of nuclei in the molecule.
int
property_file
Path to the CSV formatted file with the property information. Must have a header with the columns ‘file’, ‘atom’ and the selected property column. In addition, it must have an index column.
str
gradient_file
Path to the CSV formatted file with the gradient information. Must have a header with the columns [‘file’, ‘atom’, ‘fx’, ‘fy’, ‘fz’]. In addition, it must have an index column.
str
property_atoms
Atomic index of the atom/s of interest. Can be given as multiple space separated integers.
int
property_column
Column name with the data of interest in the property file.
str
temperature
Temperature/s in Kelvin. Can be given as a space separated list of floats.
float
Default inputs in the configuration file.
Attribute
Description
Default Value
smatrix_file
Filepath containing all of the information of the normal mode displacements.
smatrix.dat
eqcoord_file
Filepath containing the coordinates of the equilibrium structure.
eqcoord.dat
atom_order_file
Filepath containing the atomic symbols and ordering of the nuclei.
atom_order.dat
We implement the equations as outlined in the paper J. Phys. Chem. A 2005, 109, 8617-8623 (doi:10.1021/jp051685y). Where we can compute the Zero-Point Vibrational corrections with
\[\text{ZPVC} = -\frac{1}{4}\sum_{i=1}^m\frac{1}{\omega_i^2\sqrt{\mu_i}} \left(\frac{\partial P}{\partial Q_i}\right) \sum_{j=1}^m\frac{k_{ijj}}{\omega_j\mu_j\sqrt{\mu_i}} +\frac{1}{4}\sum_{i=1}^m\frac{1}{\omega_i\mu_i} \left(\frac{\partial^2 P}{\partial Q_i^2}\right)\]Where, \(m\) represents the total number of normal modes, \(\omega_i\) is the frequency of the \(i`th normal mode, and :math:\)mu_i` is the reduced mass, in atomic units. The derivatives of the property (\(P\)) are taken with respect to the normal coordinates, \(Q_i\), for a given normal mode \(i\). The anharmonic cubic constant, \(k_{ijj}\), is defined as the mixed third-energy derivative, and calculated as,
\[k_{ijj} = \frac{\partial^3 E}{\partial Q_i \partial Q_j^2}\]The calculated energy gradients in terms of the normal modes can be obtained from the Cartesian gradients by,
\[\frac{\partial E_{+/0/-}}{\partial Q_i} = \sum_{\alpha=1}^{3n} \frac{\partial E_{+/0/-}}{\partial x_{\alpha}} S_{\alpha j}\]- zpvc(geometry=True, print_results=False, write_out_files=True, debug=False, deriv_method='two-point')[source]¶
Method to compute the Zero-Point Vibrational Corrections.
- Parameters:
geometry (
bool
, optional) – Bool value that tells the program to also calculate the effective geometry. Defaults toTrue
.print_results (
bool
, optional) – Bool value to print the results from the zpvc calcualtion to stdout. Defaults toFalse
.write_out_files (
bool
, optional) – Bool value to write files with the final results to a CSV formatted and txt file. Defaults toTrue
.debug (
bool
, optional) – Bool value to write extra matrices with debug information to a file including the gradients expressed in terms of the normal modes, and the first and second derivatives of the property.