Next: 5.5 Unvollständige Zerlegungen
Up: 5.4.4 Das parallele Verfahren
Previous: 5.4.4.2 Variante 2 : Gauß-Seidel-Jacobi
5.4.4.3 Variante 3 : Gauß-Seidel-Blocklöser
Im Unterschied zu Variante 2, welche (5.3b) und (5.3d)
durch ein etwas schlechteres Verfahren ersetzte, werden nunmehr
die entsprechenden Blocksysteme direkt gelöst.
Voraussetzung für eine parallele Auflösbarkeit ist die in
Abschnitt 4.3.1 geforderte Blockstruktur der akkumulierten
Matrizen
und
(siehe auch Netzanforderungen 3a und 3b).
Die Matrixeinträge
aus
sind für Kanten und lineare Ansatzfunktionen tridiagonal und
lassen sich somit problemlos invertieren (Thompson/Progonka).
Die Matrix
ist normalerweise eine Diagonalmatrix.
Genauso wie zwischen den Blöcken ''
'' wird im Teilgebietsinneren
die Gauß-Seidel-Iteration ausgeführt. Durch die partielle
Anwendung eines direkten Lösers ist die Konvergenzgeschwindigkeit
etwas besser als beim GausSeidel Verfahren.
Berücksichtigt man, daß die Crosspoints (''
'') und die
Interfacedaten (''
'') in jedem Falle getrennt akkumuliert werdem, dann
wird pro Iterationsschritt nur genausoviel Kommunikation wie
beim
-Jacobi Verfahren (Algorithmus 5.6) benötigt,
allerdings ist der Vorbereitungsschritt durch die Akkumulation der Matrix
(tridiagonal) fast 3-mal so aufwendig.
Die akkumulierten Matrizen
und
müssen
in obigem Algorithmus
zusätzlich gespeichert werden, da die nichtakkumulierten
Matrizen
und
noch in den Matrix-mal-Vektor
Operationen benötigt werden.
Falls kein Abbruchtest nötig ist, z.B. bei Verwendung als Glätter mit
einer fixen Anzahl von Schritten, kann man die Berechnung der
Skalarprodukte weglassen und
identisch
wählen.
Aufgabe :
Geben Sie eine Variante von Algorithmus 5.11 an, welche
ohne die doppelte Abspeicherung von
und
auskommt !
Next: 5.5 Unvollständige Zerlegungen
Up: 5.4.4 Das parallele Verfahren
Previous: 5.4.4.2 Variante 2 : Gauß-Seidel-Jacobi
Gundolf Haase
1998-12-22