A generic interface for parallel and adaptive scientific computing: Abstraction principles and the Dune-Fem module

Starting from an abstract mathematical notion of discrete function spaces and operators, we derive a general abstraction for a large class of grid-based discretization schemes for stationary and instationary partial differential equations. Special emphasize is put on concepts for local adaptivity and parallelization with load balancing. The concepts are based on a corresponding abstract definition of a parallel and hierarchical adaptive grid given in [P. Bastian et al., Computing 82 (2008), no. 2-3, 103–119]. Unlike previous approaches, where the implementation of numerical schemes is based on particular abstractions for arrays and matrices, we describe an object oriented implementation of our abstraction in the Dune-Fem library [http://dune.mathematik.uni-freiburg.de]. The leading design principle is a one-to-one correspondence between the mathematical objects and C++ interface classes. By using interface classes we manage to separate functionality from data structures. Thus, user implementations become independent of the underlying array or matrix implementations and the reorganization of data due to grid modification can be handled by the Dune-Fem module. Efficiency is obtained by using modern template based generic programming techniques, including static polymorphism, the engine concept, and expression templates. We present numerical results for several benchmark problems and some advanced applications using the library Dune-Fem. The experiments demonstrate both, the efficiency of the implementation and the applicability for a very large class of discretization schemes and applications. AMS Subject Classifications: 65N30, 65Y05, 68U20

[1]  Chi-Wang Shu,et al.  Strong Stability-Preserving High-Order Time Discretization Methods , 2001, SIAM Rev..

[2]  Guido Kanschat,et al.  A locally conservative LDG method for the incompressible Navier-Stokes equations , 2004, Math. Comput..

[3]  D. A. Dunavant High degree efficient symmetrical Gaussian quadrature rules for the triangle , 1985 .

[4]  Timothy A. Davis,et al.  Algorithm 832: UMFPACK V4.3---an unsymmetric-pattern multifrontal method , 2004, TOMS.

[5]  Bernhard Schupp Entwicklung eines effizienten Verfahrens zur Simulation kompressibler Strömungen in 3D auf Parallelrechnern , 1999 .

[6]  H. Rentz-Reichert,et al.  UG – A flexible software toolbox for solving partial differential equations , 1997 .

[7]  Nicolai M. Josuttis The C++ standard library , 1999 .

[8]  George Karypis,et al.  Multilevel k-way Partitioning Scheme for Irregular Graphs , 1998, J. Parallel Distributed Comput..

[9]  B. Rivière,et al.  Superconvergence and H(div) projection for discontinuous Galerkin methods , 2003 .

[10]  Eberhard Bänsch,et al.  Local mesh refinement in 2 and 3 dimensions , 1991, IMPACT Comput. Sci. Eng..

[11]  F. Hoseini A Parallel , 1862, Hall's journal of health.

[12]  J. Bey,et al.  Tetrahedral grid refinement , 1995, Computing.

[13]  Herb Sutter,et al.  Modern C++ design , 2002 .

[14]  Andreas Dedner,et al.  A generic grid interface for parallel and adaptive scientific computing. Part I: abstract framework , 2008, Computing.

[15]  Andreas Dedner,et al.  A Generic Stabilization Approach for Higher Order Discontinuous Galerkin Methods for Convection Dominated Problems , 2011, J. Sci. Comput..

[16]  Michael Christian Lehn,et al.  FLENS - a flexible library for efficient numerical solutions , 2008 .

[17]  Peter Bastian,et al.  The Iterative Solver Template Library , 2006, PARA.

[18]  Jean-Frédéric Gerbeau,et al.  Derivation of viscous Saint-Venant system for laminar shallow water , 2001 .

[19]  Andreas Dedner,et al.  Curvature Guided Level Set Registration Using Adaptive Finite Elements , 2007, DAGM-Symposium.

[20]  Andreas Dedner,et al.  A generic grid interface for parallel and adaptive scientific computing. Part II: implementation and tests in DUNE , 2008, Computing.

[21]  Chi-Wang Shu,et al.  TVB Runge-Kutta local projection discontinuous Galerkin finite element method for conservation laws III: one-dimensional systems , 1989 .

[22]  Andreas Dedner,et al.  A general object oriented framework for discretizing non-linear evolution equations , 2006 .

[23]  William F. Mitchell,et al.  A comparison of adaptive refinement techniques for elliptic problems , 1989, TOMS.

[24]  R. LeVeque Finite Volume Methods for Hyperbolic Problems: Characteristics and Riemann Problems for Linear Hyperbolic Equations , 2002 .

[25]  Michael Griebel,et al.  Parallel multigrid in an adaptive PDE solver based on hashing and space-filling curves , 1999, Parallel Comput..

[26]  Andreas Holzman Recent Advances in Parallel Virtual Machine and Message Passing Interface , 1997, Lecture Notes in Computer Science.

[27]  Jürgen Bey,et al.  Simplicial grid refinement: on Freudenthal's algorithm and the optimal number of congruence classes , 2000, Numerische Mathematik.

[28]  Leon Bieber,et al.  Numerical Schemes For Conservation Laws , 2016 .

[29]  Martin Rumpf,et al.  A Procedural Interface for Multiresolutional Visualization of General Numerical Data , 1999 .

[30]  Kunibert G. Siebert,et al.  Design of Adaptive Finite Element Software - The Finite Element Toolbox ALBERTA , 2005, Lecture Notes in Computational Science and Engineering.

[31]  R. Bank,et al.  Some Refinement Algorithms And Data Structures For Regular Local Mesh Refinement , 1983 .