I am trying to calculate the vibrational density of states for CO2 i.e. trying to find out the CO2 vibration modes (symmetric stretch, antisymmetric stretch, in the plane and out plane bending frequencies) using velocity autocorrelation function (VACF).
The problem is when I did Fourier transforms of the VACF, it gives me a very noisy graph and the values do not match with the available experimental vibrational frequencies.
Also, I wanna check the effect of nanoparticle on the CO2 vibrational frequencies by inserting nanoparticles surrounded by CO2. I think that insertion of nanoparticles changes the amplitude of those frequencies. So my target is to first achieve the vibration frequencies of the CO2 system without nanoparticles using Fourier transform of VACF and then do the same with nanoparticle system.
Please suggest where I am making a mistake.
Did the VACF look smooth? You often need to average over many time origins to obtain smooth VACF. This is not automatically done by LAMMPS.
Also, do you know that the force field you are using should reproduce the density of states well? Not all force fields are fitted to this and will not give you results in agreement with experiments.
Two quick comments about the method you laid out. First, the quality of the VACF, and the Fourier Transform, is strongly dependent on the time interval that you record velocities. A typical C-O stretch mode has a frequency of ~75THz and will need many sample per unit time to resolve this high frequency mode. I have looked at spectra of C-H containing modes (~100THz) from MD that needed velocities every ~4fs to resolve them properly. Second, I would not expect that the spectra match experiment because this is highly dependent on the force field used. Very few parameterizations will match the second derivatives of the potential energy to experimental values of the intramolecular vibrations.
Anders’ suggestion is a good one in order to clarify if the VACF is being computed accurately enough, it is definitely worth a try. Another method is to exploit the Wiener-Khinchin theorem as an alternate way to calculate the density of states. This will require some programming on your part since it is not included in LAMMPS.
Hope that helps.
Thank you, Mitchell and Anders, for your valuable replies. I will try to resolve my problem.