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:
Wurden alle Knoten, die zu einer Zeile gehören, gelesen, so wird
der Elementszähler in das Feld an der Stelle
eingetragen und das Zeilenfeld bei
Bearbeitung der Zeile
wieder überschrieben.
Nachdem die gesamte
lange ,,ElemOnNodeList`` abgearbeitet wurde, sind die Einträge
der Gesamtmatrix inklusive der Dirichlet-Knoten
bestimmt.
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.