A flexible framework for multi physics and multi domain PDE simulations
Steffen Müthing · OPUS Publication Server of the University of Stuttgart (University of Stuttgart) · 2015
Many important problems in physics and engineering like fluid dynamics and continuum mechanics are modeled using partial differential equations. These problems can typically not be solved directly, but have to be approximated numerically, a challenging process at both the mathematical and the computer science level. In this work, we present a novel set of software components that facilitate the creation of simulation programs for multi domain partial differential equation problems. We identify the implementation challenges related to the coupling of multiple spatial domains and their attached physical problems and develop a mathematical framework of clearly defined building blocks that can be used to compose a multi domain problem by combining single physics building blocks (which are typically already well understood by application scientists) with additional components that describe the interactions between those subproblems. We introduce an open source software implementation of these mathematical concepts on top of the well-established DUNE numerics framework. This implementation consists of two major parts: a mechanism to subdivide any existing DUNE mesh into multiple subdomains, and a set of extensions to the high-level partial differential equation toolbox solver PDELab, which make the components of our mathematical framework available within its solvers. Our overall design enables application-level scientists to reuse existing code blocks from single-physics simulations and combine them to solve new multi domain problems. This new functionality is heavily based on PDELab’s recursive tree representation of product function spaces; we replace the internal ad-hoc implementation of these trees with a new C++ library for statically defined, template-based trees of objects. As multi domain problems typically require structured linear algebra solvers that exploit domain decomposition approaches, we develop a mathematical framework for describing the structure of the vectors and matrices generated during the assembly of a partial differential equation problem based on the structure of the underlying function spaces. This framework is implemented in PDELab; it is based on a tree transformation mechanism provided by our tree library. We demonstrate the versatility of our multi domain simulation components and their impact on developer productivity by means of two model examples; our ultimate goal of simplifying the development of real-world applications is shown by a description of the impact of our software on several external research projects. Finally, we measure the performance impact of our extensions on the existing DUNE framework and discuss the mitigation measures we implemented to reduce any existing performance penalties.