Reverse Monte Carlo: Difference between revisions

From SklogWiki
Jump to navigation Jump to search
mNo edit summary
Line 1: Line 1:
Reverse Monte Carlo (RMC) [1] is a variation of the standard Metropolis Monte Carlo (MMC) method. It is used to produce a 3 dimensional atomic model that fits a set of measurements (Neutron-, X-ray-diffraction, EXAFS etc.).
Reverse Monte Carlo (RMC) [1] is a variation of the standard Metropolis Monte Carlo (MMC) method. It is used to produce a 3 dimensional atomic model that fits a set of measurements (Neutron-, X-ray-diffraction, EXAFS etc.).
In addition to measured data a number of constraints based on prior knowledge of the system (like chemocal bonds etc.) can be applied. Some examples are:
In addition to measured data a number of constraints based on prior knowledge of the system (like chemical bonds etc.) can be applied. Some examples are:


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


The algorithm for RMC can be written:
The algorithm for RMC can be written:


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.
#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 <math>g_o^C(r)</math> for this old configuration.
#Calculate the total radial distribution function <math>g_o^C(r)</math> for this old configuration.
3. Transform to the total structure factor:
#Transform to the total structure factor:
<math>S_o^2 (Q)-1=\frac{4\pi\rho}{Q}\int\limits_{0}^{\inf} r(g_o^C(r)-1)sin(Qr)\, dr</math>
<math>S_o^2 (Q)-1=\frac{4\pi\rho}{Q}\int\limits_{0}^{\infty} r(g_o^C(r)-1)\sin(Qr)\, dr</math>


where ''Q'' is the momentum transfer <math>\rho</math> and the number density.
where ''Q'' is the momentum transfer <math>\rho</math> and the number density.
4. Calculate the difference between the measured structure factor <math>S^E(Q)</math> and the one calculated from the configuration <math>S_o^C(Q)</math>:
#Calculate the difference between the measured structure factor <math>S^E(Q)</math> and the one calculated from the configuration <math>S_o^C(Q)</math>:
<math>\chi_o^2=\sum_i(S_o^C(Q_i)-S^E(Q_i))^2/\sigma(Q_i)^2</math>
<math>\chi_o^2=\sum_i(S_o^C(Q_i)-S^E(Q_i))^2/\sigma(Q_i)^2</math>
this sum is taken over all experimental points <math>\sigma</math> is the experimental error.
this sum is taken over all experimental points <math>\sigma</math> is the experimental error.
5. Select and move one atom at random and calculate the new distribution function, structure factor and:
#Select and move one atom at random and calculate the new distribution function, structure factor and:
<math>\chi_n^2=\sum_i(S_n^C(Q_i)-S^E(Q_i))^2/\sigma(Q_i)^2</math>
<math>\chi_n^2=\sum_i(S_n^C(Q_i)-S^E(Q_i))^2/\sigma(Q_i)^2</math>
6. If <math>\chi_n^2<\chi_o^2</math> accept the move and let the new configuration become the old. If <math>\chi_n^2>\chi_o^2</math> then the move is accepted with probability <math>exp(-(\chi_n^2-\chi_0^2)/2)</math> otherwiase rejected.
#If <math>\chi_n^2<\chi_o^2</math> accept the move and let the new configuration become the old. If <math>\chi_n^2>\chi_o^2</math> then the move is accepted with probability <math>\exp(-(\chi_n^2-\chi_0^2)/2)</math> otherwiase rejected.
7. repeat from step 5.
#repeat from step 5.
When <math>\chi^2</math> have reached an equilibrium the configuration is saved and can be analysed.
When <math>\chi^2</math> have reached an equilibrium the configuration is saved and can be analysed.



Revision as of 18:55, 19 February 2007

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

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

The algorithm for RMC can be written:

  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 Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle g_o^C(r)} for this old configuration.
  3. Transform to the total structure factor:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_o^2 (Q)-1=\frac{4\pi\rho}{Q}\int\limits_{0}^{\infty} r(g_o^C(r)-1)\sin(Qr)\, dr}

where Q is the momentum transfer Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \rho} and the number density.

  1. Calculate the difference between the measured structure factor Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle S^E(Q)} and the one calculated from the configuration Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_o^C(Q)} :

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \chi_o^2=\sum_i(S_o^C(Q_i)-S^E(Q_i))^2/\sigma(Q_i)^2} this sum is taken over all experimental points Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \sigma} is the experimental error.

  1. Select and move one atom at random and calculate the new distribution function, structure factor and:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \chi_n^2=\sum_i(S_n^C(Q_i)-S^E(Q_i))^2/\sigma(Q_i)^2}

  1. If Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \chi_n^2<\chi_o^2} accept the move and let the new configuration become the old. If Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \chi_n^2>\chi_o^2} then the move is accepted with probability Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \exp(-(\chi_n^2-\chi_0^2)/2)} otherwiase rejected.
  2. repeat from step 5.

When Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \chi^2} have reached an equilibrium the configuration is saved and can be analysed.


References

  1. R.L.McGreevy and L. Pusztai, "Reverse Monte Carlo Simulation: A New Technique for the Determination of Disordered Structures", Molecular Simulation, 1 pp. 359-367 (1988)