Couple scientific simulation codes with preCICE A journey towards sustainable research software
Channel: FOSDEM
Date: 09/02/2019

by Gerasimos Chourdakis

At: FOSDEM 2019
https://video.fosdem.org/2019/UA2.118/precice.webm


Have you ever observed how birds fly? By moving their wings, they cause an air flow. This air flow then deforms their wings back. By simulating this complex, multi-physics phenomenon, we could design better flexible wings. However, we don’t need complex software to simulate such complex phenomena. 

"Make each program do one thing well" is part of the UNIX Philosophy, but it can also apply to scientific software. We should aim to simulate multi-physics phenomena with a combination of simpler software: one "expert" for each domain (for example, flows and structures). There are so many "expert programs" in the free/open-source software community; what if we could enable them to collaborate? The preCICE coupling library* can couple different simulations in an easy, plug-and-play way, while it is also designed for the Exascale HPC era, offering peer-to-peer communication over TCP/IP or MPI. Not only is it easy to use it in your own code, but it also comes with ready-to-use "adapters" for OpenFOAM, SU2, CalculiX, Code_Aster, FEniCS and other software. For example, one can set up a flow simulation in OpenFOAM, set up a structure simulation in CalculiX, start the two simulations normally, and get a coupled Fluid-Structure Interaction simulation. But FSI is only one of the possible applications. 

Being developed in the academia, but with the goal to stay and help users all over the world, even when its main contributors change, our project is an actively evolving example of (wanting to be) sustainable research software. Over the past year, we had to answer many questions on building, packaging, dependency management, usability, and other topics, questions which previous FOSDEM talks helped us to answer. For example, over the past year we changed from SCons to CMake to provide closer to the expected behavior, added support for Spack to bring preCICE into supercomputers near you, we experimented with other package managers, and we rethought our workflows to encourage community contributions. 

This talk will present the possibilities that preCICE opens to the free/open-source scientific software community and discuss our efforts to improve the project’s sustainability. 


Website: precice.org. Code available on github.com/precice under LGPL3.



Room: UA2.118 (Henriot)
Scheduled start: 2019-02-03 10:45:00+01