You are the  visitor.

A C++ implementation of the Reverse Monte Carlo algorithm


22.05.2020: NEW VERSION, RMC_POT++ 2020.1 IS AVAILABLE !!!

This is a C++ implementation of the Reverse Monte Carlo algorithm for deriving structures of disordered materials from mainly diffraction data, but additional information as EXAFS data and different constraints can be used as well.

What is RMC good for?

If you have neutron or X-ray diffraction data for disordered materials as liquids, or amorphous solid materials, and you are interested in their structure, then you can build 3-D structural models with RMC in good agreement with the experimental data. To learn more about RMC, visit the References page.

RMC code provided here is not applicable for crystalline materials!

If you have small angle neutron scattering data (SANS), then visit the RMCSANS website.

The code development from 2004 was made by Orsolya Gereben.

The original RMC++ programme has been written by Guillaume Evrard, in 2003 with the help of László Pusztai at the
Research Institute for Solid State Physics and Optics of the Hungarian Academy of Sciences, Budapest
with the support of the FP5 Fifth Research Training and Development Framework Programme of the European Commission.

A new, enhanced version of the code is available, it is called RMC_POT++.

The starting point for RMC_POT was the unification of the latest version of RMC_new and RMC_multi. So there is only one code from now on, and compiler options regulate the building of the code (whether the code is compiled for multi-threaded or consecutive execution, and some additional features). The main new features are:

·        usage of non-bonded and bonded potential

·        local invariance calculation


The detailed description how to use the new code can be found in the RMC_POT user guide.



Announcement: RMC_POT version 1.4 is available on the download page.


Main change to version 1.3.1 is that the possibility of fitting r*[g(r)-1] was included.



Previously, in version 1.2.0

·        the possibility to be used for the simulation of spherical particles without periodic boundary condition was included;

·        the vibrational  motions of the atoms can be accounted for;

·        the quadratic renormalization was upgraded to cubic renormalization of the g(r), neutron and X-ray data sets

were introduced.

The new developments were supported by Professor Valeri Petkov at the Central Michigan University, Mt. Pleasant, MI, USA.

Descriptions of RMC_POT versions can be found here.


All the functionality of RMC_new and RMC_multi is still available in RMC_POT. The same format input files used by RMC_new and RMC_multi can still be used and there can be new parameters in the parameter file to use the new functionalities.

The last version of RMC_new and RMC_multi can be downloaded from here, but it is no longer supported!


If you use RMC++_new or RMC++_multi or RMC_POT please cite:

Gereben, O., Jóvári, P., Temleitner, L., Pusztai, L.: "A new version of the RMC++ Reverse Monte Carlo programme, aimed at investigating the structure of covalent glasses", Journal of Optoelectronics and Advanced Materials, (2007, 10), 9, 3021-3027.

The article is available on the Internet: http://inoe.inoe.ro/joam/index.php?option=magazine&op=view&idu=953&catid=18 .

(If this link does not show the article, then choose Current volume/Volume 9. ISS. 10 on the page displayed and the 8-th article will be the RMC paper.)

If you use RMC_POT++ with local invariance calculation features, please cite:

Gereben O., Pusztai, L.: ”Extension of the invariant environment refinement technique + reverse Monte Carlo method of structural modelling for interpreting experimental structure factors: The cases of amorphous silicon, phosphorus, and liquid argon”; J. Chem. Phys., (2011), 135, 084111.

If you use RMC_POT++ with potential calculation please cite:

Gereben O., Pusztai, L.: RMC_POT, a computer code for Reverse Monte Carlo modeling the structure of disordered systems containing molecules of arbitrary complexity”; J. Comp. Chem. (2012), 33, 2285, DOI: 10.1002/jcc.23058.


How to use RMC_POT++

A new, comprehensive manual describing the functionalities and usage of the RMC_POT programme was written. If you want to use any of the new features, read the manual first.

If you want to use only the functionalities already present in RMC_new and RMC_multi 1.6.1, then see page Quick start.

What's on the RMC++ web site?

At the moment, you will find

Top of page

Page created by Orsolya Gereben

Last modified 16/09/2015