The deal.II finite element library: design, features, and insights. (English) Zbl 07288721

Summary: 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.


68-XX Computer science
74-XX Mechanics of deformable solids
Full Text: DOI arXiv


[1] Lawson, C. L.; Hanson, R. J.; Kincaid, D. R.; Krogh, F. T., Basic linear algebra subprograms for fortran usage, ACM Trans. Math. Software, 5, 3, 308-323 (1979) · Zbl 0412.65022
[2] Anderson, E.; Bai, Z.; Bischof, C.; Blackford, S.; Demmel, J.; Dongarra, J.; Du Croz, J.; Greenbaum, A.; Hammarling, S.; McKenney, A.; Sorensen, D., LAPACK Users’ Guide (1999), Society for Industrial and Applied Mathematics: Society for Industrial and Applied Mathematics Philadelphia, PA · Zbl 0934.65030
[3] Message Passing Interface Forum, E., MPI: A Message-Passing Interface Standard Version 3.1 (2015), Technical Report
[4] Bangerth, W.; Hartmann, R.; Kanschat, G., deal.II - a general purpose object oriented finite element library, ACM Trans. Math. Software, 33, 4, 24/1-24/27 (2007) · Zbl 1365.65248
[5] Bangerth, W.; Davydov, D.; Heister, T.; Heltai, L.; Kanschat, G.; Kronbichler, M.; Maier, M.; Turcksin, B.; Wells, D., The deal.II library, version 8.4, J. Numer. Math., 24, 135-141 (2016) · Zbl 1348.65187
[6] Arndt, D.; Bangerth, W.; Davydov, D.; Heister, T.; Heltai, L.; Kronbichler, M.; Maier, M.; Pelteret, J.-P.; Turcksin, B.; Wells, D., The deal.II library, version 8.5, J. Numer. Math., 25, 3, 137-146 (2017) · Zbl 1375.65148
[7] Alzetta, G.; Arndt, D.; Bangerth, W.; Boddu, V.; Brands, B.; Davydov, D.; Gassmoeller, R.; Heister, T.; Heltai, L.; Kormann, K.; Kronbichler, M.; Maier, M.; Pelteret, J.-P.; Turcksin, B.; Wells, D., The deal.II library, version 9.0, J. Numer. Math., 26, 4, 173-183 (2018) · Zbl 1410.65363
[8] Arndt, D.; Bangerth, W.; Clevenger, T. C.; Davydov, D.; Fehling, M.; Garcia-Sanchez, D.; Harper, G.; Heister, T.; Heltai, L.; Kronbichler, M.; Kynch, R. M.; Maier, M.; Pelteret, J.-P.; Turcksin, B.; Wells, D., The deal.II library, version 9.1, J. Numer. Math. (2019) · Zbl 1435.65010
[9] Kanschat, G., Multi-level methods for discontinuous Galerkin FEM on locally refined meshes, Comput. Struct., 82, 28, 2437-2445 (2004)
[10] Janssen, B.; Kanschat, G., Adaptive multilevel methods with local smoothing for \(H^1\)- and \(H^{\text{curl}} \)-conforming high order finite element methods, SIAM J. Sci. Comput., 33, 4, 2095-2114 (2011) · Zbl 1230.65133
[11] Clevenger, T. C.; Heister, T.; Kanschat, G.; Kronbichler, M., A flexible, parallel, adaptive geometric multigrid method for FEM (2019), in press
[12] Bangerth, W.; Burstedde, C.; Heister, T.; Kronbichler, M., Algorithms and data structures for massively parallel generic adaptive finite element codes, ACM Trans. Math. Software, 38, 14/1-28 (2011) · Zbl 1365.65247
[13] Bangerth, W.; Kayser-Herold, O., Data structures and requirements for \(h p\) finite element software, ACM Trans. Math. Software, 36, 1, 4/1-4/31 (2009) · Zbl 1364.65237
[14] Davydov, D.; Gerasimov, T.; Pelteret, J.-P.; Steinmann, P., Convergence study of the h-adaptive PUM and the hp-adaptive FEM applied to eigenvalue problems in quantum mechanics, Adv. Model. Simul. Eng. Sci., 4, 1, 7 (2017)
[15] Kronbichler, M.; Kormann, K., A generic interface for parallel cell-based finite element operator application, Comput. & Fluids, 63, 135-147 (2012) · Zbl 1365.76121
[16] Kronbichler, M.; Kormann, K., Fast matrix-free evaluation of discontinuous Galerkin finite element operators, ACM Trans. Math. Software, 45, 3, 29:1-29:40 (2019) · Zbl 1486.65253
[17] DeSimone, A.; Heltai, L.; Manigrasso, C., Tools for the Solution of PDEs Defined on Curved Manifolds with Deal.II (2009), SISSA, Technical Report 42/2009/M
[18] Giuliani, N.; Mola, A.; Heltai, L., \( \pi \)-BEM: A flexible parallel implementation for adaptive, geometry aware, and high order boundary element methods, Adv. Eng. Softw., 121, March, 39-58 (2018)
[19] Maier, M.; Bardelloni, M.; Heltai, L., LinearOperator – a generic, high-level expression syntax for linear algebra, Comput. Math. Appl., 72, 1, 1-24 (2016) · Zbl 1443.65003
[20] Maier, M.; Bardelloni, M.; Heltai, L., Linearoperator benchmarks, version 1.0.0 (2016)
[21] Turcksin, B.; Kronbichler, M.; Bangerth, W., Workstream – a design pattern for multicore-enabled finite element computations, ACM Trans. Math. Software, 43, 1, 2/1-2/29 (2016) · Zbl 1396.65145
[22] Sartori, A.; Giuliani, N.; Bardelloni, M.; Heltai, L., deal2lkit: A toolkit library for high performance programming in deal.II, SoftwareX, 7, 318-327 (2018)
[23] Heltai, L.; Bangerth, W.; Kronbichler, M.; Mola, A., Using exact geometry information in finite element computations (2019), in press
[24] Langtangen, H. P.; Bruaset, A. M., A comprehensive set of tools for solving partial differential equations; diffpack, (Dæhlen, M.; Tveito, A., Numerical Methods and Software Tools in Industrial Mathematics (1997), Birkhäuser: Birkhäuser Boston, MA), 63-92
[25] Kirk, B. S.; Peterson, J. W.; Stogner, R. H.; Carey, G. F., Libmesh: a C++ library for parallel adaptive mesh refinement/coarsening simulations, Eng. Comput., 22, 3, 237-254 (2006)
[26] W. Bangerth, Using modern features of C++ for adaptive finite element methods: dimension-independent programming in deal.II, in: M. Deville, R. Owens (Eds.), Proceedings of the 16th IMACS World Congress 2000, Lausanne, Switzerland, 2000, Document Sessions/118-1, 2000.
[27] Henning, J. L., Session details: SPEC CPU2006 analysis, ACM SIGARCH Comput. Archit. News, 35, 1, 63 (2007)
[28] Reinders, J., Intel Threading Building Blocks: Outfitting C++ for Multi-Core Processor Parallelism (2007), O’Reilly
[29] Heroux, M. A.; Bartlett, R. A.; Howle, V. E.; Hoekstra, R. J.; Hu, J. J.; Kolda, T. G.; Lehoucq, R. B.; Long, K. R.; Pawlowski, R. P.; Phipps, E. T.; Salinger, A. G.; Thornquist, H. K.; Tuminaro, R. S.; Willenbring, J. M.; Williams, A.; Stanley, K. S., An overview of the Trilinos project, ACM Trans. Math. Software, 31, 397-423 (2005) · Zbl 1136.65354
[30] Heroux, M. A., Trilinos web page (2018)
[31] Balay, S.; Abhyankar, S.; Adams, M. F.; Brown, J.; Brune, P.; Buschelman, K.; Dalcin, L.; Eijkhout, V.; Gropp, W. D.; Karpeyev, D.; Kaushik, D.; Knepley, M. G.; May, D.; McInnes, L. C.; Mills, R.; Munson, T.; Rupp, K.; Smith, P. S.B. F.; Zampini, S.; Zhang, H.; Zhang, H., PETSc web page (2018)
[32] Balay, S.; Abhyankar, S.; Adams, M. F.; Brown, J.; Brune, P.; Buschelman, K.; Dalcin, L.; Eijkhout, V.; Gropp, W. D.; Karpeyev, D.; Kaushik, D.; Knepley, M. G.; May, D.; McInnes, L. C.; Mills, R.; Munson, T.; Rupp, K.; Smith, P. S.B. F.; Zampini, S.; Zhang, H.; Zhang, H., PETSC Users Manual (2018), Argonne National Laboratory, Technical Report ANL-95/11 - Revision 3.9
[33] Burstedde, C.; Wilcox, L. C.; Ghattas, O., P4est: Scalable algorithms for parallel adaptive mesh refinement on forests of octrees, SIAM J. Sci. Comput., 33, 3, 1103-1133 (2011) · Zbl 1230.65106
[34] Burstedde, C., Parallel tree algorithms for AMR and non-standard data access (2018), arXiv e-prints, arXiv:1803.08432
[35] Kynch, R.; Ledger, P., Resolving the sign conflict problem for hp-hexahedral Nédélec elements with application to eddy current problems, Comp. Struct., 181 (2016)
[36] CuSPARSE (2019)
[37] Ginkgo: high-performance linear algebra library for manycore systems (2019)
[38] Publications based on deal.II (2019)
[39] Doxygen (2019)
[40] The deal.II tutorial (2020)
[41] The deal.II code gallery (2020)
[42] Rüde, U.; Willcox, K.; McInnes, L. C.; Sterck, H. D., Research and education in computational science and engineering, SIAM Rev., 60, 3, 707-754 (2018)
[43] Arndt, D.; Fehn, N.; Kanschat, G.; Kormann, K.; Kronbichler, M.; Munch, P.; Wall, W. A.; Witte, J., ExaDG - high-order discontinuous Galerkin for the exa-scale, (Bungartz, H.-J.; Nagel, W. E.; Reiz, S.; Uekermann, B.; Neumann, P., Software for Exascale Computing - SPPEXA 2016-2019 (2020), Springer International Publishing: Springer International Publishing Cham), in press
[44] Gordon, W. J.; Thiel, L. C., Transfinite mappings and their application to grid generation, Appl. Math. Comput., 10, 171-233 (1982) · Zbl 0495.65053
[45] Arnold, D. N.; Logg, A., Periodic table of the finite elements, SIAM News, 47, 9, 212 (2014)
[46] Adini, A.; Clough, R. W., Analysis of Plate Bending By the Finite Element Method (1961), National Science Foundation, Technical Report G.7337
[47] Argyris, J. H.; Fried, I.; Scharpf, D. W., The TUBA family of plate elements for the matrix displacement method, Aeronaut. J., 72, 692, 701-709 (1968)
[48] R.W. Clough, J.L. Tocher, Finite element stiffness matrices for analysis of plates in bending, in: Proceedings of the Conference on Matrix Methods in Structural Mechanics, AFFDL-TR-68-150, Wright-Patterson A.F.B., Ohio, 1965, pp. 515-545.
[49] Douglas Jr, J.; Santos, J. E.; Sheen, D.; Ye, X., Nonconforming Galerkin methods based on quadrilateral elements for second order elliptic problems, RAIRO Math. Model. Numer. Anal., 33, 747-770 (1999) · Zbl 0941.65115
[50] Arnold, D. N.; Falk, R. S.; Winther, R., Finite element exterior calculus, homological techniques, and applications, Acta Numer., 15, 1-155 (2006) · Zbl 1185.65204
[51] Kronbichler, M.; Heister, T.; Bangerth, W., High accuracy mantle convection simulation through modern numerical methods, Geophys. J. Int., 191, 12-29 (2012)
[52] Clevenger, T. C.; Heister, T., Comparison between algebraic and matrix-free geometric multigrid for a Stokes problem (2019), in press
[53] CUDA Zone (2019)
[54] Edwards, H. C.; Trott, C. R.; Sunderland, D., Kokkos: Enabling manycore performance portability through polymorphic memory access patterns, J. Parallel Distrib. Comput., 74, 12, 3202-3216 (2014)
[55] RAJA performance portability layer (2019)
[56] Stiller, B.; Bocek, T.; Hecht, F.; Machado, G.; Racz, P.; Waldburger, M., ASC Tri-Lab Co-Design Level 2 Milestone Report 2015, Tech Report, LLNL-TR-677453 (2015), Lawrence Livermore National Laboratory, Technical Report
[57] Medina, D. S.; St-Cyr, A.; Warburton, T., OCCA: A unified approach to multi-threading languages (2014), arXiv preprint arXiv:1403.0968
[58] OpenMP (2019)
[59] ROCm, a new era in open GPU computing (2019)
[60] CuSOLVER (2019)
[61] Ljungkvist, K., Matrix-free finite-element computations on graphics processors with adaptively refined unstructured meshes, (Proceedings of the 25th High Performance Computing Symposium. Proceedings of the 25th High Performance Computing Symposium, HPC ’17 (2017), Society for Computer Simulation International: Society for Computer Simulation International San Diego, CA, USA), 1:1-1:12
[62] Griewank, A.; Juedes, D.; Utke, J., Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++, ACM Trans. Math. Software, 22, 2, 131-167 (1996) · Zbl 0884.65015
[63] Walther, A.; Griewank, A., Getting started with ADOL-C, Combinatorial Scientific Computing, 181-202 (2009)
[64] Bartlett, R. A.; Gay, D. M.; Phipps, E. T., Automatic differentiation of C++ codes for large-scale scientific computing, (Alexandrov, V.; van Albada, G.; Sloot, P.; Dongarra, J., Computational Science - ICCS 2006 (2006), Springer, Springer Berlin Heidelberg), 525-532 · Zbl 1157.65333
[65] Gay, D. M., Using expression graphs in optimization algorithms, (Lee, J.; Leyffer, S., Mixed Integer Nonlinear Programming (2012), Springer New York), 247-262 · Zbl 1242.90131
[66] Phipps, E.; Pawlowski, R., Efficient expression templates for operator overloading-based automatic differentiation, (Forth, S.; Hovland, P.; Phipps, E.; Utke, J.; Walther, A., Recent Advances in Algorithmic Differentiation. Recent Advances in Algorithmic Differentiation, Lecture Notes in Computational Science and Engineering, vol. 73 (2012), Springer Berlin Heidelberg: Springer Berlin Heidelberg Berlin, Heidelberg), 309-319, arXiv:1205.3506v1 · Zbl 1252.65057
[67] Čertík, O.; Fernando, I.; Garg, S.; Rathnayake, T., SymEngine: A fast symbolic manipulation library (2020)
[68] Bangerth, W.; Heister, T., What makes computational open source software libraries successful?, Comput. Sci. Eng., 6, 015010/1-18 (2013)
[69] Gamblin, T.; LeGendre, M.; Collette, M. R.; Lee, G. L.; Moody, A.; de Supinski, B. R.; Futral, S., The spack package manager: Bringing order to HPC software chaos, (Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, SC ’15 (2015), ACM: ACM New York, NY, USA), 40:1-40:12
[70] Candi - (compile & Install) - downloads, configures, builds and installs deal.II (2019)
[71] Bartlett, R.; Demeshko, I.; Gamblin, T.; Hammond, G.; Heroux, M.; Johnson, J.; Klinvex, A.; Li, X.; McInnes, L. C.; Moulton, J. D., xSDK foundations: Toward an extreme-scale scientific software development kit, Supercomput. Front. Innov., 4, 1 (2017)
[72] Zarestky, J.; Bangerth, W., Teaching high performance computing: Lessons from a flipped classroom, project-based course on finite element methods, (EduHPC ’14: Proceedings of the Workshop on Education for High-Performance Computing (2014), IEEE Press: IEEE Press Piscataway, NJ, USA), 34-41
[73] Zarestky, J.; Bigler, M.; Bangerth, W., Teaching multidisciplinary courses in computational science and engineering (2020), in press
[74] Kronbichler, M.; Wall, W. A., A performance comparison of continuous and discontinuous Galerkin methods with fast multigrid solvers, SIAM J. Sci. Comput., 40, 5, A3423-A3448 (2018) · Zbl 1402.65163
[75] Antonietti, P. F.; Sarti, M.; Verani, M.; Zikatanov, L. T., A uniform additive Schwarz preconditioner for high-order discontinuous Galerkin approximations of elliptic problems, J. Sci. Comput., 70, 2, 608-630 (2017) · Zbl 1381.65091
[76] Kronbichler, M.; Ljungkvist, K., Multigrid for matrix-free high-order finite element computations on graphics processors, ACM Trans. Parallel Comput., 6, 1, 2:1-2:32 (2019)
[77] Motamarri, P.; Das, S.; Rudraraju, S.; Ghosh, K.; Davydov, D.; Gavini, V., DFT-FE - a massively parallel adaptive finite-element code for large-scale density functional theory calculations, Comput. Phys. Comm., 246, Article 106853 pp. (2020)
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.