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 goC(r) for this old configuration (C=Calculated, o=Old).
  3. Transform to the total structure factor:
    SoC(Q)−1=4πρQ∫0∞r(goC(r)−1)sin(Qr)dr
    where Q is the momentum transfer and ρ the number density.
  4. Calculate the difference between the measured structure factor SE(Q) (E=Experimental) and the one calculated from the configuration SoC(Q):
    χo2=∑i(SoC(Qi)−SE(Qi))2/σ(Qi)2
    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:
    χn2=∑i(SnC(Qi)−SE(Qi))2/σ(Qi)2
  6. If χn2<χo2 accept the move and let the new configuration become the old. If χn2≥χo2 then the move is accepted with probability exp(−(χn2−χ02)/2) otherwise it is rejected.
  7. repeat from step 5.

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

References[edit]

Related reading