Scientific computing has traditionally been concerned with concepts related to numerical issues, such as the convergence of discrete approximations to partial differential equations and the computational efficiency of software implementations of numerical methods. The great diversity of physical models, e.g., semiconductor device models, makes the development of simulation applications extremely challenging. Each of the phenomena can be described by differential equations of varying complexity. The development of several numerical solution techniques has been necessary in order to best model the underlying physics and to accommodate the mathematical peculiarities of each of these equations when transfering them to the discrete world of digital computing. While computer performance is steadily increasing, the additional complexity of current mathematical models is easily outgrowing this gain in computational power. It is therefore of utmost importance to employ the latest techniques of software development to obtain high performance and to thereby ensure adequate simulation times, especially for complex problems.
Originating in the field of technology computer aided design, an important and complex area of scientific computing, this dissertation is motivated by the fact that though a great number of separate concepts have been developed during the last decades, up to now no common interfaces nor widely reusable modules for application design have emerged which can be used in a broad variety of areas. Thus the concepts for scientific computing given here are focused on components for generic and high performance library-centric application design. Therefore, this dissertation introduces a common generic data model and an embedded functional specification language to provide effective representations across a very wide range of application areas. Finally, a generic scientific simulation environment that operates on virtually any data is presented. Not only are generic concepts introduced, but also the corresponding programming paradigms which model the necessary requirements for an orthogonal extension and enhancement are expounded.
A concluding section presents various applications based on a wide variety of numerical calculation schemes and illustrates that the concepts demonstrated are indeed functional. It is also shown that even manually tuned high performance applications are outperformed by the generic scientific simulation environment.