Automated Generation and Symbolic Manipulation of Tensor Product Finite Elements

We describe and implement a symbolic algebra for scalar and vector-valued finite elements, enabling the computer generation of elements with tensor product structure on quadrilateral, hexahedral and triangular prismatic cells. The algebra is implemented as an extension to the domain-specific language UFL, the Unified Form Language. This allows users to construct many finite element spaces beyond those supported by existing software packages. We have made corresponding extensions to FIAT, the FInite element Automatic Tabulator, to enable numerical tabulation of such spaces. This tabulation is consequently used during the automatic generation of low-level code that carries out local assembly operations, within the wider context of solving finite element problems posed over such function spaces. We have done this work within the code-generation pipeline of the software package Firedrake; we make use of the full Firedrake package to present numerical examples.

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

[2]  Tuomas Kärnä,et al.  firedrake: an automated finite element system , 2016 .

[3]  Firedrake petsc4py: The Python interface to PETSc , 2016 .

[4]  Florian Rathgeber Productive and efficient computational science through domain-specific abstractions , 2014 .

[5]  Lawrence Mitchell,et al.  COFFEE: A Compiler for Fast Expression Evaluation , 2016 .

[6]  Andrew T. T. McRae,et al.  Firedrake: automating the finite element method by composing abstractions , 2015, ACM Trans. Math. Softw..

[7]  Andrew T. T. McRae,et al.  Automating the solution of PDEs on the sphere and other manifolds in FEniCS 1.2 , 2013 .

[8]  Anders Logg,et al.  FFC: the FEniCS Form Compiler , 2012 .

[9]  William C. Skamarock,et al.  Efficiency and Accuracy of the Klemp-Wilhelmson Time-Splitting Technique , 1994 .

[10]  Lawrence Mitchell,et al.  PyOP2: A High-Level Framework for Performance-Portable Simulations on Unstructured Meshes , 2012, 2012 SC Companion: High Performance Computing, Networking Storage and Analysis.

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

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

[13]  Colin J. Cotter,et al.  Mixed finite elements for numerical weather prediction , 2011, J. Comput. Phys..

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

[15]  Anders Logg,et al.  Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book , 2012 .

[16]  Francesca Bonizzoni,et al.  Finite element differential forms on curvilinear cubic meshes and their approximation properties , 2012, Numerische Mathematik.

[17]  S. Osher,et al.  Efficient implementation of essentially non-oscillatory shock-capturing schemes,II , 1989 .

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

[19]  D. Arnold,et al.  Finite element exterior calculus: From hodge theory to numerical stability , 2009, 0906.4325.

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

[21]  Andrew T. T. McRae,et al.  fiat: The Finite Element Automated Tabulator , 2016 .

[22]  Anders Logg,et al.  Unified form language: A domain-specific language for weak formulations of partial differential equations , 2012, TOMS.

[23]  Andrew T. T. McRae,et al.  A numbering algorithm for finite element on extruded meshes which avoids the unstructured mesh penalty , 2016, ArXiv.

[24]  Philippe G. Ciarlet,et al.  The finite element method for elliptic problems , 2002, Classics in applied mathematics.

[25]  J. Schöberl,et al.  High order Nédélec elements with local complete sequence properties , 2005 .

[26]  Peter Bastian,et al.  Generic implementation of finite element methods in the Distributed and Unified Numerics Environment (DUNE) , 2010, Kybernetika.

[27]  Andrew T. T. McRae,et al.  PyOP2: Framework for performance-portable parallel computations on unstructured meshes , 2016 .

[28]  B. Leimkuhler,et al.  Simulating Hamiltonian Dynamics , 2005 .

[29]  Robert C. Kirby,et al.  FIAT: numerical construction of finite element basis functions , 2012 .

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

[31]  Martin Sandve Alnæs,et al.  UFL: a finite element form language , 2012 .

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

[33]  Robert Michael Kirby,et al.  Nektar++: An open-source spectral/hp element framework , 2015, Comput. Phys. Commun..

[34]  Brigitte Maier,et al.  Mixed And Hybrid Finite Element Methods Springer Series In Computational Mathematics , 2016 .

[35]  J. Schöberl C++11 Implementation of Finite Elements in NGSolve , 2014 .

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

[37]  David A. Ham,et al.  Cross-Loop Optimization of Arithmetic Intensity for Finite Element Local Assembly , 2014, ACM Trans. Archit. Code Optim..

[38]  Barry Smith,et al.  PETSc (Portable, Extensible Toolkit for Scientific Computation) , 2011, Encyclopedia of Parallel Computing.

[39]  Kurt Inderbitzin The Deal , 2005 .

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

[41]  N. Phillips,et al.  NUMERICAL INTEGRATION OF THE QUASI-GEOSTROPHIC EQUATIONS FOR BAROTROPIC AND SIMPLE BAROCLINIC FLOWS , 1953 .

[42]  Douglas N. Arnold,et al.  Finite element differential forms on cubical meshes , 2012, Math. Comput..

[43]  Lawrence Mitchell,et al.  tsfc: The Two Stage Form Compiler , 2016 .

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

[45]  R. LeVeque High-resolution conservative algorithms for advection in incompressible flow , 1996 .

[46]  P. Raviart,et al.  A mixed finite element method for 2-nd order elliptic problems , 1977 .

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

[48]  Anders Logg,et al.  Efficient Assembly of $H(\mathrmdiv) and H(\mathrmcurl)$ Conforming Finite Elements , 2009, SIAM J. Sci. Comput..

[49]  Gaël Varoquaux,et al.  The NumPy Array: A Structure for Efficient Numerical Computation , 2011, Computing in Science & Engineering.