The seemingly random motion of a small particle immersed in a fluid
(Brownian motion) is due to individual collisions of the molecules that make up
the fluid with the small particle. Thus, the motion is not actually random, but
could be determined in principle by applying Newton's Laws to the individual
collisions. However, in practice, it is impractical to keep track of the motion
of all the molecules in the fluid. Similarly to other topics in statistical
mechanics, however, we can obtain a statistical description of the motion.
In this picture, we can model Brownian motion as being due to a random force
applied to the particle with viscous drag also acting. Russel, et al.,
 show how this model, under widely applicable assumptions, has a solution in
which a particle moving in one dimension simply moves a random distance,
xi, in each time step, τ, of a simulation. The random moves
xi are normally distributed with a probability distribution
f(xi, τ) given by:
where Do = kT/6πµa,
with k being Boltzmann's constant, T the absolute temperature,
µ the kinematic viscosity of the fluid, and a the radius of the
sphere. If the particle is allowed to move in three dimensions, then random
moves (yi, zi) are taken in each direction with the same
probability distribution as xi.
Hence, modeling Brownian motion in this approximation just involves generating
normally distributed random numbers with probability distribution given by
f(xi, τ). The random number generators in most standard
libraries produce uniformly distributed random numbers, however. So we need to
have a means of producing normally distributed random numbers from a source of
uniformly distributed random numbers. This process is described
As we test our code, some properties of uniformly distributed numbers will
become useful. They are described here.
 W.B. Russel, D.A. Saville, and W.R. Schowalter, Colloidal Dispersions
, (Cambridge University Press, Cambridge, 1989).