Algorithm XXXX: Computation of finite element degree-of-freedom transformation matrices

Abstract

The arithmetic intensity of algorithms for computing finite element operators increases with increasing polynomial degree. This has made high degree methods particularly attractive on modern CPU and GPU architectures, since on these architectures performance at low degree is limited (severely) by the available memory bandwidth and only a very small fraction of the floating point capacity of the processor is used. Higher degree methods can exploit a significantly greater fraction of the available compute power of modern architectures. However, whilst stable methods for computing high-degree finite element bases are well-established, there is no universal and automated algorithm for the efficient construction of the degree-of-freedom map for arbitrary degree elements. We address this with a new algorithm that can be used in computing degree-of-freedom maps for an arbitrary Ciarlet-type finite element using only the element's definition and properties of the reference cell, and without requiring a specific implementation for each element. This method is implemented in the library Basix, a component of the FEniCSx libraries. As well as allowing vast simplifications of parts of a codebase, the algorithm allows for new elements to be implemented with ease and has allowed us to support user-defined custom elements that a user can create at runtime without requiring the user to input any information about transformations required to construct a degree-of-freedom map.

0

Turn this paper into a full lesson

ArcXiv compiles a staged curriculum from this paper: 8-12 lessons across beginner → advanced, synthesised section guides, visuals, flashcards, a quiz, exercises, and on-demand deep dives per section. Grounded in the abstract, never invented.

Discussion (0)

Sign in to join the discussion.

Loading comments…