monteswitch: A package for evaluating solid-solid free energy differences via lattice-switch Monte Carlo

T. L. Underwood, G. J. Ackland

Research output: Contribution to journalArticlepeer-review


Lattice-switch Monte Carlo (LSMC) is a method for evaluating the free energy between two given solid phases. LSMC is a general method, being applicable to a wide range of problems and interatomic potentials. Furthermore it is extremely efficient, ostensibly more efficient than other existing general methods. Here we introduce a package, monteswitch, which can be used to perform LSMC simulations. The package can be used to evaluate the free energy differences between pairs of solid phases, including multicomponent phases, via LSMC for atomic (i.e., non-molecular) systems in the NVT and NPT ensembles. It could also be used to evaluate the free energy cost associated with interfaces and defects. Regarding interatomic potentials, monteswitch currently supports various commonly-used pair potentials, including the hard-sphere, Lennard-Jones, and Morse potentials, as well as the embedded atom model. However the main strength of the package is its versatility: it is designed so that users can easily implement their own potentials.

Program summary

Program Title: monteswitch

Program Files doi:

Licensing provisions: MIT

Programming language: Fortran 95, MPI

Nature of problem: Calculating the free energy difference between two solid systems.

Solution method: Lattice-switch Monte Carlo (LSMC) [11 is a versatile and efficient method for evaluating the free energy difference between two solid phases. The package presented here allows LSMC simulations to be performed for a variety of interatomic potentials, including commonly-used pair potentials and the embedded atom model. Furthermore the package is designed so that users can easily implement their own potentials. The package supports LSMC simulations in the NVT and NPT ensembles, and can treat multicomponent systems. A version of the main program is included which is parallelised using MPI. This program parallelises the LSMC calculation by simulating multiple replicas of the system in parallel.

External routines/libraries: To perform parallel simulations MPI is required (but MPI is not required to perform serial simulations).

Restrictions: monteswitch cannot treat molecular systems, i.e., systems in which the particles exhibit rotational degrees of freedom, and is restricted to systems which can be represented within an orthorhombic supercell. Furthermore, the interatomic potential is 'hard-coded' in the sense that implementing a different potential requires that the package be recompiled.

Additional comments: monteswitch includes programs to assist with the creation of input files and the post-processing of output files created by the main Monte Carlo programs. A user manual, a suite of test cases, a worked example, and a collection of plug-ins to implement various commonly-used interatomic potentials are also included with the package. [1] A.D. Bruce, N.B. Wilding & G.J. Ackland, Phys. Rev. Lett. 79 3002 (1997) (C) 2017 Elsevier B.V. All rights reserved.

Original languageEnglish
Pages (from-to)204-222
Number of pages19
JournalComputer Physics Communications
Early online date23 Feb 2017
Publication statusPublished - 1 Jun 2017


  • Free energy
  • Phase transition
  • MPI
  • Embedded atom model

Cite this