  High-performance computing platforms are becoming more and more
heterogeneous, which makes it very difficult for researchers and scientific
software developers to keep up with the rapid changes on the hardware market.
In this paper, the open-source project FDBB (Fluid Dynamics Building Blocks) is
presented, which eases the development of fluid dynamics applications for
heterogeneous systems. It consists of a low-level API that provides a unified
interface to many different linear algebra back-ends and a lightweight and
extendible high-level expression template library, which provides largely
customizable fluid dynamics building blocks, like transformations between
primary and secondary variables as well as expressions for Riemann invariants,
equations of state, inviscid fluxes and their flux-Jacobians. The performance
of the developed approach is assessed both for synthetic micro-benchmarks and
within mini-applications.
