Steffen Müthing (Universität Stuttgart): A flexible software framework for
Thursday, 27.10.2011 14:15
Many problems in the focus of current research involve the simultaneous simulation of multiple physical models that interact by means of a set of coupling conditions. There is a large number of projects working on the simplification of such PDE simulations by providing feature-rich integrated software frameworks, like deal.II, FEniCS or DUNE. While most of these efforts support multi-field scenarios on a common spatial domain, multi-domain simulations pose their own unique set of implementation challenges, like subdomain tracking, DOF management, interface matching / extraction and communication of subproblem solutions to facilitate coupling between the individual problems. Existing approaches to these problems mostly center around the idea of combining existing single-physics implementations into a unified multi-physics simulation by providing a common integration layer that handles tasks like load balancing, geometry matching and inter-problem communication. Examples of this approach include MpCCI and SIERRA.
I will present a novel approach to the design of a multi-domain multi-physics framework based on the DUNE discretization toolkit PDELAB. PDELAB can be used to implement a broad range of numerical PDE solution schemes; in order to achieve this generality, it provides precise mathematical definitions of all objects involved in the construction of such a scheme, along with corresponding programming interfaces. I will show how this framework can easily be extended to add support for several multi-domain settings, allowing for large numbers of arbitrarily shaped and possibly overlapping subdomains, variables which are only defined on subsets of the spatial domain, mortar spaces on subdomain interfaces and multiple equations which may also be defined on possibly overlapping subdomains. Due to the clear separation of concerns in the framework, it is possible to reuse many parts of the single-domain framework unchanged in a highly efficient fashion, e.g. time integrators (including multi-step methods) and I/O facilities.
The heavily templated C++ - programming style of PDELAB tends to require a substantial learning effort, and while PDELAB automates a great number of tasks, writing the program-specific program parts still requires a lot of boiler-plate code, a task which tends to be tedious and error-prone. In the second part of this talk, I will shortly introduce an ongoing effort to extend the domain specific language UFL from the FEniCS project with a compiler backend that generates PDELAB code, which allows for the specification of the mathematical problem in a very conscise and natural fashion. A second advantage of this approach is the ability to automatically manipulate the UFL expression, e.g. to automatically derive and implement the Jacobian of a given residual.