I have created multiple rigid body (let’s say 10) using fix rigid group command. Each group consist of different number of atoms(100 or 150 or 200 etc) but atoms type are same. I would like to get MSD of all rigid body as a group to find the diffusion of them in a bulk of fluid. Is it possible to do that in lammps where MSD will consider the center of mass of each rigid body? I have searched on lammps manual as well as questions but did not find anything relevant. Any example will be very helpful.
Just compute the MSD for each group. It only makes sense to compute diffusion in the long time limit, and for rigid bodies the average of the constituent particles will then be the same as as the result for the center of mass. Axel.
Thank you, for your suggestion. Yes, I agree that I need to compute diffusion for sufficiently large time. But to compute each group (10 groups), do I need to use compute msd 10 times? Or Lammps have some specific command for that. I used to calculate MSD for 1 group using following command where colloid 1 represents only 1 group of rigid boy.,
compute MSD colloid1 msd
fix MSD_OUTPUT colloid1 ave/correlate 1 5000 5000 c_MSD file msd_profile1.out ave running
That depends on what you want to compute: the average MSD for all groups or the MSD for each. in the first case, one command is sufficient, in the second case, you need to do 10 computations for the 10 groups.
I am looking for the average MSD of all groups. In my lammps command colloid1 represents only one group of rigid body.
Maybe what you want to do is define chunks, where 1 chunk = 1 rigid body.
Instead of thinking about this in terms of groups.
Then you can use the compute msd/chunk command and average
over chunks (or not), depending on what you want.