I run some molecular dynamic simulations for polymer system (liquid), and I have data of MSD vs t(time). MSD-t relation looks linear proportional. Now, which one is the proper way to calculate the self diffusion coefficient?

1) D = MSD / 6t (for 3D system) and get the asymptotic value at large t.

2) Slope of normal plot of MSD-t

3) Slope of log-log plot of log(MSD)-log(t)

4) Slope of semi-log plot of MSD-log(t)

I searched for literature's but there are too many different methods, not sure what to choose here.

  • $\begingroup$ multiple-choice? homework? $\endgroup$
    – Karl
    Commented Dec 20, 2018 at 5:49
  • 1
    $\begingroup$ In three dimensions, assumed to be isotropic, the equation is $\langle x^2\rangle=6Dt$ so the slope of the plot of $\langle x^2\rangle$ vs $t$ will give the diffusion coefficient. However, this may vary as time proceeds depending on just how well the average is calculated and of course on the system you are studying. $\endgroup$
    – porphyrin
    Commented Dec 20, 2018 at 9:00
  • 1
    $\begingroup$ I think when the slope of number 3 (log-log) is near or equal to 1, the result that you get by number 2 is more accurate, even you can use only a part of the number 2 plot that has a slope in a log-log manner near to 1. $\endgroup$
    – user86150
    Commented Nov 21, 2019 at 17:41

1 Answer 1


I would usually recommend the second option (fitting to the slope of the MSD at long times) over the first (dividing MSD by the time). If you compute $\langle \Delta r^2(t)\rangle/6t$, there is a residual effect of the velocity correlations at short time.

Suppose the velocity correlation function decays exponentially in time $$ \langle \mathbf{v}(0)\cdot \mathbf{v}(t)\rangle = \langle |\mathbf{v}|^2\rangle \exp(-t/\tau) . $$ This is related to the diffusion coefficient by $$D= \frac{1}{3} \int_0^\infty \langle \mathbf{v}(0)\cdot \mathbf{v}(t)\rangle \, dt =\frac{1}{3}\langle |\mathbf{v}|^2\rangle\tau . $$ Since $$ \Delta \mathbf{r}(t)=\mathbf{r}(t)-\mathbf{r}(0)=\int_0^t \mathbf{v}(t') \, dt', $$ it follows that $$ \frac{d}{dt} \langle | \Delta \mathbf{r}(t)|^2 \rangle = 6D\, [1-\exp(-t/\tau)] , $$ and this converges towards the correct answer, $6D$, exponentially fast in the time $t$. On the other hand $$ \frac{1}{t} \langle | \Delta \mathbf{r}(t)|^2 \rangle = 6D\, \left[ 1 - \frac{\tau}{t} + \frac{\tau}{t}\exp(-t/\tau)\right] . $$ This converges more slowly, proportional to $t^{-1}$.

Looking at a log-log plot may be useful, as it may highlight changes between different regimes of behaviour (for example, at long times) that you would miss otherwise. This might be especially true of a polymer system like yours. But your option (3) "slope of log-log plot" does not give you the diffusion coefficient! It just gives you an idea of whether the behaviour is diffusive (slope $=1$) or not (slope $\neq1$). And option (4) "slope of semi-log plot" does not give you $D$ either.

  • $\begingroup$ Thank you. Do I need to divide the slope of MSD-time from linear plot by 6, for 3D system consideration? Or just slope of MSD-time from linear plot is Ds? $\endgroup$
    – exsonic01
    Commented Dec 20, 2018 at 22:13
  • $\begingroup$ Divide the slope by $6$, assuming the MSD is the sum of the squares of all three $x,y,z$ mean squared displacements. The result should be quite close to the result you get by dividing the MSD by $6t$, but as my answer says, it has better convergence properties. $\endgroup$
    – user64968
    Commented Dec 20, 2018 at 22:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.