Diffusion on a lattice


A Monte Carlo simulation of particles on a square lattice with a maximum of one particle per site.


The model is summarized by the following steps:

  1. A particle is chosen at random.
  2. One of the four nearest neighbor sites of the particle is chosen at random.
  3. If the site is empty, the particle is moved to that site; otherwise it remains where it is. In either case the time advances by 1/N.
  4. The mean square displacement <R2> is computed after one Monte Carlo per particle, that is, after N particles have been chosen at random. (In one Monte Carlo step per particle, some particles may be chosen more than once and some not chosen at all.)


  1. Run the simulation with the default parameters and compute the slope of the plot of <R2> versus time. You can use the Data Tool under the Tools menu to do a Curve Fit. The diffusion coefficient D is defined by the relation
    <R2> = 2dDt,

    where d is the spatial dimension (two in this case). Determine the value of D.
  2. Repeat the simulation for different densities and plot the diffusion coefficient D as a function of the density ρ = N/L2. Discuss the dependence of D on ρ.
  3. Is <R2> always approximately linear in time for any density?

Java Classes

Updated 2 March 2009.