an encyclopedia of finite element definitions

Contributing to DefElement

Suggesting additions and corrections

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.

Contributing directly

You can contribute to DefElement by forking the DefElement GitHub repo, making changes, then opening a pull request.

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.

Defining an element

Elements in the DefElement database are defined using a yaml file in the elements/ folder. The entries in this yaml file are:

NameRequiredDescription
nameThe name of the element (ascii).
html‑nameThe name of the element, including HTML special characters.
reference‑elementsThe reference element(s) that this finite element can be defined on.
alt‑namesAlternative (HTML) names of the element.
short‑namesAbbreviated names of the element.
exterior‑calculusThe family name and exerior derivatuve order.
dofsDescription of the DOFs of this element.
ndofsThe number of DOFs the element has and the A-numbers of the OEIS sequence(s) giving the number of DOFs.
entity‑ndofsThe number of DOFs the element has per subentity type and the A-numbers of the OEIS sequence(s) giving the number of DOFs.
polynomial‑setThe polynomial set of this element. This can use sets defined in the file /data/polysets. Other sets can be given by writing [LaTeX definition of set]. Unions of multiple sets can be given, separated by && .
mixedIf this element is a mixed element, the subelements that it contains.
mappingThe mapping used to push/pull values foward/back from/to the reference element.
sobolevThe Sobolev space the element lives in.
min‑orderThe minimum order of the element
max‑orderThe maximum order of the element
examplesReference elements and orders to be included in the examples section of the entry.
notesNotes about the element.
referencesReferences to where the element is defined.
categoriesCategories the element belongs to. Categories are defined in the file /data/categories.
basixThe name of the enum item used to define this element in Basix's create_element function.
bemppThe string used to define this element in Bempp.
symfemThe string used to define this element in Symfem's create_element function.
uflThe string used to define this element in UFL.

Adding yourself to the contributors

Once you have contributed to DefElement, you should add your name and some information about yourself to the contributors page. To do this, you should add info about yourself to the file data/contributors. If you wish to include a picture of yourself, add a square-shaped image to the pictures/ folder.