[P10, Schöberl] focuses on automated code generation for multiphysics problems. Multiphysics systems typically lead to coupled systems of partial differential equations. Traditionally we think of magneto-mechanical and fluid-structure interaction, but in the long term we consider also the coupling with kinetic equations. The numerical discretization requires the correct finite element spaces for the individual fields (satisfying discrete de Rham sequences, if necessary), and consistent coupling conditions. Time dependent problems are solved by splitting methods, where robust solvers for the individual components are required.
The focus of this Project Part is the development of a problem specific language to model such systems and describe the numerical solution algorithm on a high level. The language is inspired by the pioneering concept of the FEniCS, which is a successful Python extension library allowing natural formulation of variational problems.
The key for large scale simulation is the availability of fast, robust and scalable solvers for the linear sub-problems of a non-linear solver within the time-discretization. We focus on low-order/high-order domain decomposition methods, where local problems on individual processors are solved by direct methods, similar to the powerful BDDC-preconditioning Deluxe.
The backbone is the open-source Netgen/NGSolve hp-finite element library with its Python version NGS-Py developed around J. Schöberl, which supports advanced vectorial elements such as Nedelec elements, and hybrid Discontinuous Galerkin methods on complex geometries.