DOLFIN: Automated finite element computing

We describe here a library aimed at automating the solution of partial differential equations using the finite element method. By employing novel techniques for automated code generation, the library combines a high level of expressiveness with efficient computation. Finite element variational forms may be expressed in near mathematical notation, from which low-level code is automatically generated, compiled, and seamlessly integrated with efficient implementations of computational meshes and high-performance linear algebra. Easy-to-use object-oriented interfaces to the library are provided in the form of a C++ library and a Python module. This article discusses the mathematical abstractions and methods used in the design of the library and its implementation. A number of examples are presented to demonstrate the use of the library in application code.

[1]  J. Nédélec Mixed finite elements in ℝ3 , 1980 .

[2]  YANQING CHEN,et al.  Algorithm 8 xx : CHOLMOD , supernodal sparse Cholesky factorization and update / downdate ∗ , 2006 .

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

[4]  M. Rognes,et al.  Efficient Assembly of H(div) and H(curl) Conforming Finite Elements , 2012, 1205.3085.

[5]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[6]  Hans Petter Langtangen,et al.  Computational Partial Differential Equations - Numerical Methods and Diffpack Programming , 1999, Lecture Notes in Computational Science and Engineering.

[7]  Andy R. Terrel,et al.  Topological Optimization of the Evaluation of Finite Element Matrices , 2012, SIAM J. Sci. Comput..

[8]  S. Brereton Life , 1876, The Indian medical gazette.

[9]  Michel Fortin,et al.  Mixed and Hybrid Finite Element Methods , 2011, Springer Series in Computational Mathematics.

[10]  Matthew G. Knepley,et al.  Mesh algorithms for PDE with Sieve I: Mesh distribution , 2009 .

[11]  Garth N. Wells,et al.  Representations of finite element tensors via automated code generation , 2009 .

[12]  P. Raviart,et al.  Primal hybrid finite element methods for 2nd order elliptic equations , 1977 .

[13]  L. D. Marini,et al.  Two families of mixed finite elements for second order elliptic problems , 1985 .

[14]  G. N. Wells,et al.  Modelling temperature effects on multiphase flow through porous media , 2008 .

[15]  Garth N. Wells,et al.  Automated Modelling of Evolving Discontinuities , 2009, Algorithms.

[16]  A. Logg Automating the Finite Element Method , 2007, 1112.0433.

[17]  Anders Logg,et al.  Automated Code Generation for Discontinuous Galerkin Methods , 2008, SIAM J. Sci. Comput..

[18]  Anders Logg,et al.  A compiler for variational forms , 2006, TOMS.

[19]  Kent-André Mardal,et al.  On the efficiency of symbolic computations combined with code generation for finite element methods , 2010, TOMS.

[20]  Robert C. Kirby,et al.  Algorithm 839: FIAT, a new paradigm for computing finite element basis functions , 2004, TOMS.

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

[22]  Anders Logg,et al.  Efficient compilation of a class of variational forms , 2007, TOMS.

[23]  Christophe Geuzaine,et al.  GetDP: a general environment for the treatment of discrete problems , 1997 .

[24]  Matthew G. Knepley,et al.  Optimizing the Evaluation of Finite Element Matrices , 2005, SIAM J. Sci. Comput..

[25]  Robert C. Kirby Optimizing FIAT with level 3 BLAS , 2006, TOMS.

[26]  Christophe Prud'homme Life: Overview of a Unified C++ Implementation of the Finite and Spectral Element Methods in 1D, 2D and 3D , 2006, PARA.

[27]  David M. Beazley,et al.  Automated scientific software scripting with SWIG , 2003, Future Gener. Comput. Syst..

[28]  Anders Logg,et al.  Automated Computational Modelling for Solid Mechanics , 2008 .

[29]  Garth N. Wells,et al.  Optimizations for quadrature representations of finite element tensors through automated code generation , 2011, TOMS.

[30]  Guntram Berti GrAL--the grid algorithms library , 2006, Future Gener. Comput. Syst..

[31]  M. Rivara,et al.  Local modification of meshes for adaptive and/or multigrid finite-element methods , 1991 .

[32]  Guntram Berti Generic programming for mesh algorithms: Implementing universally usable geometric components pdfauthor , 2002 .

[33]  H. Langtangen,et al.  Mixed Finite Elements , 2003 .

[34]  M. Fortin,et al.  E cient rectangular mixed fi-nite elements in two and three space variables , 1987 .

[35]  Wael Hassan Simplified Wrapper and Interface Generator , 2000 .

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

[37]  P. Raviart,et al.  Conforming and nonconforming finite element methods for solving the stationary Stokes equations I , 1973 .

[38]  Anders Logg,et al.  Efficient representation of computational meshes , 2009, Int. J. Comput. Sci. Eng..