Micro- and nanoelectronics device simulation ( MNDS) is a sub-category of technology computer-aided design ( TCAD), which plays a crucial role in semiconductor product development, enabling to replace many cost- and time-intensive experiments by computer simulations [1]. TCAD, in general, deals with the modeling of device fabrication1 , device operation2 , and circuit simulation. Where device fabrication deals with, for instance, simulating the doping process of semiconductors, device operation describes the electrical behavior of a device. In turn, circuit simulation models the behavior of an ensemble of devices. Typically, device fabrication provides the input data for the device operation step, being doping profiles as well as a mesh, modeling the simulation domain. The device operation yields electrical characteristics, enabling to setup models required for circuit simulations. Thus, the individual stages of TCAD form a sequence of simulation steps (Figure 1.1).
A peculiarity of TCAD is the fact that the complexity of some problems scales with the currently available computational hardware, used to carry out the simulations. For instance, the design of future central processing units ( CPUs) - requiring ever-more complicated modeling and thus increasingly demanding computational resources - is addressed on current generation hardware. This fact puts pressure on the available simulation approaches to provide the necessary means to satisfy the modeling needs. This circumstance is also characterized by the fact that research on device and process modeling in certain technologies, such as silicon carbide, lack the maturity of the silicon technology, although commercial products are already available. Overall, the role of TCAD is fundamentally fueled by the industry’s urge to satisfy Moore’s Law as well as the More than Moore scenario [2], thus continually demanding cutting-edge research in all areas related to TCAD.
Another aspect of MNDS is that due to the ever-ongoing advances in physical modeling, a plethora of highly specialized simulation tools is available. These tools are typically focused on the modeling aspect rather than the software design3 . For instance, primarily monolithic software designs are applied due to a decreased initial development effort. On the contrary, a different approach would require a separation of functionality into reusable libraries. Such a separation, however, would in turn trigger increased initial development overhead but also would allow the build-up of a reusable set of libraries, enabling minimal-effort applications by merely interfacing with the libraries. However, the emphasis is usually on the exploitation of the developed physical model, as this is significantly more valuable in a scientific sense. The scientific modeling community and, by extension, the research journals tend to concentrate primarily on new modeling aspects rather than the software which enabled the simulation in the first place. With publications representing the actual currency in the academic environment, higher publication or citation counts are attributed much higher importance than the development and maintenance of scientific software. The increasing competition for grants and positions in a strained economic climate puts additional pressure on this process.
Related to the modeling-focus, the simulation software ecosystem in the field of MNDS lacks behind with respect to free/libre open source software ( FLOSS) [4][5]. It is common practice that simulation software is either developed and distributed in a commercial or in a closed-source manner. Where the first is primarily performed by companies, the latter is usually applied by the academic MNDS research community. Software is usually seen as an asset, ensuring an advantage over competitors. Where binary versions in principle allow access to the simulation mechanism, it hides the actual implementation. This black box approach is especially problematic if researchers need to investigate the implementations, usually essential for development, analysis, and debugging of physical models. Additionally, commercial simulation tools in the field of MNDS are typically expensive, further straining the budget of research institutions. Providing FLOSS-based implementations along with research results in scientific journals, also satisfies the fundamental scientific principle of science, being reproducibility [6][7]. Another relevant aspect of FLOSS is that the software acts as compensation for publicly funded research projects, as is the case for any publication in journals. Although the lack of FLOSS is not directly relevant from an academic point of view, it ultimately reduces the long-term net research time. Precious efforts have to be devoted to implement the software basis prior to, for instance, implementing scientifically valuable physical models. Therefore, a lack of FLOSS is indeed relevant to uphold the high-pacing field of MNDS, and thus by extension makes it relevant from an academic research perspective. However, FLOSS offers drawbacks as well, most prominent of all is the potential for code hijacking. As the code is publicly available the code can be accessed and distributed under a different label by external people, who take credit for the work conducted by the original authors. Another potential drawback is that due to the limited funding for developing open source software the tools tend to not offer the same level of reliability than proprietary software. Also related to a shortage of funding, FLOSS lacks advanced software support such as phone or email-based services, being of particular importance to companies for resolving issues in a timely manner.
The lack of software reuse is especially troublesome in an academic context. Increased development time is clearly a drawback in the short term, causing a research group to lag behind groups, where software engineering4 is not a concern. The additional need for trained programmers is also particularly challenging in academia, since the workforce is typically smaller compared to the private sector. Also, there is a higher fluctuation of software engineers due to the inherent flow of scientific personnel, particularly PhD students. Furthermore, the majority of young researchers in physical modeling areas are usually quite skilled in physics and mathematics, whereas programming skills are typically underdeveloped. Overall, the number of physical modeling scientists with an advanced software engineering background is small, further contributing to the challenge of scientific software engineering in academia. It is thus of considerable importance to increase the level of reusability in order to support the continuing progress in physical modeling.