A device simulator consists of several software components, required for computing the electrical characteristics of a given device, consisting of a mesh and additional physical information like a doping profile. For instance, a material database is required providing the material parameters used for the mathematical models. The interplay between the different software components usually gives rise to tightly interwoven, i.e., monolithic, implementations, resulting in inflexible simulation platforms. Changes to the implementation, such as switching linear solver backends, are thus usually cumbersome and require significant implementation efforts. This fact puts pressure on the software design to provide a flexible long-term solution. Interfacing the simulator with LCSD-based libraries merits special consideration, due to the significantly increased level of reusability provided by the already available functionality (Figure 4.1).
In this chapter, a typical set of basic equations required for device simulation is briefly discussed (Section 4.1). The primary challenges of implementing a device simulator are depicted as well as the input and output dependencies are identified (Section 4.2). Based on these evaluations, an approach for a device simulation platform tackling these challenges is discussed and complemented by several examples (Section 4.3).