The essential building blocks of a device simulator consist of several key components, as depicted in Figure 4.2. The discretization scheme, such as the finite volume method ( FVM), assembles an equation system according to the defined PDEs, the input mesh, and the required material data. The equation system is solved via a solver component, computing the solution from which the device characteristics is derived. Not only is the implementation for each individual component a challenge, also indicated by the fact that most of them offer their own field of research, but also the interplay of the components. Typically, the components are not implemented orthogonally, which tends to result in monolithic implementations, not favoring exchangeability or expandability. The main challenge of a flexible device simulator is thus to focus on a high degree of orthogonality between these components.
In the following, we discuss the individual requirements and challenges for each of the introduced components of a device simulator.