|
Dünn besetze Matrizen aus Finite Element Diskretisierungen zeigen viel
Struktur in ihrem Besetztheitsschema (z.B. die Diskretisierung eines
Systems von drei Komponenten mit linearen Finiten Elementen und
punktweiser Ordnung der Unbekannten). Da diese Struktur bereits zur
Kompilierzeit bekannt ist, kann sie effizient mittels generischer
Programmierung (hier in C++) ausgenutzt werden. Die Iterative Solver
Template Library (ISTL) bietet generische Matrix und Vector APIs
mitsamt Lösern, die eine blockrekursive Struktur unterstützen und
effizient ausnützen.
Das Lösen großer dünn besetzter linearer Gleichungssysteme ist
allgegenwärtig bei der numerischen Lösung partieller
Differentialgleichungen. Steigende Anforderungen von rechnerisch
herausfordernden Applikationen, sowohl die Problemgröße als auch die
Algorithmuskomplexität betreffend, haben zur Entwicklung paralleler
skalierbarer Löserbibliotheken für diese Anforderungen geführt. Eine
der effizientesten Wege Skalierbarkeit zu erzielen ist die Verwendung
von Mehrgittermethoden. Algebraische Mehrgittermethoden (AMG) sind
effiziente Varianten der Mehrgitter Algorithmen, um große
Probleme auf unstrukturierten Gittern zu lösen.
Unser paralleler AMG Algorithmus wurde entwickelt, um die Blockstruktur
in den Matrizen ausnützen. So kann er effizient skalare
Matrizen als auch Blockmatrizen, die gekoppelte Systeme partieller
Differentialgleichungen darstellen, effizient sowohl in der
Aufsetzphase als auch Lösungsphase behandeln. Der Algorithmus ist ein
robuster, effizienter und skalierbarer Vorkonditionierer in
Krylow Methoden zur Simulation von Strömungen durch heterogene Medien.
Als nächsten Schritt soll der Algorithmus zur Lösung linearer Gleichungssysteme
eingesetzt werdeb, die aus Discontinous Galerkin Diskretisierungen
stammen. Vorläufige Tests haben gezeigt, dass der Algorithmus auch für
diesen Fall effizient und robust sein sollte.
|