fix ave/correlate for VACF

Dear users,

I am trying to calculate VACF using fix ave/correlate commands for both of atomistic and molecular levels.

First in the atomic case, I have some problem to input atomic velocities into fix ave/correlate.

I have seen several approaches, but I think these resulted in the undesirable values.

For example,

compute 1 all reduce ave vx vy vz

fix 2 all ave/correlate 10 10000 100000 c_1[1] c_1[2] c_1[3] type auto ave running file vacf_cor.out

-> the values were underestimated

variable vx equal vx[1]

variable vy equal vy[1]

variable vz equal vz[1]

fix 2 all ave/correlate 10 10000 100000 v_vx v_vy v_vz type auto ave running file vacf_cor.out

-> These are in the reasonable range of the diffusion coefficient in the end, but I guess this way is like just considering one velocity of atomic ID=1, not all the atom’s velocities.

I want to get a correct way to derive VACF using fix ave/correlate.

Even though I know I can get the diffusion coefficient in other differnent ways, in order to validate the results each other, I am sticking to this approach.

Also, I want to use the center-of-mass of molecular velcocites as input into fix ave/correlate again.

That’s why I used compute chunk commands here.

In this case, the values seem underestimated.

compute mychunk all chunk/atom molecule #nchunk once ids once compress yes

compute vcmchunk all vcm/chunk mychunk

fix 13 all ave/time 10 1 10 c_vcmchunk[*] mode vector

variable vcmavet_x equal ave(f_13[1])

variable vcmavet_y equal ave(f_13[2])

variable vcmavet_z equal ave(f_13[3])

fix 16 all ave/correlate 1 10000 100000 &

v_vcmavet_x v_vcmavet_y v_vcmavet_z &

type auto ave running file vcm_cor2.out overwrite

I hope to solve these problem through yourd answers.

Thank you for reading my questions.

Have you looked at the compute vacf command?

Steve