The KMC algorithm

The kinetic Monte Carlo algorithm allows us to simulate the behaviour based on the microscopic kinetics.

The KMC algorithm is as follows:

  1. For a given configuration a list of all possible events, n=1,...,N, is generated and the rate, rn, for each event is calculated.
  2. Exactly one event is selected, such that any event, n, is selected with probability

  3. The seleted event is executed and time is advanced by

    where u is a random number uniformly distributed in the interval [0,1[.

In our mechanism the possible events are the desorption of a A2*-molecule and the diffusion of A2* or A* to a neighbor site.

Usually the events are enumerated by looping over the sites in the lattice and one must be careful to list each event exactly once.

In the following we will need an algorithm to select a number, n, out of N with weight Wn or, equivalently, probability


Without loss of generality assume that the weights are non-zero. The selection can be implemented efficiently by storing
(s1, s2, ..., sN)

where

We generate a random number, u, uniformly distributed in [0,1[ and the corresponding value of n from
sn-1 < sNu sn

As the sequence ? is ordered, n can be determined by search by bisection.

During the simulation the temperature increases. Frequently this implies that the surface diffusion will go from slow to extremely fast. If we ignore this complication, the simulation will start with reasonably large timesteps, say =1 s. As the temperature increases, the diffusion rate increases, decreases and the algorithm gradually becomes intolerably slow, say =1 ns.

Fast events

This exposes a fundamental flaw in the KMC algorithm. Consider for a moment the situation of desorption at constant temperature in the absence of adsorbate-adsorbate interactions and further suppose that surface diffusion is slow. This problem can be solved both analytically and by KMC, this is our reference case. Suppose now that we speed up the surface diffusion. In the analytical approach, equation ? becomes

which can be plugged into equation ? i.e the analytical solution becomes simpler. However, the KMC simulation will use progressively shorter timesteps and the computational effort increases dramatically.

When the KMC algorithm is formulated as in ? increasing to infinity the rate of one of the steps in the mechanism leads to a dramatical increase in the computational effort rather than a fast approach to equilibrium.

The large but smooth increase in diffusion rate with temperature implies that simple approximations, such as treating the diffusion as either slow or fast independent of the temperature, will not work.

Fortunately, a smooth transtion to fast diffusion can easily be implemented by a slight modification of the KMC algorithm.

We decide on a limit between fast and slow diffusion events and then perform two scans over the system.


Start
Back
Next
Author Per Stoltze stoltze@fysik.dtu.dk