Questions about volecity autocorrelation function

Dear all,

There are several different expressions of velocity autocorrelation function. One is :gdbagjaj.png

velocity is a function of time v = v(t)

My understanding is that lammps calculate it as :
egggfaea.png

So, If I want to achieve the first definition, I should do several compute vacf starting at different time step and then average them.
Is this understanding correct?

Does lammps output the veloctiy autocorrelation function at time 0 ? That is , is the first output of compute vacf with 1 time step
fgjbhhbi.png.

Thanks for help.

Lin

Dear all,

There are several different expressions of velocity autocorrelation
function. One is :

velocity is a function of time v = v(t)

My understanding is that lammps calculate it as :

So, If I want to achieve the first definition, I should do several
compute vacf starting at different time step and then average them.
Is this understanding correct?

Does lammps output the veloctiy autocorrelation function at time 0 ? That
is , is the first output of compute vacf with 1 time step

​LAMMPS does what the documentation of the ave/correlate fix says it does. ​
http://lammps.sandia.gov/doc/fix_ave_correlate.html

please note that you'd be averaging over individual time origins as well,
you'll averaging over *very* highly correlated data and thus will gain very
little additional information at the expense of a log of additional
computation. the fact that you'd need to buffer the velocity history for
all atoms, makes this quite demanding in terms of memory use.

axel.

fgjbhhbi.png

gdbagjaj.png

egggfaea.png

Compute vacf and fix ave/correlate are 2 different things. Compute vacf works

as you indicated, I believe it also computes the time 0 term, assuming

you output it.

Fix ave/correlate performs a formula like you outline, with a series of
different time origins. However it only works on scalar inputs. What

you are asking for with VACF is a vector input (one value per atom).

LAMMPS does not currently do this, partly b/c it could require carrying

along a huge amount of data with the atoms (big series of previous time

values). So it is better to post-process that kind of multi-time-window

averaging.

You can also look at the new fix ave/correlate/long command. Possibly

that could be extended to work with vectors with smaller memory

overhead.

Steve

gdbagjaj.png

egggfaea.png

fgjbhhbi.png