oct-vibrational_spectrum
This utility calculates the vibrational spectrum from a molecular-dynamics run.
What this utility does is to read the velocity from the td.general/coordinates and calculate the Velocity Autocorrelation Function:
$$ C_{v}(t)=\sum_{i=1}^{N_{atoms}}\vec{v}_i(t)\cdot\vec{v}_i(t_0)\ , $$
afterward a cosinusoidal envelope is added, to make the periodic extension of the function continuous and then the spectrum is calculated by taking the Fourier transform of the function. On exit, two files are generated td.general/velocity_autocorrelation and td.general/vibrational .
This utility honours the variables PropagationSpectrumStartTime and PropagationSpectrumEndTime to control the time of sampling. Note that the velocity in the initial time must be different from zero, or $C_{v}$ will be identically zero. The variable VibrationalSpectrumTime can be used to control the maximum time for the calculation of $C_{v}(t)$. Also, it is possible to skip certain times and only read one time-step out of X, where X is specified by the variable VibrationalSpectrumTimeStepFactor. By default, this is set to 10.
As a discrete Fourier tranform is used, this utility can take several minutes to process a large run. If Octopus was compiled with OpenMP support, this utility can run in several threads.