Intrepid2 provides interoperable tools for compatible discretizations of PDEs. Intrepid2 mainly focus on local assembly of continuous and discontinuous finite elements, and provides tools for finite volume discretizations as well. The present version of Intrepid2 implements compatible finite element spaces of orders up to 10 for H(grad), H(curl), H(div) and L2 function spaces on frequently used elements such as triangles, quadrilaterals, tetrahedrons and hexahedrons. It provides both Lagrangian basis functions and Hierarchical basis functions (currently only for tensor-product topologies). For each space Intrepid2 provides generation of the relevant discrete first and second order differential operators on a single cell. Intrepid2 provides orientation tools for matching the degrees of freedom on shared edges and faces. It also provides projection tools for projecting functions in H(grad), H(curl), H(div) and L2 to the respective discrete spaces. Intrepid2 achieves performance portability using the Kokkos(kokkos.html) programming model. Virtually all numerical data required for local assembly can be represented as a multi-dimensional arrays, implemented as
- High-order (up to 10) basis functions for H(grad), H(curl), H(div) and L2 spaces on select cell topologies
- Lagrangian and Hierarchical basis functions
- Pullbacks (transformations) from reference coordinate frame of H(grad), H(curl), H(div) and L2 fields
- Pullbacks of gradient, curl and divergence of H(grad), H(curl), H(div) fields
- Quadrature rules of orders up to 20 on most standard 1D, 2D and 3D cell topologies
- Orientation tools to enforce matching of degrees of freedom on shared edges and faces
- Projection-based Interpolations operators on H(grad), H(curl), H(div) and L2 that are optimally accurate and commute with the respective differential operators
Hierachical basis functions are implemented accordingly to the paper Orientation embedded high order shape functions for the exact sequence elements of all shapes by Fuentes, Keith, Demkowicz and Nagaraj. However, in Intrepid2 the orientations are not embedded in the basis but enforced separately for additional flexibility.
Interpolation-based projections are described in the book Computing with Hp-Adaptive Finite Elements, Vol. 2 by Demkowicz, Kurtz, Pardo, Paszynski, Rachowicz, Zdunek.