A Grid Element is an entity, such as a Grid Vertex, that belongs to a Grid. To each grid element, there is associated a unique grid (the anchor grid). Two elements may be compared for equality, if they belong to the same grid.
Conceptually, a combinatorial grid consists of its elements of different dimension (Vertices, Edges and so on), plus an incidence relation between them. This does not imply, however, that the element constituing a grid must be stored permanently within the grid.
We name the element types of a grid consistently according to the following table, where we distinguish between names relating to element dimension and element codimensionX
k-Element | Dimension | Codimension |
Vertex | 0 | |
Edge | 1 | |
FaceX | 2 | |
Facet | 1 | |
Cell | 0 | |
This naming scheme allows for a dimension-independent formulation of many algorithms: for example fluxes in finite volume algorithms are always defined on Facets.
The only refinement is, in fact, that the anchor type is equal to the grid type.
Name | Expression | Description |
Grid type | E::grid_type | the same as E::anchor_type (defined in Grid Entity) |
Name | Expression | Type requirements | return type |
Anchor Grid | e.TheGrid() | grid_type const& | |
Name | Expression | Precondition | Semantics | Postcondition |
Anchor grid reference | grid_type const& g = e.TheGrid() | e is valid | equivalent to g = e.TheGrid() | |
Grid Grid Entity Grid Element Handle