RMC++ in short
The spatial distribution of atoms and molecules in a disordered material is described by the so-called partial pair correlation functions ( Fig. 1 ).
The structure can be probed by the diffraction (elastic scattering) of waves (neutrons or X-ray) of adequate wavelength . The structure factors are obtained by sine-Fourier transform from the partial pair correlation functions:
and the diffracted intensity is a linear combination of the structure factors, weighted by the concentrations c and scattering lengths b:
Direct inversion of this inverse problem needs several measurements with isotopic substitution to disentangle the different partials. Furthermore, it is plagued with the usual problems of instability, over- and under-determination, and the Fourier ripples due to truncated Q-range (Fig 2).
One alternative solution to direct inversion, is to explore the parameter space and solve the direct problem as often as required (Fig.3 ).
In MCGR [Monte Carlomodelling
of G(r)], the parameter space consists in the discretised pair correlation
functions. This technique allows to model partials while avoiding some of the
usual pitfalls of direct inversion (still, it does not guarantee that the
partials are physically sound).
Reverse Monte Carlo (RMC) goes one step further and considers the positions of a set of N atoms (the configuration) as the parameter space, i.e. it will derive a set of coordinates of the N atoms of the configuration that is in agreement with the data ( Fig 4).
Systematic or exhaustive exploration of the
parameter space is ruled out by its mere dimension, and therefore a more
efficient way of sampling is needed in order to converge towards one
Both MCGR and RMC are based on the Metropolis algorithm , i.e. the parameter space is explored by a `guided' random-walk. In short, the acceptance of generated random moves in the parameter space is defined by the agreement of the corresponding calculated data with the experimental data ( Fig 5).
In `standard' RMC++ (as in the existing
RMCA) the random move in the parameter space consists in the displacement of one
atom of the configuration. The atom moved, as well as the amplitude and the
direction of the move are defined randomly (within some predefined range).
One essential additional component in RMC is the introduction of constraints. The Metropolis algorithm indeed produces solutions with the largest amount of disorder, for a given set of constraints (including the Chi Squared). Constraints can be introduced at 2 stages in the algorithm:
Individual molecules can
also be mimicked by imposing a distance range between defined atoms in the
configuration (the so-called fixed neighbour constraints - FNC -).
The flowchart of the `standard' RMC algorithm appears in Fig 6.
For more details, look at the references.
RMC++ should look very familiar to RMCA users, since it uses the same input and similar output format.
Last modified 21/06/2010) by Orsolya Gereben