Summer School on Computational Materials Science
University of Illinois, Urbana-Champaign


Kinetic Monte Carlo: Bare Bones and a Little Flesh

Duane Johnson - - University of Illinois, Department of Materials Science & Engineering and Physics, Computational Science and Engineering Program

Outline of Lecture

  1. Introduction to Kinetic (a.k.a. Dynamical) MC (5 min.)
    1. Time Scales: MD, MC, and KMC
    2. A Hybrid Monte Carlo: MD + KMC
  2. Solution of the "Markovian" Master Equation (15 min.)
    1. MC vs. KMC
    2. Detailed Balance Requirements
  3. Rudiments of KMC (simulation time vs. real time) (45 min.)
    1. Dynamical Hierarchies (time scales via transition rates)
    2. Poisson Processes (an necessary aside) - examples: radiation counts, binomial distributions
    3. Simple Example: Adsorption-Desorption in 2-D (see background article)
    4. Generalization
  4. Algorithms for "Fast" Monte Carlo (30 min.)
    1. Basics of the "n-fold-way" (or "residence-time") algorithm B. Improvements using Binary or K-search Methods
  5. Laboratory KMC Exercise (20 min.)
    1. Vacancy-assisted Ordering in 2-D Binary Alloy
    2. Special Effects: radiation damage via ballistic jumps
  6. Beware of Solving Master Equation via Approximations (if time permits, 10 min.)
    1. Technical Point: Fokker-Planck Equation is wrong.
    2. Technical Point: First-order Fix-up from Kubo
    3. Example: Non-equilibrium transitions in fcc AB3 compounds, see Haider, Bellon and Martin, Phys. Rev. B 42 8274 (1990)

Background Article

"Theoretical foundations of dynamical Monter Carlo simulations", K.A. Fichthorn, J. Chem. Phys. 95 1090 (1991).


KMC is important if you are planning to model dynamic events, such as radiation damage effects, diffusion constants, adhesion, surface migration, step growth, size changes in ordering domain, and so on, versus time. In these cases, quantities (e.g., diffusion constants and domain size growth) really depend on a time scale which must be known, as opposed to usual MC which typically reports things in MC time steps (whatever time unit they unknowingly represent). In KMC, dynamic events and the time for such an event are determined directly from the transition rates for that event, if everything can be developed according to Poisson processes. How to do this for a specific problem, and how the "algorithms" and "data structure" can be incredibly important in solving this problem is discussed in detail within my notes.


Download Lecture Notes - kmc_ss.pdf (481 K PDF)

Look at WWW Slides

Example Code in Lecture

Inside my lecture notes I discuss a simple adsorption-desorption model, one of a few in which the answer is known analytically. The code is formulated according to a discussion of Fichthorn and Weinberg (see notes). The code may be downloaded and played with. (In particular, try changing definition of TIME-STEP from the sampling of Poisson distribution and see that TIME is no longer REAL TIME.)

The model code dMCs.f, with DATA given in
(Or see PDF version used in Appendix of my notes.)

An x11 Graphics package is used within the code to plot both analytic solution and MC results in real time. You may find the tar file TAR + GZIP Library Creator. Or, you may remove plotting call and place data in file to be plotted using your most convenient method.

Lab Exercise

Vacancy-Assisted Ordering in 2D Binary Alloy


Last Updated July 19, 2001
Report errors to the webmaster