The deal.II finite element library: Design, features, and insights

Abstract deal.II is a state-of-the-art finite element library focused on generality, dimension-independent programming, parallelism, and extensibility. Herein, we outline its primary design considerations and its sophisticated features such as distributed meshes, h p -adaptivity, support for complex geometries, and matrix-free algorithms. But deal.II is more than just a software library: It is also a diverse and worldwide community of developers and users, as well as an educational platform. We therefore also discuss some of the technical and social challenges and lessons learned in running a large community software project over the course of two decades.

[1]  Tsuyoshi Murata,et al.  {m , 1934, ACML.

[2]  Andrea Walther,et al.  Getting Started with ADOL-C , 2009, Combinatorial Scientific Computing.

[3]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[4]  Daniel Sunderland,et al.  Kokkos: Enabling manycore performance portability through polymorphic memory access patterns , 2014, J. Parallel Distributed Comput..

[5]  Benjamin S. Kirk,et al.  Library for Parallel Adaptive Mesh Refinement / Coarsening Simulations , 2006 .

[6]  Guido Kanschat,et al.  Multilevel methods for discontinuous Galerkin FEM on locally refined meshes , 2004 .

[7]  Wolfgang Bangerth,et al.  What makes computational open source software libraries successful , 2013 .

[8]  Tamara G. Kolda,et al.  An overview of the Trilinos project , 2005, TOMS.

[9]  Andreas Griewank,et al.  Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++ , 1996, TOMS.

[10]  Katharina Kormann,et al.  Fast Matrix-Free Evaluation of Discontinuous Galerkin Finite Element Operators , 2017, ACM Trans. Math. Softw..

[11]  Bronis R. de Supinski,et al.  The Spack package manager: bringing order to HPC software chaos , 2015, SC15: International Conference for High Performance Computing, Networking, Storage and Analysis.

[12]  Carsten Burstedde Parallel Tree Algorithms for AMR and Non-Standard Data Access , 2020, ACM Trans. Math. Softw..

[13]  Martin Kronbichler,et al.  High accuracy mantle convection simulation through modern numerical methods , 2012 .

[14]  Luca Heltai,et al.  Tools for the Solution of PDEs Defined on Curved Manifolds with deal.II , 2009 .

[15]  Martin Kronbichler,et al.  Multigrid for Matrix-Free High-Order Finite Element Computations on Graphics Processors , 2019, ACM Trans. Parallel Comput..

[16]  Martin Kronbichler,et al.  Algorithms and data structures for massively parallel generic adaptive finite element codes , 2011, ACM Trans. Math. Softw..

[17]  Luca Heltai,et al.  deal2lkit: A toolkit library for high performance programming in deal.II , 2018, SoftwareX.

[18]  Timo Heister,et al.  Comparison between algebraic and matrix‐free geometric multigrid for a Stokes problem on adaptive meshes with variable viscosity , 2019, Numer. Linear Algebra Appl..

[19]  Miss A.O. Penney (b) , 1974, The New Yale Book of Quotations.

[20]  Timothy C. Warburton,et al.  OCCA: A unified approach to multi-threading languages , 2014, ArXiv.

[21]  Lois C. McInnes,et al.  xSDK Foundations: Toward an Extreme-scale Scientific Software Development Kit , 2017, Supercomput. Front. Innov..

[22]  Dongwoo Sheen,et al.  Nonconforming Galerkin methods based on quadrilateral elements for second order elliptic problems , 1999 .

[23]  Martin Kronbichler,et al.  A Performance Comparison of Continuous and Discontinuous Galerkin Methods with Fast Multigrid Solvers , 2016, SIAM J. Sci. Comput..

[24]  Luca Heltai,et al.  LinearOperator - A generic, high-level expression syntax for linear algebra , 2016, Comput. Math. Appl..

[25]  GriewankAndreas,et al.  Algorithm 755: ADOL-C , 1996 .

[26]  James Reinders,et al.  Intel threading building blocks - outfitting C++ for multi-core processor parallelism , 2007 .

[27]  M. Kronbichler,et al.  Using exact geometry information in finite element computations , 2019, ArXiv.

[28]  Paul D. Ledger,et al.  Resolving the sign conflict problem for hphexahedral Ndlec elements with application to eddy current problems , 2017 .

[29]  Luca Heltai,et al.  π-BEM: A flexible parallel implementation for adaptive, geometry aware, and high order boundary element methods , 2018, Adv. Eng. Softw..

[30]  Wolfgang Bangerth,et al.  Teaching High Performance Computing: Lessons from a Flipped Classroom, Project-Based Course on Finite Element Methods , 2014, 2014 Workshop on Education for High Performance Computing.

[31]  Martin Kronbichler,et al.  ExaDG: High-Order Discontinuous Galerkin for the Exa-Scale , 2020, Software for Exascale Computing.

[32]  Carsten Burstedde,et al.  p4est: Scalable Algorithms for Parallel Adaptive Mesh Refinement on Forests of Octrees , 2011, SIAM J. Sci. Comput..

[33]  Guido Kanschat,et al.  A Flexible, Parallel, Adaptive Geometric Multigrid Method for FEM , 2019, ACM Trans. Math. Softw..

[34]  A. Bruaset,et al.  A Comprehensive Set of Tools for Solving Partial Differential Equations; Diffpack , 1997 .

[35]  Ludmil T. Zikatanov,et al.  A Uniform Additive Schwarz Preconditioner for High-Order Discontinuous Galerkin Approximations of Elliptic Problems , 2017, J. Sci. Comput..

[36]  Courtenay T. Vaughan,et al.  ASC Tri-lab Co-design Level 2 Milestone Report 2015 , 2015 .

[37]  Vikram Gavini,et al.  DFT-FE - A massively parallel adaptive finite-element code for large-scale density functional theory calculations , 2019, Comput. Phys. Commun..

[38]  Wolfgang Bangerth,et al.  Data structures and requirements for hp finite element software , 2009, TOMS.

[39]  Martin Kronbichler,et al.  WorkStream -- A Design Pattern for Multicore-Enabled Finite Element Computations , 2016, ACM Trans. Math. Softw..

[40]  D. Arnold,et al.  Finite element exterior calculus, homological techniques, and applications , 2006, Acta Numerica.

[41]  Katharina Kormann,et al.  A generic interface for parallel cell-based finite element operator application , 2012 .

[42]  Paul Steinmann,et al.  Convergence study of the h-adaptive PUM and the hp-adaptive FEM applied to eigenvalue problems in quantum mechanics , 2017, Advanced Modeling and Simulation in Engineering Sciences.

[43]  W. J. Gordon,et al.  Transfinite mappings and their application to grid generation , 1982 .

[44]  Ed Anderson,et al.  LAPACK Users' Guide , 1995 .

[45]  David Wells,et al.  The deal.II library, version 8.5 , 2013, J. Num. Math..

[46]  David Wells,et al.  The deal.II library, Version 9.1 , 2019, J. Num. Math..

[47]  Danna Zhou,et al.  d. , 1840, Microbial pathogenesis.

[48]  John L. Henning Guest editor's introduction , 2007, CARN.

[49]  D. W. Scharpf,et al.  The TUBA Family of Plate Elements for the Matrix Displacement Method , 1968, The Aeronautical Journal (1968).

[50]  Karl Ljungkvist,et al.  Matrix-free finite-element computations on graphics processors with adaptively refined unstructured meshes , 2017, SpringSim.

[51]  J. Tinsley Oden,et al.  Research and Education in Computational Science and Engineering , 2016, ArXiv.

[52]  D. Arnold Finite Element Exterior Calculus , 2018 .

[53]  W. Bangerth,et al.  deal.II—A general-purpose object-oriented finite element library , 2007, TOMS.

[54]  L. Maurer,et al.  Be flexible , 2008, IEEE Microwave Magazine.

[55]  David Wells,et al.  The deal.II Library, Version 8.4 , 2016, J. Num. Math..

[56]  Charles L. Lawson,et al.  Basic Linear Algebra Subprograms for Fortran Usage , 1979, TOMS.

[57]  Barry F. Smith,et al.  PETSc Users Manual , 2019 .

[58]  David Wells,et al.  The deal.II library, Version 9.0 , 2018, J. Num. Math..

[59]  Luca Heltai,et al.  LinearOperator Benchmarks, Version 1.0.0 , 2016 .

[60]  D. Arnold,et al.  Periodic Table of the Finite Elements , 2014 .

[61]  Guido Kanschat,et al.  Adaptive Multilevel Methods with Local Smoothing for H1- and Hcurl-Conforming High Order Finite Element Methods , 2011, SIAM J. Sci. Comput..

[62]  BursteddeCarsten,et al.  p4est: Scalable Algorithms for Parallel Adaptive Mesh Refinement on Forests of Octrees , 2011 .

[63]  Roger P. Pawlowski,et al.  Efficient Expression Templates for Operator Overloading-based Automatic Differentiation , 2012, ArXiv.

[64]  David M. Gay,et al.  Automatic Differentiation of C++ Codes for Large-Scale Scientific Computing , 2006, International Conference on Computational Science.