Erasmus Langer
Siegfried Selberherr
Giulliano Aloise
Oskar Baumgartner
Markus Bina
Hajdin Ceric
Johann Cervenka
Lado Filipovic
Wolfgang Gös
Klaus-Tibor Grasser
Philipp Hehenberger
Hans Kosina
Alexander Makarov
Goran Milovanovic
Mihail Nedjalkov
Neophytos Neophytou
Roberto Orio
Dmitry Osintsev
Vassil Palankovski
Mahdi Pourfath
Karl Rupp
Franz Schanovsky
Zlatan Stanojevic
Ivan Starkov
Viktor Sverdlov
Stanislav Tyaginov
Stanislav Vitanov
Paul-Jürgen Wagner
Josef Weinbub

Josef Weinbub
Dipl.-Ing.
weinbub(at!)iue.tuwien.ac.at
Biography:
Josef Weinbub studied electrical engineering and microelectronics at the Technische Universität Wien, where he received the degree of Diplomingenieur in 2009. He is currently working on his doctoral degree, where his scientific interests are in the field of scientific computing, with a special focus on algorithms and datastructures, modern programming techniques, and high-performance computing.

Generic Software Modules for Device Simulation

Device simulation provides a flexible means for prototyping models such as a mobility model. As simulations of this kind are of a rather intricate nature, they rely on a multitude of key functionalities, like solving a system of linear equations or adapting the discretized simulation domain. Due to the high complexity of the simulation process, it is crucial to separate individual steps into modules. From a software point of view, these modules are implemented as libraries, whereas the control of the simulation itself is governed by a separate simulation application. This approach avoids monolithic software design and consequently supports extendibility, exchangeability, and maintainability. In this regard, extendibility refers to the ability to conveniently add modules or libraries to the environment. Exchangeability denotes the ability to replace a module with another one, whereas maintainability allows for easy access to a specific implementation part.
Aside from the general planning of the simulator environment, the required libraries have been identified. The process chain, which reflects the whole device simulation process from the input geometry to the visualization of the simulation result, has been setup and is currently under development.
The figure depicts an exemplary setup for a simulation process based on modules developed as part of the simulation environment. The input geometry is discretized by a meshing library, namely ViennaMesh. The governing simulation application, ViennaMOS, processes the input mesh and interacts with a material library, ViennaMaterials, to retrieve material parameters. Moreover ViennaMOS sets up an equation system based on the Finite Volume discretization method, provided by the respective spatial discretization library, ViennaFVM. The equation system can for example be solved by our OpenCL driven solver library, ViennaCL.
The implementations are based on the C++ programming language. Modern programming techniques are applied, such as generic and meta-programming. Furthermore, a major focus is on Library-Centric Software Design. This design concept not only upholds the separation of functionality into libraries with a high degree of orthogonality but also refers to reusage of existing code. Therefore several publicly available programming libraries are used for the development of the simulation environment, like the Boost libraries or additional solver packages, like Trilinos.


Modularized Simulation Environment.


Home | Activities | Staff | Publications | Sponsors | Music | Contact Us