In this exercise we will compare the vibrational spectrum of two molecules (methanol and benzene) computed with a static method (diagonalization of the dynamical matrix) and with molecular dynamics. The spectra for methanol are available in this paper 10.1039/c3cp44302g. As in the last lectures, to make this exercise computationally feasible, we will use for MD the efficient Density Functional based Tight Binding (DFTB) method. It requires only a minima basis, but delivers nevertheless reasonable results due to an empirical correction term called repulsion potential.
bsub -n 16
, particularly the vibrational spectrum.
Download, as usual, the commented files from the wiki exercise_10.1.tar.gz.
To compute the vibrational spectra, we need to first find a minimum structure for the systems. To this end, we use the input files optc6h6.inp and optmet.inp. These runs are still done with DFT (not DFTB). The last geometry from the C6H6-pos.1.xyz is the optimized one. Copy it to optc6h6.xyz. This will be the input for the vibc6h6.inp which computes the spectra, by adding a new section in the input:
&VIBRATIONAL_ANALYSIS INTENSITIES NPROC_REP 32 DX 0.001 &PRINT &PROGRAM_RUN_INFO ON &END &END &END
For the intensities, the derivative of the dipole along the normal modes is necessary (see lecture). So the moments are computed in the standard non periodic fashion:
&DFT BASIS_SET_FILE_NAME ./BASIS_MOLOPT POTENTIAL_FILE_NAME ./GTH_POTENTIALS &PRINT &MOMENTS PERIODIC FALSE &END &END
This code will generate frequencies and intensities of the IR spectrum in the files C6H6-VIBRATIONS.mol and the same for methanol. This file can be read by the visualization program molden .
Download the following file into your project directory:
You can unpack it with the following command:
$ tar -xvzf dftb_params.tgz
You will find a fortran program in the repository, called dipole_correlation.f90 Compile it (module load gcc; gfortran -o dipole.x dipole_correlation.f90 ). This program computes the correlation function of the (derivative of) the dipole moment, and performs also the Fourier transform.
Run cp2k with the md*.inp input files (for the two molecules). Note that the dipole moment and derivatives are extracted from simulation and saved in a file dip*traj (check the input). Run first 5000 steps, then edit the file dipole.in and run dipole.x < dipole.in . This will generate the autocorrelation function of the dipole derivative (why?) and its Fourier transform (frequency domain).