an encyclopedia of finite element definitions

A basis function of an order 1 Raviart–Thomas space on a triangle

A basis function of an order 2 Q space on a quadrilateral

A basis function of an order 1 Nédélec (first kind) space on a tetrahedron

A basis function of an order 1 Arnold–Awanou H(curl) space on a hexahedron

Welcome to DefElement: an encyclopedia of finite element definitions.

This website contains a collection of definitions of finite elements, including commonly used elements such as Lagrange, Raviart–Thomas, Nédélec (first kind) and Nédélec (second kind) elements, and more exotic elements such as serendipity H(div), serendipity H(curl) and Regge elements.

You can:

- view the full alphabetical list of elements
- view the elements by category
- view the elements by reference element
- view the elements that form complexes
- view the elements by available implementations
- view recently added/updated elements
- view a list of all pages on DefElement

The finite element method is a numerical method that involves discretising a problem using a finite dimensional function space. These function spaces are commonly defined using a finite element on a reference element to derive basis functions for the space. This website contains a collection of finite elements, and examples of the basis functions they define.

Following the Ciarlet definition of a finite element, the elements on this website are defined using a reference element, a polynomial space, and a set of functionals. Each element's page describes how these are defined for that element, and gives examples of these and the basis functions they lead to for a selection of low-order spaces.

You can read a detailed description of how the finite element definitions can be understood here.

If you find an error or inaccuracy in a DefElement entry, please open an issue on GitHub. You can also open an issue to suggest a new element that should be added to the database.

Alternatively, you could fork the DefElement GitHub repo, make the changes yourself, and open a pull request. You can find more information about adding an element to DefElement here.

The functional information and examples on the element pages are generated using Symfem, a symbolic finite element definition library. Before adding an element to DefElement, it should first be implemented in Symfem.

A list of everyone who has contributed to DefElement can be found here.