Sören Peters

Sören Peters, M.Sc.

Pockelsstraße 3

38106 Braunschweig

Telephone: 531/391-94522

Research project:

Suresoft: Sustainable Research Software Development and Deployment

Research software is of fundamental importance for many disciplines to achieve scientific progress. The software is commonly developed by scientists, with a short-term perspective to gain specific results. In most cases, it ends up with instabilities as typically scientists are self-taught developers. As a result, the widespread and long-term usage is inhibited and consequently, the scientific research quality and progress pace are hindered. In the worst case, research results can no longer be reproduced.

SURESOFT project aims to establish a common usable methodology and infrastructure based on the concepts of continuous integration. Continuous integration is the enabler for improving the quality of research software, easing software delivery and ensuring long-term sustainability and availability.

One of the Use Cases is the research code VirtualFluids developed at the Institute for Computational Modeling in Civil Engineering (iRMB). The code is a Computational Fluid Dynamics (CFD) solver based on the Lattice Boltzmann Method (LBM) for turbulent, thermal, multiphase and multicomponent flow problems as well as for multi-field problems such as Fluid-Structure-interaction. For efficient simulations VirtualFluids is using High Performance Computing based on CPU based architectures as well as GPGPU based systems.

The development of this software has been continuously driven forward by a large number of scientists since 1998. However, quality assurance has been neglected until today. One of the major challenges is to prove the algorithmic correctness of the flow solver as well as the physical validity and numerical consistency and accuracy need to be assured. In order to ensure sustainable availability, the system of continuous integration is to be linked with concepts of virtualization. A big challenge in the context of VirtualFluids is to guarantee the runtime performance and the dependency on the underlying hardware.