8.3.1 Die Zeilentransformation



next up previous contents
Next: 8.3.2 Die Struktur des Up: 8.3 Der Aufbau des Previous: 8.3 Der Aufbau des

8.3.1 Die Zeilentransformation

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:

  1. Funktionen zum Eintragen von Gleichungskomponenten in den transformierten Teil bzw. des Gleichungssystems. Diese Funktionen werden allgemein verwendet, um die Diskretisierung innerhalb der Segmente (Kapitel 3) einzugeben.
  2. Funktionen zum Eintragen von Weiterleitungsvorschriften in die Zeilentransformationsmatrix . Mit diesen Funktionen kann man eine Spalte der Zeilentransformationsmatrix löschen, also auf Null setzen, und neu belegen.
  3. Funktionen zum Eintragen von Gleichungskomponenten in den nicht transformierten Teil bzw. des Gleichungssystems. Diese Funktionen werden verwendet, um sogenannte Ersatzgleichungen und andere nicht zu transformierende Einträge einzugeben.
Die Zeilentransformationsmatrix ist als Einheitsmatrix vorbelegt, die beiden anderen Matrizen sind als Nullmatrix initialisiert. Jede Spalte der Zeilentransformationsmatrix gibt an, was mit Einträgen passiert, die in der entsprechenden Zeile der Matrix stehen. Ein Eintrag in Spalte , Zeile der Zeilentransformationsmatrix bewirkt, daß die Zeile der Matrix zur Zeile von weitergeleitet wird. Mit der Zeilentransformationsmatrix lassen sich also die Zeilen der Matrix linear kombinieren und in die Zeilen der Matrix übertragen.

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.



next up previous contents
Next: 8.3.2 Die Struktur des Up: 8.3 Der Aufbau des Previous: 8.3 Der Aufbau des



Martin Stiftinger
Fri Oct 21 18:22:52 MET 1994