Skip to content

CPL Library

Ed Smith edited this page Jun 14, 2022 · 3 revisions

CPL library overview

Below is a very brief overview of CPL library, please see the official website for documentation, tutorial and further information.

The CPL library software is the result of years of research into coupled simulation of fluids. The software aims to remove the barrier to entry for new researchers in coupled simulation by providing a minimal set of functions which setup and exchange data between two codes. The software is open-source and compiled as a shared library (unix based systems only at the moment). This can then be linked to any code (open or closed source) by writing custom sockets to package and utilise the exchanged data. In the future, CPL library will be provided with a number of pre-packaged computational fluid dynamics (CFD) and molecular dynamics (MD) codes.

The core code of CPL library is complete and available to download. This is written in Fortran with a C/C++ wrapper and is not expected to change much from its current form. The CFD and MD code are assumed to be massively parallel, running on a number of processors communicating through the message passing interface (MPI). The supported setup is a domain decomposition, with MD near the wall and CFD further away.

Currently this is the only case which is officially supported. In addition, the topological mapping assumes there is always at least one CFD processor to each MD and that processor boundaries align between the two codes (i.e. 2 CFD and 3 MD would not be supported). This setup is general enough to support, as a special case, complete overlap between the two codes.

Despite this limitation, the design of the coupling software means that more complex cases, (e.g. non-uniform grids, multiple MD or CFD domains) can be accommodated by simply changing the mapping module of the coupler.

The project is currently under active development as part of an eCSE project led by (Gavin Pringle). The current project plan is as follows:

  • Deploy CPL library on ARCHER2 and check scaling
  • Couple the latest stable LAMMPS and an up to date OpenFOAM version on ARCHER
  • Develop the mapping to allow multipe MD domains per CFD
  • Allow adaptive grid CFD to be linked to the MD code
  • Run a multi-phase case to explore bubble nucleation

If you would like to discuss development of coupled simulation for a particular code or application, please get in touch.

Clone this wiki locally