Scientific computing, a common term for various tasks in computational science, is concerned with concepts which close the gap between theoretical and experimental science. This development is supported by the exponential advancement of the brute force number-crunching possibilities of modern computer systems, which have proved Moore's prediction in 1965 that computational power would double every 18 months.
Hidden in the shadow of the number crunching, various other paradigms have emerged since then, especially in the field of scientific computing. One of them can be attributed to the rigorous shift of the interaction between users and computer systems. In the early days of computer operation, a stack of cards had to be used to access the resources available. Through the advent of terminals and the even more drastic paradigm change of multi-terminals on one screen, the possibilities of computing have completely changed. Nowadays we can connect interactively from almost any location in any part of the world to our computer systems. Work stations even offer complete virtual realities with real-time calculation and multi-dimensional visualization capabilities. However, what can still be observed is that software is implemented repeatedly in almost the same way as it was decades ago, sometimes with only minor adaptations or a small change in the paradigms used. This repetition is also noticeable in the area of computer languages, with the development of a great number of different languages, all of which are currently not sufficient for the tasks of scientific computing [3,4,5,6,7] with the exception of a few outstanding developments [8,9].
The Institute for Microelectronics has a long history in the field of Technology Computer-Aided Design (TCAD), the process of gaining insights into procedures and mechanisms in the area of semiconductor manufacturing and advancement. Since this history goes back to the roots of computer simulation in the field of semiconductor research, the institute is able to track the various changes in the field of computational science. Currently the scientific community, and even more the TCAD community, relies on either domain-specific closed applications or on components tied very closely to particular representations which were often built for very specific purposes and then tossed into a huge and monolithic toolkit. To this date, data structures and algorithms are implemented in a heavily application-specific way, making their reuse practically impossible. From an engineering perspective, interactions between theoretical scientific computing concepts and their effective and efficient practical application are required, thereby shifting the focus to high performance, library-centric application design.