3.6.7 Iteration Schemes

Due to the complex interaction between the coupled partial differential equations the idea of iteration schemes is relatively old. Instead of solving the fully coupled equation system by a Newton method, the equations are solved consecutively in suitable blocks until convergence is reached. A classic example is Gummel's algorithm [18], for other examples see e.g. [127,128,129]. Each of these schemes has its advantages under specific circumstances, e.g. bias conditions and the device type. As it is impossible to implement all useful schemes, a different solution has been sought in Minimos-NT which makes heavy use of its powerful input language. Iteration schemes are defined to consist of iteration blocks. These blocks can be arbitrarily nested. For each block the user can specify:

- Which equation assembly models to use: This offers a flexible way to create suitable equation sets.
- Which quantities of the equation set should be used as solution variables.
- A convergence criterion: This can be formulated using information about the full or partial update norms, the residuum of the complete equation set or of a suitable subset of equations, iteration counters, and much more.
- A failure criterion: This is needed to trigger time-step and stepping control.
- An enter criterion: This allows to use the block under certain circumstances only, e.g. for the first time step or when the norm of the last iteration block was smaller than a certain value.
- The damping scheme to use: Depending on the equation type or the bias condition a different damping scheme or a different parameter set might be advantageous.

The iteration blocks are processed in order. Before each iteration the
convergence criterion (the `while`-condition) and the failure
criterion of the active block are tested. If the failure criterion evaluates to
true the execution is terminated with an error state. If not and the
convergence condition evaluates to true another iteration will be performed
otherwise the iteration block is terminated successfully and the next block is
processed. The conditions can be arbitrary expressions. Normally the runtime
information the simulator writes back to the database is used to formulate the
conditions.

An iteration block does not need to specify an equation set in which case they are used as grouping constructs. With these features an individual iteration scheme can be tailored to solve even such complex problems as electro-thermal mixed-mode simulations [130].

Robert Klima 2003-02-06