I have presented theoretical, practical, and applied concepts related to the field of scientific computing and, therefore, introduced possible means to enable the reuse of data structures and algorithms. Customized algorithms can be implemented easily where they prove most valuable with the corresponding programming paradigm. By dimensional independent programming, not only is all relevant physics included, but also the demand on computer resources is kept to a minimum. These concepts have been applied and it was proven that this approach leads to a drastic reduction of the amount of newly developed modules and application parts. The following table briefly summarizes the impact of the library-centric application design approach by estimating the total number of lines of code for all developed applications at our institute:
|1980||100.000 lines of code||imperative||Fortran|
|1990||300.000 lines of code||imperative||C, Fortran|
|2000||600.000 lines of code||imperative, OO||C, C++|
|2006||20.000 lines of code||OO, GP, FP, MP||C++|
Application maintenance is easily achieved by these few software components, whereby most of the application code is reused by other applications, resulting in a great extensibility and stability.
The concepts collected, refined, and formalized here are a solid foundation for future work. The formalization of guidelines allows a clean decomposition of applications into general-purpose components. Following precisely specified interfaces interoperability of the original modules as well as future developments adhering to the interfaces is guaranteed. Therefore, the basic building blocks supplied here can serve as a crucial part for the rapid development of the state-of-the-art in scientific computing. The easy extension of these building blocks to provide additional functionality of complex topics such as geometric algebra calculus should also be counted among the major strengths of the presented environment. Besides the development of extensions of the already extensive GSSE the assembly of generic modules containing algorithms and data structures to form applications addressing a large variety of different problems will be the focus of future work.