Für die Behandlung von Randbedingungen wurde in Abschnitt 6.5.5 ein allgemeingültiges Schema angegeben, in dem etwas unscharf von ,,Weiterleiten`` von Gleichungsbeiträgen, von ,,Abschwächen`` und von ,,Ersatzgleichungen`` die Rede ist. Diese Begriffe können nun hier präzisiert werden, indem die Methode der Zeilentransformation vorgestellt wird, die alle mit Randbedingungen und ähnlichen Problemen zusammenhängenden Fragen auf elegante Weise beantwortet.
Die Matrix eines Gleichungssystems wird dabei aus zwei Teilen überlagert, nämlich einem direkten Teil (B wie boundary) und einem transformierten Teil (S wie segment). Der letztere wird, bevor er Bestandteil der Systemmatrix wird, von links mit einer allgemeinen Matrix, der sogenannten Zeilentransformationsmatrix , multipliziert:
In ebensolcher Weise setzt sich der Rechte-Seite-Vektor zusammen:
Die folgenden Operationen werden immer gemeinsam für die Matrix des Systems und den dazugehörigen Rechte-Seite-Vektor durchgeführt. Dabei enthält immer die rechte Seite Werte von Kontrollfunktionen, die Matrix enthält deren negative Ableitungen nach den Variablen.
Die Überlagerung (8.2, 8.3) geschieht gleich beim Aufbau der Systemmatrix . Vom Gleichungsassembler werden drei Arten von Funktionen zur Verfügung gestellt:
Aus den ursprünglichen Kontrollfunktionen, die im Kapitel 2.4.2 definiert wurden, entstehen durch die Zeilentransformation Teile der sogenannten Gesamtkontrollfunktionen, die dann durch die Matrix zu den vollständigen Gesamtkontrollfunktionen ergänzt werden.
An den Punkten innerhalb der Segmente ist im allgemeinen keine besondere Zeilentransformation definiert. Dadurch, daß die Transformationsmatrix als Einheitsmatrix vorbelegt ist, werden die Zeilen von direkt auf abgebildet. Für Punkte im Segmentsinneren ist also jene Kontrollfunktion, die Bestandteil der Matrix ist, gleichzeitig die Gesamtkontrollfunktion.
An Randpunkten wird der Diagonaleintrag der Transformationsmatrix dazu benützt, die ursprüngliche Kontrollfunktion abzuschwächen. Diese Abschwächung kann dazu dienen, um die Einträge in der Gesamtmatrix in die gleiche Größenordnung zu bringen, die Gleichung also so zu skalieren, daß sie gegenüber den anderen Gleichungen der Matrix keine extrem großen Koeffizienten enthält. Je nach dem verwendeten Skalierer und Präkonditionierer bei der Gleichungslösung des Gesamtsystems kann das günstige Einflüsse auf die Konvergenzgeschwindigkeit haben.
Wenn der Diagonaleintrag der Transformationsmatrix Null ist, dann gelangen die Einträge der zugeordneten Zeile in der Matrix nie in die ensprechenden Zeile der Gesamtmatrix . In diesem Fall muß das Randbedingungsmodell, das die Abschwächung mit dem Faktor 0, also die Auslöschung, veranlaßt hat, eine Ersatzgleichung für diese Zeile der Matrix in der Matrix eintragen.
Wird dagegen die Zeile mit einem Faktor, der von Null verschieden ist, abgeschwächt, so entsprechen die Einträge in der parallelen Zeile der Matrix einem zusätzlichen Flußterm, der zu der abgeschwächten Kontrollfunktion dieser Zeile addiert wird.
Nebendiagonaleinträge einer Spalte der Transformationsmatrix sorgen für eine Weiterleitung der entsprechenden Kontrollfunktionen. So kann zum Beispiel die Gleichung für den Elektronenstrom am Ohmschen Kontakt nach der Vorschrift (6.31) gebildet werden, indem bei allen angrenzenden Halbleiterboxen ein entsprechender Eintrag in die Transformationsmatrix erfolgt, der die Kontrollfunktion der Elektronenkonzentration in der Halbleiterrandbox zur Gleichung für den Elektronenstrom am Kontakt weiterleitet.
Die Transformationsmatrix und die nicht transformierte Matrix werden beide von den Modellen für die Randbedingungen belegt, die Matrix von den Modellen für das Segmentsinnere. Damit ist eine funktionale Trennung in unabhängige Programmteile erreicht, und trotzdem setzt sich die Systemmatrix aus beiden Teilbereichen korrekt zusammen.