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.
compute 1 all reduce ave vx vy vz
fix 2 all ave/correlate 10 10000 100000 c_1 c_1 c_1 type auto ave running file vacf_cor.out
-> the values were underestimated
variable vx equal vx
variable vy equal vy
variable vz equal vz
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)
variable vcmavet_y equal ave(f_13)
variable vcmavet_z equal ave(f_13)
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.