A class to represent a unique ID for a cell in a Triangulation. This class stores the index of the coarse cell from which a cell is descendant, together with information on how to reach the cell from that coarse cell (i.e., which child index to take on each level when moving from one cell to its children). The important point about this class is that an object of the current class uniquely identifies a cell in triangulation, and it even does so in the context of objects of type parallel::distributed::Triangulation where the local portion of a mesh may not store all cells. For example, the CellId computed for a ghost cell on one processor will be exactly the same as the CellId computed for the very same cell on the processor that actually owns the cell, although the level and index of the iterators pointing to that cell within the triangulation stored on each of the processors may (and in general will) be different. In other words, CellId provides the tool with which it is possible to uniquely identify cells in a parallel triangulation, and consequently makes it possible to exchange data between processors tied to individual cells.
- Note
- How this data is internally represented is not of importance (and not exposed on purpose).
- Todo:
- Does it make sense to implement a more efficient representation (internally and/or as a string)? If yes, something like a 64bit int as in p4est would be a good option.
Definition at line 55 of file cell_id.h.