Ludwig on ARCHER2: task-based execution



Experimental image and Ludwig simulation snapshots of colloidal particles in a cholesteric liquid crystal

Computer simulations of fluids - which encompasses both gases and liquids - is important in many contexts. Such computations are the basis of weather and climate forecasts, and many engineering applications such as aerodynamics. At smaller scales, the same ideas can be used to study e.g., blood flow in the body, or to model the behaviour of bacteria and viruses in fluid surroundings. In some of the more complex situations (e.g., for viruses) other factors such as electric charge can become important.

Representing all the relevant factors in a computer simulation can then be time consuming, and require that large amounts of information must be stored and/or read from storage on disk. To make large problems tractable in reasonable time, one usually resorts to the divide-and-conquer strategy of parallel computing, where different parts of the problem are worked on separately, and the full picture is collected together as and when required.

This work involves a computer simulation code which is able to represent a significant range of complexity including solid-fluid interactions, different fluid compositions, and any electric charge carried by the fluid. It can also represent active objects such as simple bacteria. On large modern machines, a range of divide-and-conquer techniques may be required to provide the best performance. The work investigated different combinations of these parallel techniques and identified which ones were most effective. This will help to promote efficient computation in complex fluid systems in the future.

Information about the code

The code is freely available at

New/updated tutorial guides are available at

Technical Report

Download as PDF