Fix vector compute does not calculate a vector

Hello All,

If anyone could suggest me the way how to fix the global quantity if it is VECTOR not scaler?

I was trying to find msd for atoms using the following fix which works perfectly.

fix 9 small vector 10 c_msd_s[4]

where msd_s is
step v_1 v_2 v_3 v_4
100 0.00150519 0.00139206 0 0.00289726

200 0.00390091 0.00340854 0 0.00730945

300 0.00718023 0.00600874 0 0.013189

but when I tried to find msd for molecules using

fix 15 big vector 10 c_msd_b[:][4] it does not working. COULD ANYONE PLEASE CORRECT MY THIS COMMAND SO THAT I COULD FIX THE 4th COLUMN OF EACH ROW ? I have already calculated msd/chunk to using the chunkID. All i need now is to fix this quantities and apply on a varible.

variable twopoint_b vector c_msd_b[4]/4/(step*dt+1.0e-6)

where msd_b is

step v
v_1 v_2 v_3 v_4
100 3
1 9.31923e-007 0.000729263 0 0.000730195
2 0.000379746 7.76286e-005 0 0.000457375
3 6.24798e-006 4.50904e-008 0 6.29307e-006

200 3
1 8.76573e-005 0.00309897 0 0.00318663
2 0.0018359 0.000484568 0 0.00232047
3 2.17143e-005 4.99036e-007 0 2.22133e-005

Thanks.

Regards,
Salehin

Hello All,

If anyone could suggest me the way how to fix the global quantity if it is
VECTOR not scaler?

I was trying to find msd for atoms using the following fix which works
perfectly.

fix 9 small vector 10 c_msd_s[4]
where msd_s is
step v_1 v_2 v_3 v_4
100 0.00150519 0.00139206 0 0.00289726
200 0.00390091 0.00340854 0 0.00730945
300 0.00718023 0.00600874 0 0.013189

but when I tried to find msd for molecules using

fix 15 big vector 10 c_msd_b[:][4] it does not working.

​*of course* it is not working. this is incorrect syntax. where in the
LAMMPS manual does it say, that you can use​ this syntax?

COULD ANYONE PLEASE CORRECT MY THIS COMMAND SO THAT I COULD FIX THE 4th
COLUMN OF EACH ROW ?

​you cannot invent some syntax and then expect the people on the mailing
list to do your thinking for you.​

I have already calculated msd/chunk to using the chunkID. All i need now
is to fix this quantities and apply on a varible.
variable twopoint_b vector c_msd_b[4]/4/(step*dt+1.0e-6)

​i would suggest a much simpler solution: rather than computing the MSD for
the whole molecule, just pick one reference atoms - preferably close to the
center of mass - and compute the MSD for those atoms. at the time scale
where the MSD is meaningful converged, the difference of the MSD between
individual ​atoms in a molecule to their average is negligible compared to
the statistical and systematical error. no crazy syntax modification or
LAMMPS hacking required.

​axel.​