rsmith
A Reverse Monte Carlo (RMC) structure refinement tool written in Rust. Refines atomic structures against experimental X-ray and neutron scattering data while enforcing physical constraints and pair potentials.
Features
- S(Q) and g(r) fitting -- simultaneous refinement against structure factor and pair distribution function
- Hybrid RMC -- pair potentials (Buckingham, Pedone, Coulomb DSF, tabulated) bias refinement toward energetically favorable configurations
- Hard constraints -- minimum interatomic distances and coordination number bounds
- Simulated annealing -- exponential cooling schedule with adaptive step size
- Structural analysis -- coordination numbers and bond angle distributions for validation
- Incremental updates -- O(N_neighbors) per move via cell lists and precomputed lookup tables
Quick Start
Minimal config.toml:
[]
= "glass.data"
= "lammps"
[]
= "Ca"
= "Si"
= "O"
[]
= "experimental.sq"
= 0.02
[]
= 500_000
[]
= 11.0
[]
= 1.2
= 2.0
= 1.8
Modes
Documentation
Full documentation is available at rsmith book or build locally:
&&
References
- McGreevy, R.L. & Pusztai, L. (1988). Reverse Monte Carlo Simulation. Mol. Simul., 1, 359-367.
- Pedone, A. et al. (2006). A New Self-Consistent Empirical Interatomic Potential Model for Oxides. J. Phys. Chem. B, 110, 11780-11795.