Minimos-NT is controlled by the Input Deck database in each phase of the simulation flow. Depending on the phase of the simulation the database performs different tasks. For instance, simulation modes are chosen and initialized, iteration schemes are processed, parameters for models are set, or the circuit description is read. Since state-of-the-art device simulators are very complex software tools a multitude of decisions are imaginable for the user to influence the simulation flow.
Fig. 3.14 shows a schematic outline of the structure of the device simulator Minimos-NT. Each phase describes a complex process which must be controlled. The dashed arrow-lines indicate the direction of the communication with the database. Several phases do not only query but write back runtime information to the Input Deck database thus allowing feedback loops.
At the beginning of the initialization phase the Input Deck database is initialized. After the initialization of the database, Minimos-NT is controlled by means of the database. Subsequently, the basic structures and all modules and libraries are initialized, the device and circuit definitions and additional information like material properties are loaded from the database.
In the next step the device or the circuit and its embedded devices are loaded and analyzed. For each device the grid and geometry structures are instantiated. Afterwards, the input quantities are read by the quantity server. The materials of each segment in each device are determined, and the corresponding user definitions are loaded from the database. Thereafter, contact definitions are read from the Input Deck database. Depending on the simulation mode, the segment material, and the models to use the simulation quantities are initialized. Initial quantities like the interface distances or the net impurity concentration are calculated.
Minimos-NT provides a powerful stepping mechanism. This stepping allows to step arbitrary parameters and enables to run simulations for all permutations of a given set of parameters. All parameters which have to be stepped for the current simulation have been reported to the simulator during the initialization phase.
Within the main simulation loop three important phases are executed. In the preprocessing step the necessary quantities are calculated either from the initial state, the previous iteration, or the previous simulation point.
In the solving step the linear equation system is assembled by the QQQ module [120]. The solvers implemented within this module are a direct solver and two iterative solvers BiCGStab and GMRES. The iteration scheme and the solving procedure are controlled by the Input Deck database. Runtime information on the state of the solving process is written back to the database which causes other expressions to change.
In the post-processing step the output quantities are calculated from the computed solution. Moreover, several decisions are imaginable to influence the simulation loops (in Fig. 3.14 only the outer simulation loops are shown). The main approaches are described below.
Robert Klima 2003-02-06