Implementing lattice-switch Monte Carlo in DL-MONTE to unlock efficient free energy calculations


Key Personnel

PI/Co-I: Graeme Ackland (PI) Nigel Wilding, John Purton, David Quigley

Technical: Kevin Stratford, Tom Underwood

Relevant documents

eCSE Technical Report: Implementing lattice-switch Monte Carlo in DL-MONTE to unlock efficient free energy calculations

Project summary

The Monte Carlo technique - so called in a nod to the Monte Carlo Casino in Monaco - makes use of chance or probability to investigate the properties of many important materials: metals, minerals, and compounds both fluid and solid. The chance is introduced by selecting random rearrangements of the atoms or molecules and then computing how likely such a rearrangement might be in a real system. As there is significant freedom in how to choose the random rearrangement, a number of different Monte Carlo techniques exist.

The aim of this project was to implement a relatively recently developed technique known as "lattice-switch" Monte Carlo in the DL-MONTE package.

This work brought together workers at the universities of Bath, Edinburgh, and Warwick with the developers of DL-MONTE package at Daresbury Laboratory.

Achievement of objectives

The main objective of the work was to provide an implementation of the lattice-switch method in the DL-MONTE package. This implementation is now available to users. A toolkit in the python scripting language has also been developed to help users control common workflows associated with DL-MONTE calucaltions. Standard documentation and training materials have been developed which are available to users.

Summary of the Software

The DL-MONTE package is available from the CCPFORGE [3] repository as both a latest release version via tar file (for anonymous download), and as current development version via the git repository for registered users. The releases include the DL-MONTE Fortran source, documentation and the python toolkit.

Either is suitable for users to install on ARCHER in the standard Intel or GNU programming (compiler) environments.

A set of python scripts has been developed which can manipulate DL-MONTE input and output, provide analysis of DL-MONTE results (including "histogram reweighting"), and control DL-MONTE execution. This toolkit provides the basis for complex workflows involving free energy calculations.

Details of lattice switch method for free energy computations are included in the DL-MONTE user manual. Documentation for the python scripting toolkit is based on tutorial introductions in the form of jupyter (formerly ipython) notebooks, and standard documentation in the source code.

[1] A.D. Bruce, N.B. Wilding, and G.J. Ackland, Phys. Rev. Lett. 79, 3002 (1997); A.D. Bruce, A.N. Jackson, G.J. Ackland and N.B. Wilding, Phys. Rev. E 61, 906 (2000).
[2] A.M Ferrenberg and R.H. Swendsen, Phys. Rev. Lett. 23, 2635 (1988).

Scientific Benefits

Free energy differences are fundamental quantities which underpin condensed matter physics, chemistry and materials science. For example, the free energy difference between two phases determines which of those phases is more stable at thermodynamic equilibrium; drawing a phase diagram for a given substance effectively requires the free energy difference at each temperature and pressure. The work carried out to add lattice switch Monte Carlo to DL-MONTE opens the way to more accurate, and quicker, free energy calculations for a wider range of systems than is available to other lattice switch codes. New types of system which are not accessible include binary and multicomponent phases, as well as "open" systems such as nanoparticles and surfaces. These types of materials are increasingly important in areas such as technology, energy-efficient materials, and medicine.