Question of compute chunk/msd

Dear all lammps users,

I’m measuring the diffusion coefficient of lipid molecules in a vesicle. The command that most fits my purpose is compute msd/chunk. And chunk is defined as a group of lipid molecules. But issue is that compute msd/chunk calculates and prints out the msd of each molecule individually at each iteration. For measure of diffusion coefficient of lipids in vesicle, it needs to be long iteration(at least one million iterations). Therefore, it will limit the the number of molecules in the chunk, otherwise the msd file generated will be too large for post processing ( I need to get average msd of molecules at each step). Currently, the largest number of molecules possible in the chunk are 100. But, the msd vs time are are not linear, which means either I need longer iterations or larger numbers of molecules. But, it is not feasible to increase either. Is there alternative to do this, such as averaging the msd of molecules automatically like old command compute msd/mol do ? I know compute msd is not a good idea. Below is the command I used.

group mole molecule <= 50
compute molechunk mole chunk/atom molecule
compute 2 all msd/chunk molechunk

Thank you

If you actually want the MSD of the lipid molecules,

averaged over all 100 molecules (or more), you can

just use compute msd and define the group to

be all the molecules you wish. Then use fix ave/time

to output a single number each time you invoke it.


Thank you for reply.
But, what is the difference between compute msd and compute msd/chunk?If I have 100 molecules and each molecule has 10 beads, and I group those 100 molecules and compute msd on them, I think lammps will calculate the msd of each beads at each iteration and divide them by the numbers of beads which are 1000. Therefore the result I got will be the average msd for each bead not molecule. Please correct me if I am wrong.


It’s just a Q of whether you are averaging over all N molecules (actually

beads on all molecules), or averaging over each of N molecules

to get N values (actually over the beads on each molecule). And

then probably taking an average of the N per-molecule MSDs.

Assuming the molecules are doing roughly the same thing, over

long timescales, the answers will be similar.