Welcome to the CPL library wiki. This contains documentation, discussion and accounts of setting up coupled cases.


CPL library

- Input COUPLER.in file and supported commands

- An example of a minimal MOCK CPL script to be used for coupled development

- Running Docker containers, see CPL library in Docker, using CPL library to run a case between Two Separate Docker Containers and using the Docker images with Singularity to run Singularity on HPC.

- Some notes on MPMD and MPI_port system used in CPL library in the section on how best to run CPL library.

- A discussion of the coupler philosophy and minimal setup for a coupled case.

- An overview of ndArray, CPL force and CPL field helper classes which are used to apply constraints on particle codes in coupled simulation.

- How to setup a custom install of mpi4py on a supercomputer for use with the python wrapper of CPL library.


- A guide outlining the setup of OpenFOAM for use in coupled simulation.

- An overview of the various top level OpenFOAM solvers.

- An example of using pytest to test coupled OpenFOAM through a script to validate Couette flow at every time.


- An overview of deployment of LAMMPS with coupling.

- A discussion of the LAMMPS CPL interface, the available LAMMPS input syntax to use fix_cpl_init and the LAMMPS CPL APP fix_cpl_force.

- A Minimal tutorial on creating new Drag Forces

- An Extended Tutorial on creating new Drag Forces

Coupled OpenFOAM and LAMMPS

- Once you've tested both OpenFOAM and LAMMPS individually, they can be coupled by looking at a quickstart guide to running LAMMPS and OpenFOAM using singularity.

- A coupled version of OpenFOAM and LAMMPS is available in the modules on ARCHER2, please see the here for full details.

- Also, the guide for Docker using OpenFOAM and LAMMPS with Two Separate Docker Containers