MINIMOS-NT solves
f = 0 using a damped Newton
algorithm:
- ![]() |
= | f(xk) | (5.1) |
x* | = | xk + d . u | (5.2) |
![]() |
= | ![]() |
(5.3) |
As is obvious from these considerations, boundary and interface points have to
be handled in a different manner compared to points located inside the
segments. In a generic device simulator like MINIMOS-NT which can handle an
arbitrary number of contacts, segments, and interfaces, efficient handling of
these situations is of utmost importance. This is achieved by treating the
segments separately from the boundary conditions in such a way that all
segment points are treated in the same manner. (5.4) is
calculated for all segment points including boundary points.
The derivatives of (5.4) for all grid points (
fS)
with respect to the solution vector
x yield the segment matrix
S.
The system matrix
(Jacobian) will be assembled from two
parts, namely the direct part
B (boundary models) and the
transformed part
S (segment models). The latter will be multiplied
by the so called row transformation matrix
B before contributing to
the system matrix
. The same treatment applies for the right hand
side vector
b.
![]() |
= | ![]() ![]() ![]() |
(5.7) |
b | = | bB + ![]() |
(5.8) |
The direct part of the system matrix
B and the row transformation
matrix
B are set up by the boundary models, while the transformed
part
S will be handled by the segment models.
B is
initialized to be the unity matrix. In the actual implementation only entries
different to the unity matrix will be stored. Direct matrix multiplication is
avoided by assembling the transformation matrix in a pre-pass. The
transformation matrix allows for arbitrary linear combination of the equations
found in
S and is normally extremely sparse with most of the
non-zero entries being
1. For the special case with the main-diagonal
entry
ti, i = 0, the constitutive relation for grid point i will not contribute to the
final constitutive relation i. Another special case is
ti, j = tj, j = 1 which simply
combines rows i and j of
S and adds them to row j of
B.