This page shows some examples of RMC++ studies.
These simulations were made by the original RMC++ code, but the conclusions are valid for the later versions as well.
Liquid CCl4 provides a nice example of the use of RMC++:
The data used were obtained by neutron diffraction at the Budapest PSD neutron diffractometer.
The data Q-range is 0.55 to 9.15 Å¯¹, in 100 points (irregularly sampled).
The density of our sample is 0.0319 atoms per cubic Å. A configuration with 1000 atoms (200 molecules) would fit in a cubic box of dimension 31.53 Å (which is adequate if there is no long range order beyond 31.53 / 2=15.76 Å).
However, for the sake of statistical accuracy, a greater number of molecules is necessary, and we choose to build a configuration with 2048 molecules, i.e. 10240 atoms.
This yields a cubic box of size 68.4704 Å, i.e. a histogram range of 34.23522 Å (in the standard version, i.e. without the RMC++ extension).
This size complies with the requirement imposed by the Q-range of the data: the greatest distance binned in the histograms must be at least 2 π / 0.55= 11.4 Å (one full r-period for the lowest Q value).
(n.b. the reason for using 4 or 5 decimals accuracy does obviously not derive from physics, but from numerical requirements)
Histograms bin width
The highest Q value imposes that the bin width dr is at most 2 π / (5 x 9.15)= 0.137 Å.
With a configuration of 2048 molecules, one can attempt a bin width of 0.1 Å. The validity of this choice can be checked a posteriori by looking at the histograms.
If there are not enough distances to secure the information on wants to derive from the run, then the size of the configuration or the size of the histogram bins can be increased.
Distances of closest approach (cutoffs)
The distances of closest approach between atoms are defined from external a priori information: previous runs, other experiments, known structure, guesses... In the worst case it can be imposed by the density. But in practice, they have to be adjusted due to the necessity to allow individual atoms to move.
(n.b.: if the cutoffs have to be made smaller than a value known to be true in order to allow the configuration to evolve, then the resulting configuration is not realistic)
In the CCl4 case, we chose the cutoffs as follows:
partly imposed by the molecular geometry, although with RMC++, individual
molecules are defined by the fixed neighbours constraints (FNC), which
overrides the cutoffs (i.e. within one molecule, the cutoffs can be not
satisfied if this is imposed by the FNC).
Fixed neighbours constraints
We take advantage of the FNC to mimic the individual CCl4 molecules, i.e. we define links and allowed distance ranges between given atoms so that the geometry of the CCl4 molecules is reproduced.
The FNC's are defined by the molecule geometry. For CCl4 there are just two constraints:
these distances, it is important to keep in mind that the configuration evolves
by moving atoms individually. Therefore, the constraints must leave a
certain freedom of movement to the atoms, in order to allow the configuration
to evolve. If the geometry of the molecule imposes very strict FNC's (e.g.
flat or rigid molecules) then the individual moves of atoms is ruled out if one
wants to obtain a realistic configuration. In this case, the molecules have to
be moved as a whole, this is possible with RMCmol (under
The amplitude of the individual atomic moves is defined in the .dat file of run parameters. It has to be adjusted to allow the configuration to evolve. Small moves will be more likely to be accepted, but with a small effect, yielding a slow evolution. On the contrary, large moves will make big steps, but with a larger probability of being rejected (see the discussion in the RMCA manual).
Therefore, in practice, these amplitudes are often adjusted after a few test runs.
Note that the move amplitudes are defined by the maximum range in each direction (and therefore the effective range is greater by a factor 1.732).
For CCl4, we used maximum moves of 0.1 Å.
Making the starting configuration
There are programmes to create starting configurations (see the download page).
If there is enough space for molecules to move, a simple recipe is to
stage, one should have a `good starting configuration'.
The RMC run
From a `good starting configuration', the run parameters can be fine-tuned. Experience shows that the RMC result does not depend on the starting configuration.
The duration of the run is very variable, depending on the problem.
For CCl4, starting from a good configuration, we made a 20 hours run (on a 2 Pentium III processor 500 Mhz PC).
The convergence of the algorithm is shown below, for the three different codes: RMCA (fortran) and RMC++ (2 different compilers).
evolution of the χ² is typical of a RMC run.
Incidentally, the figure above shows that RMC++ is 2~3 times as fast as RMCA.
The run results consist in the configuration, and the partials in the .out file, which allow direct visualisation of the fit to the data:
It can be
seen that the starting configuration was rather good, and that the RMC fits are
Individual partial structure factors appear below:
and the partial pair correlation functions are shown below:
The first intramolecular
peaks C-Cl and Cl-Cl dominate the graph.
Long range order appears via the C-C partial (up to 20 Å¯¹), and is due to the arrangement of neighbouring molecules. As required by the calculation of the sine-Fourier transform, the g(r)'s are equal to 0 at the largest calculated distances.
This `local arrangement' gives the intermolecular contribution to the C-Cl and Cl-Cl partials.
A detailed view of the g(r) partials appear below:
Note the statistical oscillations that appear on the detailed level. The significance, or an estimate of the uncertainty about the g(r) values derived from the RMC run can be guessed by looking directly at the histograms. They appear below:
The number of distances grows as r¯². But one is usually interested in the short range deviation from perfect homogeneity, which appears as small peaks, as seen in the detail below.
configuration does much more than just allow to calculate the g(r) partials
without the usual problems of direct sine-Fourier transformation. It is
possible to calculate cosine distributions, etc...
Developing tools for exploiting RMC results actually appears as important as implementing the RMC algorithm itself.
Here are some RMC run reports on a variety of materials (files in pdf format). The simulations were performed by the original RMC++ code by Guillaume Evrard.
The following runs were dedicated to the investigation of the effect of algorithmic constraints rather than the study of the materials themselves.
Last modified 19/09/2012 by