The type used for global indices of degrees of freedom. While in sequential computations the 4 billion indices of 32-bit unsigned integers is plenty, parallel computations using the parallel::distributed::Triangulation class can overflow this number and we need a bigger index space.

The type used to denote boundary indicators associated with every piece of the boundary and, in the case of meshes that describe manifolds in higher dimensions, associated with every cell.

There is a special value, numbers::internal_face_boundary_id that is used to indicate an invalid value of this type and that is used as the boundary indicator for faces that are in the interior of the domain and therefore not part of any addressable boundary component.

The type used for indices of particles. While in sequential computations the 4 billion indices of 32-bit unsigned integers is plenty, parallel computations using hundreds of processes can overflow this number and we need a bigger index space. We here utilize the same build variable that controls the dof indices because the number of degrees of freedom and the number of particles are typically on the same order of magnitude.