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

https://doi.org/10.1016/j.camwa.2020.02.022Get rights and content

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, hp-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.

Introduction

Mathematical software has been collected in packages for almost as long as computers have been around. The first of these packages were collections of loosely connected subroutines for specific purposes. In the earliest days, most of these were related to linear algebra problems such as the solution of linear systems, or computing eigenvalues, but also to numerical integration and differentiation. Few of these packages survive to this day, but the BLAS and related LAPACK interfaces [1], [2] are still widely used, despite the fact that BLAS was developed and standardized already in the 1970s.

Since then, mathematical software has seen the emergence of ever more sophisticated and connected libraries. This includes software for sparse linear algebra in the 1980s; support for parallel sparse linear algebra based on MPI [3] in the 1990s; and, since the late 1990s and early 2000s, libraries that provide the tools to build numerical solvers for partial differential equations (PDEs) using finite element, finite difference, or finite volume methods. Many of the libraries in this category are discussed in articles in this issue.

Among the largest of the libraries supporting numerical PDE solvers is deal.II, whose architecture, feature set, user and developer community, and applications we discuss herein. The origins of this library lie in the Numerical Analysis Group at the University of Heidelberg, Germany, where a predecessor library called DEAL (short for the “Differential Equation Analysis Library”) was developed since the mid-1990s. deal.II is a re-write of DEAL using more modern software design principles; it was started in late 1997 by Wolfgang Bangerth, Ralf Hartmann, and Guido Kanschat who, at the time, were all members of the same group in Heidelberg. Since then, deal.II has grown into a truly worldwide project with more than one million lines of C++ code, to which more than 250 people have contributed, and that is managed by a dedicated group of Principal Developers located at universities, research institutes, and companies across continents.

This paper discusses aspects of the deal.II project. Specifically, Section 2 is concerned with design considerations that dictate the functionality that deal.II provides. Section 3 then covers specific functionality provided within this framework. As will become apparent there, our goal is to cover essentially everything that can be provided in a generic way to codes that want to solve specific partial differential equations using the most modern aspects of the finite element method, all while supporting modern hardware. Section 4 discusses some of the lessons we have learned running a large and complex software project, while Section 5 covers how deal.II supports our views on and activities in education in the Computational Science and Engineering arena. Section 6 briefly outlines some of the complex applications that have been built atop deal.II over the years and showcases new parallel scalability results. In Section 7 we comment on the vision and future directions of the project. We conclude in Section 8.

We end this introduction by stating that an earlier review of deal.II was previously published in [4], and that individual releases and new features are discussed in a series of papers of which the most recent ones are [5], [6], [7], [8]. Specific features of deal.II, along with details of their implementation, are discussed in a large number of papers [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23]. For more details and an updated list, see https://dealii.org/publications.html or the summary in [8].

Section snippets

Design considerations

Any nontrivial software package needs (written or unwritten) design principles to guide its development. Such principles provide a mental backdrop for expectations on how its components are used and interact with each other. Design principles also enable users to learn a software package efficiently, build a foundation for the evolution of the software, and aid developers in gauging an appropriate and idiomatic implementation of new features.

In the following subsections, we outline the design

Features

Having discussed what we want to achieve with deal.II, let us now turn to a discussion of the features the library offers. Fig. 1 provides an overview of the biggest building blocks of deal.II and their interplay. Each box references a concept that is, in most cases, implemented in several different ways — either as classes derived from a common base class (e.g., in the case of the finite elements, mappings, and quadrature classes), as independent classes using a generic interface (as is the

Lessons learned from the development of complex software

Having discussed design goals and available functionality in the previous two sections, it may be interesting to also put all of this development into perspective: What have we learned about the development of a complex scientific software library intended for a large user community?

In [68], we have previously given some answers on what we think makes scientific software libraries successful. Let us here summarize some of the points made there and explain how they relate to deal.II

Education

As already mentioned in Sections 2.9 A tool for a large community, 2.10 A way to build a community itself, libraries such as deal.II do not exist in a vacuum. Rather, they are surrounded by user communities requiring education: Help and documentation resources at varying levels, and basic training in the underlying numerical methods and software development. But, a project such as deal.II also enables educational opportunities: It is a tool to reach communities who may be interested in

Applications

deal.II is used by hundreds or thousands of researchers in essentially every field of the sciences and engineering, as shown by the large number of publications that build on it [38] — too many to even try and summarize. Most of these publications use codes written for a specific purpose but not publicly available. However, the project website at https://www.dealii.org also links to a number of large projects built on deal.II in the geosciences, radiation transport, the material sciences, fuel

Vision and future directions

Like many volunteer projects, deal.II does not have a formal roadmap that drives development. Rather, most new features stem from individuals’ need that arise in their research. That said, we have the following aspirational goals:

  • To provide state-of-the-art tools for a broad variety of PDEs.

  • To have excellent documentation to enable anyone to use the library.

  • To enable fast and scalable algorithms from laptops to the largest supercomputers, including new architectures.

  • To create an open,

Conclusions

In this contribution, we have outlined the design criteria and functionality of the deal.II finite element library. Like many other scientific software projects, deal.II started as a small project within one lab, with no intention of reaching beyond that point; however, it has now grown into a successful and world-wide project that is used in hundreds or thousands of research projects, with nearly a dozen principal developers who spend a substantial fraction of their time on the continued

Acknowledgments

W. Bangerth was partially supported by the National Science Foundation (NSF), USA under Award OAC-1835673 as part of the Cyberinfrastructure for Sustained Scientific Innovation (CSSI), USA program; by Award DMS-1821210; by Award EAR-1925595; and by the Computational Infrastructure in Geodynamics initiative (CIG), through the National Science Foundation, USA under Awards No. EAR-0949446 and EAR-1550901 and The University of California, USA — Davis.

T. Heister was partially supported by the

References (77)

  • BangerthW. et al.

    deal.II – a general purpose object oriented finite element library

    ACM Trans. Math. Software

    (2007)
  • BangerthW. et al.

    The deal.II library, version 8.4

    J. Numer. Math.

    (2016)
  • ArndtD. et al.

    The deal.II library, version 8.5

    J. Numer. Math.

    (2017)
  • AlzettaG. et al.

    The deal.II library, version 9.0

    J. Numer. Math.

    (2018)
  • ArndtD. et al.

    The deal.II library, version 9.1

    J. Numer. Math.

    (2019)
  • JanssenB. et al.

    Adaptive multilevel methods with local smoothing for H1- and Hcurl-conforming high order finite element methods

    SIAM J. Sci. Comput.

    (2011)
  • ClevengerT.C. et al.

    A flexible, parallel, adaptive geometric multigrid method for FEM

    (2019)
  • BangerthW. et al.

    Algorithms and data structures for massively parallel generic adaptive finite element codes

    ACM Trans. Math. Software

    (2011)
  • BangerthW. et al.

    Data structures and requirements for hp finite element software

    ACM Trans. Math. Software

    (2009)
  • DavydovD. et al.

    Convergence study of the h-adaptive PUM and the hp-adaptive FEM applied to eigenvalue problems in quantum mechanics

    Adv. Model. Simul. Eng. Sci.

    (2017)
  • KronbichlerM. et al.

    Fast matrix-free evaluation of discontinuous Galerkin finite element operators

    ACM Trans. Math. Software

    (2019)
  • DeSimoneA. et al.

    Tools for the Solution of PDEs Defined on Curved Manifolds with Deal.II

    (2009)
  • MaierM. et al.

    Linearoperator benchmarks, version 1.0.0

    (2016)
  • TurcksinB. et al.

    Workstream – a design pattern for multicore-enabled finite element computations

    ACM Trans. Math. Software

    (2016)
  • HeltaiL. et al.

    Using exact geometry information in finite element computations

    (2019)
  • LangtangenH.P. et al.

    A comprehensive set of tools for solving partial differential equations; diffpack

  • KirkB.S. et al.

    Libmesh: a C++ library for parallel adaptive mesh refinement/coarsening simulations

    Eng. Comput.

    (2006)
  • W. Bangerth, Using modern features of C++ for adaptive finite element methods: dimension-independent programming in...
  • HenningJ.L.

    Session details: SPEC CPU2006 analysis

    ACM SIGARCH Comput. Archit. News

    (2007)
  • ReindersJ.

    Intel Threading Building Blocks: Outfitting C++ for Multi-Core Processor Parallelism

    (2007)
  • HerouxM.A. et al.

    An overview of the Trilinos project

    ACM Trans. Math. Software

    (2005)
  • HerouxM.A.

    Trilinos web page

    (2018)
  • BalayS. et al.

    PETSc web page

    (2018)
  • BalayS. et al.

    PETSC Users Manual

    (2018)
  • BursteddeC. et al.

    P4est: Scalable algorithms for parallel adaptive mesh refinement on forests of octrees

    SIAM J. Sci. Comput.

    (2011)
  • BursteddeC.

    Parallel tree algorithms for AMR and non-standard data access

    (2018)
  • KynchR. et al.

    Resolving the sign conflict problem for hp-hexahedral Nédélec elements with application to eddy current problems

    Comp. Struct.

    (2016)
  • CuSPARSE

    (2019)
  • Cited by (171)

    View all citing articles on Scopus

    This manuscript has been authored by UT-Battelle, LLC, USA under Contract No. DE-AC05-00OR22725 with the U.S. Department of Energy. The United States Government retains and the publisher, by accepting the article for publication, acknowledges that the United States Government retains a non-exclusive, paid-up, irrevocable, worldwide license to publish or reproduce the published form of this manuscript, or allow others to do so, for United States Government purposes. The Department of Energy will provide public access to these results of federally sponsored research in accordance with the DOE Public Access Plan (http://energy.gov/downloads/doe-public-access-plan).

    1

    All authors of the paper are Principal Developers of the deal.II software library. They have all developed substantial pieces of deal.II, participate in patch review, and have participated in the writing of this article.

    View full text