In this part, we consider questions connected with the geometry description. We introduce a new concept for geometry description we denote contravariant geometry description. It has a lot of advantages especially for the description of higher-dimensional geometries.
Usually the boundary itself also consists of different parts which require different boundary conditions. This scheme may be continued --- the boundary of the boundary also may be subdivided into parts and so on. Thus, a complete geometry description has to define the subdivision of the domain of interest into segments and their boundaries for every codimension.
The most typical application for a geometry description is the three-dimensional space. Often, usually caused by the complexity of the 3D problem and the restricted computer power, 2D and 1D simplifications will be used. But there are also interesting higher dimensional applications: 4D for space-time, 6D for the phase space, 7D for the phase space in time. That's why it makes sense to consider the general, n-dimensional problem. In the following we consider geometry descriptions on an arbitrary smooth manifold X. For the segments of codimension 0 and 1 we use the denotations region and face, for segments of dimension 0 and 1 the denotations vertex and line.
If we have to consider an object on a space X (like in our case a geometry on X), one of the first questions we have to consider is the functional behaviour of the object. That means, assume we have some mapping f: X --> Y between two spaces, is it possible to define in a natural way a related object on Y for a given object on X resp. an object on X for a given object on Y? If there is such a natural transformation, such objects will be called covariant resp. contravariant. These notions come from category theory, but outside this theory the notion covariant will be often used as for covariant, as for contravariant objects, simply to emphasize that they have a well-defined transformation behaviour. For example, a function on a manifold is contravariant, but in general relativity we use the notion covariant to describe this transformation behaviour. In our case, we can find an answer even without a formal definition of a geometry: If we have a smooth mapping f: X --> Y and a geometry on Y, this defines in general a natural geometry on X. As the segments of this geometry in X we simply use the pre-images of the segments of the geometry in Y. If we exclude some degenerate cases (e.g. that the pre-image of a boundary segment has codimension 0), this rule defines a geometry on X which we call the geometry induced by the mapping f.
The standard way to formalize the notion of a geometry is a cell complex. The k-dimensional boundary segments will be subdivided into elementary cells, and every cell will be described by a mapping from a standard cell into the space.
This definition leads to a problem --- there is no natural realization of the induced geometry. The reason is that the natural transformation of a cell complex points in the other direction. For a cell complex on X, we easily obtain a cell complex on Y. But this natural transformation does not define a geometry on Y. Thus, to define a geometry we have used an object with another transformation behaviour.
We introduce here another definition of a geometry. This definition leads to the correct transformation behaviour, so we have named it contravariant geometry description or shortly cogeometry. The notion cogeometry we have formed in analogy to the pair cohomology --- homology. There is indeed an analogy between the cogeometry and cohomology compared with standard geometry description and homology. The cogeometry can be considered also as a variant of the dual construction of a cell complex. It consists of functions f(k) which find intersections of k-dimensional simplices with segments of the related codimensions --- one function for each dimension. The first function f(0) is simply a function which defines the region containing a given point, the second allows to find intersections of an edge with boundary faces and so on.
We consider different algorithms which may be used to define geometries. In this way, we obtain general algorithms which allow to implement
The geometry description is closely connected with the attribute description --- data which describe the properties of the segments and functions defined on these segments. We show that these attributes may be easily and in a modular way handled by a contravariant geometry description.
The cogeometry is a natural object also from point of view of object-oriented programming. The functions f(k) are simply the methods of the related class "cogeometry". We describe shortly the concept of a future C++ implementation.
Currently, the concept of contravariant geometry description was implemented in C in the geometry description part IBGD of the general purpose 3D grid generator IBG.