Bei dieser Datenstruktur, die für direkte Löser verwendet wird, ist die Bestimmung der Anzahl
der benötigten Einträge äußerst einfach, da in einer Zeile der Speicher vom minimalen
Spaltenindex bis zum Diagonaleintrag minus eins zu allozieren ist.
Dazu setzt man die Einträge eines Vektors ,
welche die Länge der Anzahl
aufweist, zunächst auf den Diagonalindex,
also
und vollzieht symbolisch einen Assembliervorgang Element für Element. Mit den globalen
Indizes von
wird nun
folgendermaßen verfahren:
wird auf
gesetzt, wenn
ist.
Außerdem wird nur dann
neu gesetzt, wenn
und
aktive Knoten indizieren
und daher
gilt (Abschnitt 3.9).
Die Anzahl der notwendigen Einträge einer Zeile der strikten unteren Dreiecksmatrix in
hüllenorientierter Struktur ist einfach mit
bestimmt.
Es wird also keine aufwendige Datenstruktur benötigt, um den notwendigen Speicher
für die Matrix vorzubestimmen.
Die Koeffizienten der rechten Seite werden ebenfalls in einer Matrix
abgespeichert, da es
ineffizient wäre, für jeden Energieberechnungslauf eine Neuassemblierung durchzuführen. Für
jeden Lauf wird die rechte Seite Matrix (RHS-Matrix) mit dem Dirichlet-Knotenvektor
ausmultipliziert und das negative Ergebnis wird in die rechte Seite eingetragen.
Die RHS-Matrix wird natürlich in zeilenkomprimierter Struktur abgespeichert und benötigt daher
für die Berechnung des Speicherplatzbedarfs Strukturen und Methoden, wie sie im
folgenden Abschnitt gezeigt werden.