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.
이 뉴스, 어떠셨어요?
한 번의 탭으로 반응을 남겨요 · 로그인 불필요