Reverse Monte Carlo

From SklogWiki
Jump to navigation Jump to search

Reverse Monte Carlo (RMC) [1] is a variation of the standard Metropolis Monte Carlo method. It is used to produce a 3 dimensional atomic model that fits a set of measurements (neutron diffraction, X-ray-diffraction, EXAFS etc.). In addition to measured data a number of constraints based on prior knowledge of the system (for example, chemical bonding etc.) can be applied. Some examples are:

  • Closest approach between atoms (hard sphere potential)
  • Coordination numbers.
  • Angles in triplets of atoms.

The 3 dimensional structure that is produced by reverse Monte Carlo is not unique; it is a model consistent with the data and constraints provided.

The algorithm for reverse Monte Carlo can be written as follows:

  1. Start with a configuration of atoms with periodic boundary conditions. This can be a random or a crystalline configuration from a different simulation or model.
  2. Calculate the total radial distribution function for this old configuration (C=Calculated, o=Old).
  3. Transform to the total structure factor:
    where Q is the momentum transfer and the number density.
  4. Calculate the difference between the measured structure factor (E=Experimental) and the one calculated from the configuration :
    this sum is taken over all experimental points is the experimental error.
  5. Select and move one atom at random and calculate the new (n=New) distribution function, structure factor and:
  6. If accept the move and let the new configuration become the old. If then the move is accepted with probability otherwise it is rejected.
  7. repeat from step 5.

When have reached an equilibrium the configuration is saved and can be analysed.


Related reading