4.3.2 Zeilenkomprimierte Struktur



next up previous contents
Next: 4.4 Die Gauß-Transformation Up: 4.3 Vorausberechnung der Anzahl Previous: 4.3.1 Hüllenorientierte Struktur

4.3.2 Zeilenkomprimierte Struktur

Will man die Anzahl von Null verschiedenen Einträge pro Zeile der strikten unteren Dreiecksmatrix berechnen, so ist dies wieder nur mit Hilfe einer symbolischen Vorassemblierung möglich. Jetzt ist es jedoch im Gegensatz zu der hüllenorientierten Struktur notwendig, sich alle Spalteneinträge einer Zeile zu merken, da sonst z.B. zwei verschiedene Elemente mit den gleichen globalen Matrixindizes zwei Speicherplätze veranschlagen würden. Es wäre auch ineffizient, Zeile für Zeile aufzubauen, da dies zu einer Suche nach Knotenreferenzen in der Elementsknotenliste führt.

Die Problematik, daß man die Spaltenindizes einer Zeile speichern muß, damit getestet werden kann, ob ein neuer Elementsindex einen zusätzlichen Eintrag bilden wird, kann nur über eine dynamische Datenstruktur effizient gelöst werden.

Eine einfacher verkettete Liste pro Zeile zur Speicherung der Spaltenindizes ist aber auch etwas speicherintensiver. Bei der Implementierung wurde ein Mittelweg zwischen Suchaufwand und Speicheraufwand gewählt.

Der Vorgang, der zunächst die Elemente findet, die auf einem Knoten hängen, ist folgender:

Zu bemerken ist, daß die Anzahl der Einträge auch für die Dirichlet-Koeffizienten bestimmt wurde, was sinnvoll ist, da auch die Koeffizienten der rechten Seite, die Dirichlet-Knoten , wie schon in Abschnitt 4.3.1 erläutert, in einer zeilenkomprimierten unteren Dreiecksmatrix gespeichert werden.



next up previous contents
Next: 4.4 Die Gauß-Transformation Up: 4.3 Vorausberechnung der Anzahl Previous: 4.3.1 Hüllenorientierte Struktur



Martin Stiftinger
Fri Nov 25 16:50:24 MET 1994