[gmx-users] Three different diffusivities by "gmx msd" /

Johannes Hörmann johannes.hoermann at imtek.uni-freiburg.de
Thu Jan 18 13:57:52 CET 2018

Dear GROMACS community,

evaluating the diffusivity of as single dodecyl sulfate (DS) anion, I 
use a small trajectory chunk "md_00001.trr" 5 ps (500 frames) long for 
testing purposes. The .trr has been stripped of any atoms except the 42 
ones forming the DS chain (12H25SO4). What is more, I prepared an index 
file DS_selection.ndx with the content

     [ Surfactant ]
        1    2    3    4    5    6    7    8    9   10   11   12 13   
14   15
       16   17   18   19   20   21   22   23   24   25   26   27 28   
29   30
       31   32   33   34   35   36   37   38   39   40   41   42

in order to select the molecule of interest explicitly. As far as I 
understand the GMX 2016.4 manual and help, the commad

     gmx msd -f md_00001.trr -s md.tpr -o atom_wise_msd.xvg -n 

should yield the atom-wise evaluated MSD averaged over all 42 atoms for 
each timestep. "atom_wise_msd.xvg" contains the comment

     # MSD gathered over 4.99 ps with 1 restarts
     # Diffusion constants fitted from time 0.5 to 4.49 ps
     # D[Surfactant] = 1.8305 (+/- 1.3704) (1e-5 cm^2/s)

which I understand  as the atom-averaged diffusivity. On the other hand,

     gmx msd -f md_00001.trr -s md.tpr -o mol_wise_msd.xvg -mol 
mol_wise_D.xvg -n DS_selection.ndx

should yield MSD (and diffusivity D) for the molecule's COM, and 
consequently a different value D

     # MSD gathered over 4.99 ps with 1 restarts
     # Diffusion constants fitted from time 0.5 to 4.49 ps
     # D[Surfactant] = 1.5575 (+/- 1.3521) (1e-5 cm^2/s)

is found within "mol_wise_msd.xvg". So far, so good, my understanding is 
correct up until here?

Now, looking at the latter command's stdout, I have

     <D> = 1.1395 Std. Dev. = -nan Error = -nan
     Fitting from 0.5 to 4.49 ps

     D[Surfactant] 1.5575 (+/- 1.3521) 1e-5 cm^2/s

and in the file "mol_wise_D.xvg" of course just one entry for the single 
DS molecule

     @    title "Diffusion Coefficients / Molecule"
     @    xaxis  label "Molecule"
     @    yaxis  label "D"
     @TYPE xy
          0     1.13953

Here, I am confused. How does the third value for D arise? Naturally, I 
would have expected "mol_wise_D.xvg" to list the same value of D = 
1.5575 as found within the comment of "mol_wise_msd.xvg".

I am looking forward to a clarifying answer, as I could not find any 
notes on this discrepancy in the documentation. Is it maybe possible 
that the <D> = 1.1395 is evaluated over all 5ps, whereas D[Surfactant] = 
1.5575is fitted only on the 80% trajectory from 0.5 to 4.49 ps? If so, 
some clear hint towards this fact would be appreciated in the "gmx help 
msd" text.

A different topic: I could not find any option for "gmx msd" to evaluate 
a trajectory frame-wise without loading the whole file into memory. When 
applied onto a several GB .trr, even with relatively small "-trestart”, 
GMX would continuously eat up memory until the job would be canceled due 
to running out of the node's 128 GB RAM. Maybe any undocumented option 
hidden somewhere?

Here the output of "gmx --version"

     GROMACS:      gmx, version 2016.4
     Data prefix: 
     Working dir: 
     Command line:
       gmx --version

     GROMACS version:    2016.4
     Precision:          single
     Memory model:       64 bit
     MPI library:        thread_mpi
     OpenMP support:     enabled (GMX_OPENMP_MAX_THREADS = 32)
     GPU support:        disabled
     SIMD instructions:  AVX2_256
     FFT library:        fftw-3.3.7-sse2-avx-avx2-avx2_128
     RDTSCP usage:       enabled
     TNG support:        enabled
     Hwloc support:      hwloc-1.11.0
     Tracing support:    disabled
     Built on:           Wed Dec 13 10:46:41 CET 2017
     Built by:           fr_jh1130 at int02.nemo.privat [CMAKE]
     Build OS/arch:      Linux 3.10.0-693.5.2.el7.x86_64 x86_64
     Build CPU vendor:   Intel
     Build CPU brand:    Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
     Build CPU family:   6   Model: 79   Stepping: 1
     Build CPU features: aes apic avx avx2 clfsh cmov cx8 cx16 f16c fma 
hle htt lahf mmx msr nonstop_tsc pcid    pclmuldq pdcm pdpe1gb popcnt 
pse rdrnd rdtscp rtm sse2 sse3 sse4.1 sse4.2 ssse3 tdt x2apic
     C compiler: /opt/bwhpc/common/compiler/gnu/5.2.0/bin/gcc GNU 5.2.0
     C compiler flags:    -march=core-avx2     -O3 -DNDEBUG 
-funroll-all-loops -fexcess-precision=fast
     C++ compiler: /opt/bwhpc/common/compiler/gnu/5.2.0/bin/g++ GNU 5.2.0
     C++ compiler flags:  -march=core-avx2    -std=c++0x   -O3 -DNDEBUG 
-funroll-all-loops -fexcess-precision=fast

Thanks for your help.

Best regards,

Johannes Hörmann

University of Freiburg
IMTEK - Department of Microsystems Engineering
Laboratory for Simulation
Georges-Köhler-Allee 103, Room 03 020
79110 Freiburg, Germany

Office: +49-761-203-67726
Email: johannes.hoermann at imtek.uni-freiburg.de

More information about the gromacs.org_gmx-users mailing list