A
C++ implementation of the Reverse Monte Carlo algorithm for Small Angle
Neutron scattering data
|
This is a
C++ implementation of the Reverse Monte Carlo algorithm
for deriving structures of disordered materials from Small Angle Neutron
Scattering (SANS) data, which can be aided by coordination constraints.
What is the difference between RMC and RMCSANS? |
Ø
Small
angle neutron scattering data can give information about the structure of
materials in the size domain nanometre to micrometre. Here composite particles
(replacing whole groups of atoms) are the particles in our simulation box.
Ø
Normal
RMC simulation
models atomic structures based on mainly neutron and/or X-ray diffraction data,
and the simulation box contains atoms.
This seems to be only a question of particle size, but due to the contribution of the inner structure of the composite particle to the scattering the theory and so forth the calculation a bit different, so it is important to choose the simulation method appropriately.
What is RMCSANS good for? |
If you
have small angle neutron scattering data, and you are interested in their
structure, then you can build 3-D structural models with RMCSANS hopefully in
good agreement with the experimental data. To learn more about conventional
RMC, visit the References
page of the RMC website.
See the
flowchart of the RMCSANS programme and some results here.
History of RMCSANS++ |
The idea
of RMCSANS came from Robert McGreevy in 2007.
The
RMCSANS code is based on RMC_multi++, and was written
in C++ by Orsolya
Gereben in 2007
with the help of László Pusztai
(Research Institute for Solid State Physics and
Optics of the Hungarian Academy of Sciences, Budapest)
with the financial support of the
ISIS.
The
initial results of RMCSANS were presented at the RMC-4 conference in 2009.
If you use
RMCSANS++, please cite:
O Gereben, L Pusztai and R L McGreevy: RMCSANSmodelling the inter-particle term of
small angle scattering data via the reverse Monte Carlo method
J. Phys.: Condens. Matter 22 (2010) 404216
How to use RMCSANS++ |
A short manual is describing the functionalities and usage of the RMCSANS programme, certain amount of knowledge using RMC++ is expected. Consult the RMC++ website and the manual if necessary.
Visualization
with AtomEye3.1 |
If Atomeye option is selected, then RMCSANS can produce AtomEye format configurations files (see the manual about the details), and the configurations can be visualized by Atomeye3.1 during or after the simulation. AtomEye is originally written by J. Li and modified to create AtomEye3 by S. Futoshi, and it is an atomistic configuration viewer with lots of capabilities. As this software can only handle atoms, it had to be modified to display our composite particles with custom size, to be able to display sequences of configurations, waiting for a new configuration, while it is available, and several other modifications. The modifications were made by Orsolya Gereben in 2007, and the new version is called AtomEye3.1. This is still a separate program, only working under Linux. You can see some images produced by AtomEye for systems used to test RMCSANS on the AtomEye page of the website, and download AtomEye3.1.
Download RMCSANS++ |
The source and the executables of
RMCSANS tested for Windows and Linux operating systems are available under the
GNU Public License. You are free to download, use and modify the programme
The code was tested on computers using
WINDOWS and LINUX operation system. There is a slight difference in the code as
some necessary commands were not the part of the standard C++, so the platform
has to be chosen by a compilation option switch. There are other option
switches in the alter.h file, choosing or not
choosing them before compilation regulates some of the functionality the
executable will poses. Compiling for multi-threaded execution
also regulated only by compiler option. See the details of the available
options in the RMCSANS
manual.
There will be a package for both of
the supported platforms, the content of which will only differ in that the
WINDOWS packages will contain the POSIX interface files. There will be two
executables in each package one compiled for consecutive, the other for
multi-threaded execution, both in normal simulation mode with all the other
available compiler options
switched off the WINDOWS package on a 32-bit, but
the LINUX package on a 64-bit
processor.
Although the code was not changed, the manual was somewhat amended and a new test example was included in 12.03.2023, this is version 1.0n.
Windows package |
Download the latest (11.03.2023) RMCSANS Windows package version 1.0n
LINUX package |
Download the latest (11.03.2023) RMCSANS Linux package version 1.0n
Page created by Orsolya Gereben
Last modified 11/03/2023 by Orsolya
Gereben