Prev Up Next
Go backward to Data associations (grid functions)
Go up to Introduction
Go forward to Creating an Interface Adaption to Your Own Grid Data Structure

The geometric layer

This documentation is still incomplete!

Until now, we have seen grids as purely combinatorial constructs. Adding geometric functionality in a separate layer has the advantage to make a combinatorial grid usable in a broader context, because there may be many different geometric embeddings for a grid. Also, there are a lot of algorithms that do not require any geometry at all.

Some of the major points of variation of the mathematical aspects of geometric embeddings are

Furthermore, geometric embeddings can differ in computational aspects:

A linear and a non-linear geometry for the same grid
A linear and a non-linear geometry for the same grid

What kind of functionality is available in a class implementing a geometric embedding for a grid? This question cannot be answered in general. The most basic geometry concept is that of Vertex Grid Geometry, which just allows access to vertex coordinates. A more advanced concept is Volume Grid Geometry, which defines geometric counterparts for all combinatorial grid elements, as shown in the table.
types
typedef coord_type GeomCoord point in space
typedef segment_type GeomSegment 1D segment corr. to Edge
typedef polygon_type GeomPolygon 2D polygon corr. to Face
typedef polyhedron_type GeomPolyhedron 3D polyhedron corr. to Cell (in 3D Grids)
functionals from combinatorics to geometry
coord_type coord(Vertex)
segment_type segment(Edge)
polygon_type polygon(Face)
polyhedron_type polyhedron(Cell)
mappings of combinatorial entities to geometric entities

There may be a lot more functionality available, depending on the actual geometry. For example, if the combinatorial and the geometric dimension are equal, one may define outward normal in the centers of facets.


Guntram Berti

Prev Up Next