Dreidimensionales Tragwerk mit biege-, dehn- und torsionssteifen Elementen
Das nebenstehend zu sehende Finite-Elemente-Modell der Brücke über den Nord-Ostsee-Kanal bei Rendsburg besteht aus 1947 Elementen (biege-, dehn- und torsionssteife Träger mit je zwei Knoten), die an 747 Knoten untereinander verbunden sind. Dieses Modell führt auf ein (im Vergleich mit typischen FEM-Modellen eher kleines) Gleichungssystem mit 4482 Unbekannten.
Das FEM-Berechnungsmodell ist in der Datei Rendbrem.dat gespeichert. Bei Verwendung des oben für das 2D-Problem benutzte Matlab-Scripts PraeCondCholInc1.m, wobei nur in Zeile 4 der Name der Datei Rahm17.dat durch Rendbrem.dat zu ersetzen ist, wird man durch die folgende Fehlermeldung darauf aufmerksam gemacht, dass "Incomplete Cholesky" in der klassischen Variante auch für symmetrische und positiv definite Matrizen nicht immer realisierbar ist:
Matlab bietet aber noch andere Aufrufvarianten für die Function cholinc an, speziell kann als zweiter Parameter eine "Drop tolerance" angegeben werden, mit der der Füllungsgrad der Dreiecksmatrix innerhalb der sinnvollen Grenzen beinahe beliebig gesteuert werden kann (es können also auch deutlich weniger Elemente entstehen als bei der klassischen Variante, andererseits auch wesentlich mehr). In den beiden Extremfällen erhält man eine reine Digonalmatrix bzw. das Ergebnis der kompletten Cholesky-Zerlegung.
Das nebenstehend zu sehende Matlab-Script PraeCondCholInc2.m realisiert diese Variante mit einer "Drop tolerance" von 10-3 (Zeile 14). Das Belegungsmuster (von Null verschiedene Elemente) des Ergebnisses der unvollständigen Cholesky-Zerlegung wird in Zeile 16 ausgegeben:
Mit 58161 von Null verschiedenen Elementen ist diese Rechtsdreiecksmatrix etwas stärker besetzt als das obere Dreieck der symmetrischen Koeffizientenmatrix, das 43580 Elemente enthält (also etwas stärker gefüllt als bei "Incomplete Cholesky" in der klassischen Variante). Das Ergebnis im Command Window entsteht nach 1313 Iterationsschritten. Dies ist mehr als bei der entsprechenden Rechnung mit reiner Skalierung:
Das Matlab-Script wurde zusätzlich mit einigen tic- und toc-Aufrufen ausgestattet, um den relativen Anteil des Aufwandes für cholinc und pcg zu ermitteln. Mit verschiedenen Werten für die "Drop tolerance" zwischen 0 und 1 ergaben sich unterschiedlich stark besetzte Rechtsdreiecksmatrizen als Ergebnis der unvollständigen Cholesky-Zerlegung von der reinen Diagonalmatrix ("Drop tolerance" gleich 1) bis zum Ergebnis der kompletten Cholesky-Zerlegung ("Drop tolerance" 0). Die folgende Tabelle zeigt die Ergebnisse einiger Testrechnungen:
"Drop tolerance"
|
nz
|
Zeit cholinc
|
Zeit pcg
|
Zeitsumme
|
Iter.-Schritte
|
1
|
4482
|
0,03
|
10,49
|
10,52
|
915
|
0,1
|
15959
|
0,05
|
40,16
|
40,21
|
2408
|
0,0001
|
118947
|
0,29
|
7,57
|
7,86
|
308
|
0,000000001
|
372563
|
0,79
|
0,38
|
1,17
|
4
|
0
|
397400
|
0,25
|
0,25
|
0,5
|
1
|
|
Dass mit zunehmender Qualität der unvollständigen Cholesky-Zerlegung (hier zu messen an der Anzahl der von Null verschiedenen Elemente nz in der Rechtsdreiecksmatrix) die Präkonditionierung zu schnellerer Konvergenz führt, war zu erwarten. Die beiden Extremwerte sind bemerkenswert:
- Mit der "Drop tolerance" 1 entsteht eine reine Diagonalmatrix als Präkonditionierer, der den Iterationsprozess auf genau die 915 Schritte beschleunigt, die bei den Testrechnungen mit Skalierung benötigt wurden. Kleinere Werte für die "Drop tolerance" liefern mit aufwändiger zu erzeugenden Präkonditionierern zunächst deutlich mehr Iterationsschritte.
- Mit der "Drop tolerance" 0 entsteht die komplette Rechtsdreiecksmatrix der vollständigen Cholesky-Zerlegung, die natürlich dazu führt, dass Konvergenz im ersten Schritt erreicht wird (dieser Fall ist eigentlich die Lösung des Gleichungssystems mit dem Cholesky-Verfahren). Die benötigten Rechenzeiten für die iterative Lösung werden mit aufwändiger werdender Präkonditionierung erwartungsgemäß immer kleiner, aber bei diesem Beispiel ist der Aufwand der vollständigen Cholesky-Zerlegung (und damit die Lösung des Gleichungssystems mit diesem direkten Verfahren) nicht zu unterbieten.
|