[gmx-developers] MSD bug and overload

Sławomir Stachura stachura.gmxuser at gmail.com
Wed Dec 14 12:04:29 CET 2011


I've already indicated these problems with MSD I noticed at gmx user's mailing list, but with no answer I realised I wrote to wrong gmx list.

1.The very first thing is the calculation load of MSD. I have used it for my membrane 150 ns simulation (sth about 80000 atoms) and the centre of mass calculation showed memory consuming of 300 gb - I have checked it several times and it's always of that magnitude. To prove that I send link to print-screen of my terminal with top informations:


I realise that it's mainly because of compressed trajectory, that has to be decompressed every iteration and leave all the information in memory. Nevertheless it seems to be way too memory consuming. I believe that earlier suggestions, that I found on gmx developers archive, of imtroducing HDF5 files would be the best way too cicrumvent such problems. But that's just my humble opinion.

2.The other thing is I am nearly completely sure that centre of mass lateral MSD calculations have unit bug. I have calculated mass weighted and centre of mass MSDs for the same system as above, and then fitted fractional einstein relation to obtain diffusion constant. In case of mass weighted, it was sth of 0,057, while centre of mass result was 1,42, what is clearly theoretically wrong. To check that, I have calculated MSD in other program - nMoldyn, and as mass weighted result was consistent with Gromacs one, there was big discrepancy with centre of mass calulation, because the latter was, more or less, 0,011 (what is theoretically acceptable). 
So afterwards I assumed that centre of mass lateral MSD in Gromacs is not expressed in nm^2, but in A^2. And after fitting in such case I received diffusion constant very alike to nMoldyn one - 0,013. 
At the moment I am looking into source code of g_msd, but I am python and fortran programmer and I don't have much knowledge in C, so it's quite difficult for me to analyze it.

To be clear, I used normal commends to calculated MSD, like:

g_msd -n POPC_index.ndx -lateral z -o POPC_150ns_MSDlat.xvg
g_msd -n POPC_index.ndx -lateral z -o POPC_150ns_CM_MSDlat.xvg -mol diffmol_150ns.xvg 

3. With the latter I am also curious how mass weighted MSD is normalized in g_msd - I was trying to find an answer to that, but I was unsuccesful. I'd really appreciated if someone could tell me that.


More information about the gromacs.org_gmx-developers mailing list