# An inquiry about compute msd/chunk command.

بسم الله الرحمن الرحيم

this command supposed to do the following for a chunk of atoms:

<[Rcom(t0+t)-Rcom(t0)]^2> and the average here is overall t0’s.

but in the command documentation, you said that “The displacement of the center-of-mass of the chunk is from its original center-of-mass position, calculated on the timestep this compute command was first invoked.”

but this means that there is one t0, so how this command averages the square displacements?

I am sorry if there is a misunderstanding from me.

بسم الله الرحمن الرحيم

Did you get my message?

I did (I got both). Just remember that it can take a few days for people to reply to your mail because most people on here have a day time job or simply don’t know how to help you.

In this case, I think you are misunderstanding. Mean squared displacement is simply the squared difference between an atom’s current position and some reference position. The reference position is stored on the first time step the fix is invoked. The averaging is only over the atoms, not in time. Time averaging a time-dependent quantity does not usually make sense.

The doc page for compute msd/chunk does not say it computes:

<[Rcom(t0+t)-Rcom(t0)]^2> and the average here is overall t0’s.

It says it computes the MSD for each chunk from a single t0.

You could average the output of this compute over chunks

with other commands, like compute reduce.

LAMMPS does not have a command that averages an MSD

(for chunks or atoms) over multiple time origins. This has been discussed on

the mail list before.

Steve

بسم الله الرحمن الرحيم

First, I am sorry for my hurry.

Second, for Mr. Stefan Paquay, what does “mean” word mean in “mean square displacement”? and how the averaging is only over the atoms while this compute command computes the MSD for the center of mass of the chunk? ( I know that the averaging over atoms number is correct when you calculated the MSD for each atom, i.e. <[Ri(t0+t)-Ri(t0)]^2> ) please see this link.

Third, for Mr. Steve Plimpton, you said in this command doc page “The slope of the mean-squared displacement (MSD) versus time is proportional to the diffusion coefficient of the diffusing chunks.” this means the following

<[Rcom(t0+t)-Rcom(t0)]^2> =6Dt, which is the Einstein relation for the center of mass MSD.

Any correction if also I have a misunderstanding here.

Thanks a lot.

I answered too quickly, I mixed up compute msd and compute msd/chunk.
In the chunk case, it calculates the MSD of the chunk, that is, all atoms that comprise the chunk.
“mean” simply means “average”. I suppose for msd/chunk, the averaging comes from the fact that you look at the center of mass of the atoms that make up the chunk, so it is “averaged” in that sense. If your chunk is just a single molecule, it is really just a squared displacement though.

بسم الله الرحمن الرحيم

Thanks a lot, Mr. Stefan, I have one molecule (bead-spring chain) in my simulation, so as you said “it is really just a squared displacement though.” this means that this compute command computes [Rcom(t0+t)-Rcom(t0)]^2 for my simulation, and this also means that the sentence “The slope of the mean-squared displacement (MSD) versus time is proportional to the diffusion coefficient of the diffusing chunks.”, which is from this command doc, is wrong because the relation <[Rcom(t0+t)-Rcom(t0)]^2> =6Dt contains the average brackets, or also there is a misunderstanding here.

That relation only holds for ensemble averages, hence the average brackets.

بسم الله الرحمن الرحيم

Thanks a lot for your attention.

As you said “for ensemble averages”, Does this mean running many simulations for the same system and take the average overall simulation, e.g., if I have 100 value for MSD from 10 simulations for the same system, then I must average each value in “100” with corresponding ones 10 times and get 100 value averaged over these ensembles?

In my simulation, I have one bead-spring chain and I used the following commands: