Nature of project: software, theory
Available to students on full-time physics degree schemes or joint students.
The Metropolis Monte Carlo algorithm is a well-established computational method for studying atomistic, molecular and coarse-grained models in physics and chemistry. It is based on a sampling process that is in accordance with the Boltzmann distribution. The most important thermodynamic parameter in a Metropolis Monte Carlo (MMC) algorithm is the temperature. Usually simulations are performed at a range of values for the temperature, in order to study temperature-dependent phenomena such as phase transitions. For many physical systems the standard MMC algorithm becomes less efficient at low temperatures, because of the risk of remaining stuck in valleys in the energy landscape surrounded by high barriers. The Parallel Tempering (PT)  algorithm has been proposed to remedy this problem. In a Parallel Tempering simulation, a set of MMC processes run in parallel, each at a different value for the temperature. Occasionally, these processes communicate by attempting to swap their current configuration (i.e. the coordinates of the particles in the system). This coupling of simulations at different temperatures improves the sampling, especially at low temperatures. It is the aim of this project to implement the Parallel Tempering method in Fortran or C/C++ in combination with the Message Passing Interface (MPI). MPI [2,3] is a library of routines that allow communication between processes that are running in parallel. The resulting simulation code can then be applied to various systems. A basic project would be to apply Parallel Tempering to fluids of particles interacting via the Lennard-Jones potential.
A successful project will develop beyond the above in one/some of the following directions:
To develop this project further, the Ferrenberg-Swendsen method  could be implemented to interpolate the results to temperatures in between the temperatures that were simulated. A detailed comparison of the performance of Parallel Tempering compared to ordinary MMC in some case studies would also be useful.
When considering where to take your project, please bear in mind the time available. It is preferable to do fewer things well than to try many and not get conclusive results on any of them. However, sometimes it is useful to have a couple of strands of investigation in parallel to work on in case delays occur.
Additional scope or challenge if taken as a Year-4 project: For a Y4 project, the student can apply the parallel tempering methodology to a more challenging system: polymers on a lattice. Here the collapse transition (at low temperatures) can be studied.
Please speak to Edwin Flikkema if you consider doing this project.
Initial literature for students:
The Parallel Tempering algorithm has been around for about two decades. It has been applied to a wide range of physical and chemical systems. This project is mainly an exercise in using the MPI library. This will be a learning-curve for both the student(s) and the supervisor. If the PT algorithm is implemented in a sufficiently generic way, it can be easily adapted to study different systems. The project will involve a major amount of coding and will be fairly challenging. A substantial amount of assistance by the supervisor will probably be needed.
|milestone||to be completed by|
|Familiarisation with Message Passing Interface||Christmas|
|Simple Metropolis Monte Carlo algorithm coded||Christmas|
|Parallel Tempering algorithm coded||mid-March|
|Production runs finished and data analysed||Easter|