8.3.2 Die Struktur des Gleichungssystems



next up previous contents
Next: 8.3.3 Die Vorelimination Up: 8.3 Der Aufbau des Previous: 8.3.1 Die Zeilentransformation

8.3.2 Die Struktur des Gleichungssystems

Um die Vergeudung von Speicherplatz zu vermeiden, liegt jeder Beschäftigung mit großen Gleichungssystemen die Speicherplatzminimierung zugrunde. Die Wahl des Speicherformats der Matrix spielt dabei eine große Rolle. Dieses Speicherformat wird nicht zuletzt bestimmt durch die Struktur des Gleichungssystems.

Mehrere Gründe führen dazu, daß dem Gleichungssystem des neuen Simulators eine unregelmäßige Struktur zugrundeliegt:

  1. Es enthält beliebig viele Größen mit beliebiger Anzahl von Variablen.
  2. Es enthält für Grenzschichtpunkte zwei Variablen, die zu zwei verschiedenen Größen auf zwei Segmenten gehören. Von diesen muß eine Variable voreliminiert werden.
  3. Exakte Kontaktstromintegration erfordert für den Kontaktstrom eine Gleichung, die Komponenten aller anliegenden Boxen enthält.
  4. An Kontakten sind viele Hilfsgrößen/-variablen definiert, deren Verknüpfung keine regelmäßige Struktur aufweist.
  5. Zusammenlegung von Boxen an Materialgrenzen und Anliegen verschiedenartiger Terminalbedingungen erlauben keine a-priori-Kenntnis über die Gleichungsstruktur.
Außer der Tatsache, daß die Hauptdiagonale immer besetzt ist und daß das Gesamtgleichungssystem nur spärlich gefüllt ist, sind keine weiteren Angaben über die Struktur des Gleichungssystems möglich.

Als Matrixformat wurde aus diesen Gründen MCSR [64] (modified compressed sparse row, Bild 8.1) gewählt. Dieses Format besteht aus einem ganzzahligen Feld, das in seinem ersten Abschnitt für jede Zeile der Matrix den Beginn und das Ende des zugehörigen Nebendiagonalbereichs im zweiten Abschnitt angibt. Der zweite Abschnitt enthält die Spaltennummern der Nebendiagonaleinträge. Außer dem ganzzahligen Feld gibt es noch eines mit reellen Zahlen, das erst die Hauptdiagonaleinträge der Matrix enthält, dann die Nebendiagonalen, nach Zeilen sortiert. Damit der zweite Abschnitt parallel zum ganzzahligen Feld verläuft, muß ein reeller Speicherplatz frei bleiben.

Dieses Format verbraucht pro nichtverschwindendem Matrixeintrag einen reellwertigen und einen ganzzahligen Speicherplatz. Das ergibt bei typisch 4 Byte Speicherplatzgröße für eine ganze Zahl und 8 Byte für eine reelle einen maximalen Mehrbedarf von 50 % gegenüber dem theoretischen Grenzfall, daß die Matrixstruktur exakt bekannt ist und ohne zusätzliche Strukturinformation manipuliert werden kann, in welchem Fall man nur den reellwertigen Speicherplatz benötigt.

 

Die Transformation der Matrix wird unmittelbar mit dem Eintragen der Matrixelemente durchgeführt, sodaß es möglich ist, gleich die Gesamtmatrix zusammenzustellen und Speicherplatz zu sparen. Dazu ist es notwendig, die Transformationsmatrix im Vorhinein festzulegen. Es wird also ein zweistufiges Verfahren angewandt, wobei in der ersten Stufe die Transformationsmatrix gebildet wird, die dann in der zweiten Stufe zum eigentlichen Matrixaufbau dient.

Da die Transformationsmatrix in den meisten Zeilen nur den Hauptdiagonaleintrag enthält, wird sie einfach als Einheitsmatrix initialisiert, und es werden nur die Änderungen abgespeichert.

Durch diese Maßnahmen erhält man eine relativ kompakte Gleichungsstruktur.



next up previous contents
Next: 8.3.3 Die Vorelimination Up: 8.3 Der Aufbau des Previous: 8.3.1 Die Zeilentransformation



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