Canonical numbering systems for finite‐element codes

Canonical numbering systems are used to relate finite-element vertices and elements to edges and faces in those elements. A numbering system is proposed that treats all the major topological element types used in practice. Also described is a set of functions that provide common evaluations of the canonical numbering data. Examples from various parts of the finite-element analysis process are used to show the usefulness of these functions. The differences between various numbering systems used in commercial and research codes and our numbering system are described. The implementation of these functions is available as open-source software and can be called directly from the C, C++, and Fortran languages.