The data model which has been introduced (Section 4.1) as well as the corresponding programming paradigms (Section 4.2), are of utmost importance to develop application concepts where the theoretical concepts state what has to be implemented and the practical concepts given here guide the translation of how these concepts can be implemented efficiently revealing and conserving the theoretical character.
The related work presented in Section 4.4 reviewed the developed and implemented concepts, where two fundamental elements surfaced. The first part is related to a common classification of data structures suitable for scientific computing. In order to allow an arbitrary number of nested traversal operations, which is often required in applications, it is necessary to have appropriate data structures for traversal. This has the added benefit of keeping the program code as concise as possible. The traversal mechanism is derived from the given boundary (coboundary) operator. Therefore, the first part deals with a formal interface to several data structures based on cell complex properties and topological attributes.
The second part deals with the implementation of the concept of fiber
bundles suggesting the separation of topological base space properties
and quantity-related structure information. The base space properties
are thereby identified by the generic data structure and traversal
capabilities (chain concept), whereas the quantity properties are
related to
-forms and their cochain counterpart. An identification
with well-known C++ concepts is given. The concept of a DSEL as a
missing part from the given related work section is used to enable
highly expressive implementations. Finally, the library-centric
software design approach is introduced and a catalog of essential
requirements is assembled.