Eine notwendige Bedingung für die Existenz einer eindeutige Lösung des nichtlinearen Gleichungssystems
ist, daß die Anzahl der Gleichungen mit der Anzahl der
Unbekannten übereinstimmen muß. Welche Gleichung einer bestimmten
Variablen zugeordnet wird, ergibt sich zumeist aus der Diskretisierung
der Differentialgleichungen. Diese Zuordnung bestimmt die Reihenfolge
der Gleichungen im Gleichungssystem entsprechend der Anordnung der
Variablen im Lösungsvektor. Die erste Gleichung im Gleichungssystem
entspricht der ersten Variablen des Lösungsvektors, usw. Die einer
Variablen zugeordnete Funktion
wird als
Kontrollfunktion bezeichnet und zur Kennzeichnung als
mit der Variablen als Index geschrieben,
Die Systemmatrix ist die Ableitung der
vektorwertigen Funktion
an der Stelle
und wird auch die Jacobimatrix genannt. Da
eine analytische Funktion ist, kann die
Systemmatrix ebenfalls analytisch berechnet werden,
Der Vektor der rechten Seite des Gleichungssystems (3.9)
wird der Rechte-Seite-Vektor für die Näherungslösung
genannt und kann ebenfalls analytisch bestimmt werden.
Wie die Gleichung (3.17) zeigt, ist eine Zeile des
linearen Gleichungssystems durch die entsprechende Kontrollfunktion
definiert und eine Spalte der Systemmatrix durch die entsprechende
Variable des Lösungsvektors bestimmt, nach der die Funktion
abgeleitet wird. Nachdem die Funktion einer Variablen direkt
zugeordnet ist, kann die Zeilenposition auch mit der assoziierten
Variablen bestimmt werden. Der Eintrag in der Systemmatrix
ist dem Variablenpaar
zugeordnet und umgekehrt. Er ist
die partielle Ableitung der Funktion
nach der Variablen
an der Stelle der aktuellen Näherungslösung
und
der entsprechende Eintrag des Rechte-Seite-Vektors ist der negative Wert
der Funktion
an der Stelle
(s. Gl. 3.9).
Gleichartige Kontrollfunktionen, die das Ergebnis der Diskretisierung einer Differentialgleichung sind und sich nur durch ihre Variablen unterscheiden, werden als Modelle bezeichnet. Diese Modelle sind nicht zu verwechseln mit den physikalischen Modellen, wie etwa für Beweglichkeiten oder Generationsraten. Sie stellen vielmehr implementierte Modellfunktionen dar, die für jeden Iterationsschritt ausgeführt werden um die Systemmatrix und den Rechte-Seite-Vektor aufzubauen. Um jedoch den programmtechnischen Begriff einer Funktion vom Begriff der Kontrollfunktion zu unterscheiden, werden die implementierten Modellfunktionen als Modell bezeichnet.
Nachdem jeder Variablen eine Kontrollfunktion zugeordnet ist, kann die
Zusammenfassung von Kontrollfunktionen zu Modellen auch als
strukturelle Konsequenz der Gruppierung von Variablen zu Quantitäten
gesehen werden. Dementsprechend ist einem Modell eindeutig eine
Quantität zugeordnet, jedoch kann ein Modell außerdem noch weitere
Quantitäten als Parameter benötigen. So verwendet etwa das Modell
zur Berechnung der Raumladung die zugeordnete Potentialquantität und
zusätzlich die Quantitäten für die
Ladungsträgerkonzentrationen. Mit der Potentialquantität werden die
Kontrollfunktionen bestimmt.
Ein Modell berechnet die Einträge für eine bestimmte Gruppe von Zeilen im linearen Gleichungssystem. Der grau hinterlegte Bereich der Systemmatrix in der Abbildung 3.3 enthält die Einträge entsprechend der Ableitungen der Kontrollfunktionen des Modells nach den Variablen der zugeordneten Quantität. Einträge in den Spalten außerhalb dieses Bereichs entsprechen Abhängigkeiten des Modells von anderen Quantitäten. Die Diagonaleinträge des grauen Bereichs enthalten die Ableitungen der Kontrollfunktionen nach den ihnen zugeordneten Variablen.
Der Rang der Systemmatrix ist im Falle der Bauelementsimulation meistens groß, jedoch ist sie spärlich besetzt. Es sind also nur relativ wenige Matrixelemente ungleich Null. Eine Speicherung der gesamten Matrix ist daher nicht nötig und es kann ein MCSR-Datenformat [26] verwendet werden. Nachdem die Wahl der Modelle von der Bauelementstruktur, den Materialien und den zu berechnenden Charakteristika abhängt, ist die Struktur des Gleichungssystems nicht a priori bekannt. Für den Aufbau des Gleichungssystems sind daher spezielle Assemblierungsfunktionen notwendig, die es erlauben, die Struktur des Gleichungssystems flexibel zu halten und trotzdem eine effiziente Assemblierung zu gewährleisten. Der Abschnitt 3.5 beschreibt detailiert die Assemblierung des linearen Gleichungssystems und die funktionale Schnittstelle des entsprechenden Programmoduls.