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

.

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.

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

1 Like