Automated high-performance CFD and multi-physics simulations with Unicorn/FEniCS
ABSTRACT. We present recent results in both development and CFD applications of our high-performance simulation software based on FEniCS. Our computational model is based on the incompressible Navier-Stokes equations, with the option of a cheap wall model for high Reynolds number, which we solve numerically with a Galerkin least-squares stabilized finite elements method. Automation plays a fundamental role as the whole formulation is implemented in UFL, yielding more concise, more readable and less error-prone code thanks to automatic source-to-source compilation provided by FFC. Building up on automation we can foresee the development of a standard HPC flow solver where a simulation can be specified entirely through a configuration file that is input to a general binary. This design, made possible by FEniCS’ high-level API, can be very appealing to scientists of other fields that are interested in exploiting the capabilities of modern HPC resources without having to deal with too much computer science in the process. Again to make our software more easily accessible, we recently simplified deployment by providing a self-contained environment in the form of a Singularity image. This container technology is available on a range of architectures, from personal computers to HPC clusters, and makes deployment and installation a matter of a one-line command. An interesting possibility is then to offer simulations as a service: this is being realized in the H2020 project MSO4SC where we contribute to the realization of a platform allowing users to shop simulation cases that use our software as a black box running on potentially a variety of different clusters. In such an agile development environment, applications can flourish. As far as applications are concerned, we will present results in two directions. On the one hand, we will discuss our recent contributions to two high-profile benchmark workshops — NASA’s HiLiftPW-3 and HiOCFD5 — where we show that our methodology not only keeps up with, but even surpasses our main competitors in the field, especially after recent development yielded a 100 times speedup compared to our previous version. On the other hand, we will show an implementation of a multi-physics solver, built on top of Unicorn/FEniCS, that simulates a cardiac surgery procedure and shows how complex solvers can be easily built thanks to software automation and simple design techniques. All the software and the projects that we develop are based on open source software.