The field of semiconductor process and device simulation, and scientific computing in general, experiences a perpetual increase in software complexity. This increase is primarily due to the strive for improved quality in modeling physical phenomena and for reduced overall computational time. However, an increase in software complexity typically not only manifests in increased development time, but also in a higher demand for scientific software experts.
Scientists typically treat software development differently than software engineers. The main focus is to produce publishable results, in the wake of obtaining new scientific knowledge. Consequently, it is important to utilize the available resources as efficiently as possible. Being well known that complex software implementation is expensive, it is highly beneficial to access already available software packages to minimize the development efforts.
ViennaMOS is our approach to tackle these challenges by using synergies provided by free open source packages to provide a flexible simulation platform for the field of semiconductor device and process simulation. The framework can thus be seen as a collection of software packages to provide researchers the tools to setup simulations on their own.
ViennaMOS itself uses synergy effects by utilizing mature external libraries. For instance, the Qt library is used for the user-interface and the plugin framework, the VTK library allows rendering of charts and meshes with associated scalar/vector fields, and the Boost libraries provide additional non-domain specific general functionality.
By using this approach, a modular and highly reusable simulation environment is created, which allows for a high degree of flexibility, as individual simulation components can be exchanged.