LochscheibeDas Beispiel

Als Beispiel soll das Gleichungssystem dienen, das aus dem Finite-Elemente-Modell der nebenstehend zu sehenden ebenen Rechteckscheibe mit kreisförmigem Loch entsteht. Dieses Beispiel wird hier ausführlich beschrieben. Es ist geradezu ein Klassiker für die Einführung in die Finite-Elemente-Methode, weil damit mit überschaubarem Aufwand eine praktisch wichtige Aufgabe gelöst wird, die sich der analytischen Lösung entzieht.

Wegen der doppelten Symmetrie wird nur ein Viertel der Scheibe vernetzt, und die Punkte auf den Symmetrielinienn werden so gelagert, dass sie sich nur entlang dieser Linien bewegen können.

Das entstehende lineare Gleichungssystem hat beste Voraussetzungen für erfolgreiche Lösungsversuche: Die Koeffizientenmatrix ist symmetrisch, positiv definit und von sehr guter Kondition.

DirektIteraGraphikDie Lösungsverfahren

Das lineare Gleichungssystem wird für unterschiedlich feine Vernetzung erzeugt (rechts sieht man ein vernetztes Scheibenviertel mit 1800 Elementen), die Koeffizientenmatrix wird als "Sparse matrix" gespeichert. Das Gleichungssystem wird mit folgenden von Matlab bereitgestellten Verfahren gelöst:

Das Matlab-Script und die Testrechnungen

Im nachfolgend zu sehenden Script wird das Gleichungssystem in den Zeilen 3 bis 20 erzeugt. Dies ist für die hier anzustellenden Betrachtungen nicht interessant (für Interessenten: Matlab-Femset). In Zeile 3 wird allerdings mit den beiden Paramtern nr und ny die Feinheit des FEM-Netzes und damit die Anzahl der Unbekannten für das lineare Gleichungssystem festgelegt.

In Zeile 23 wird das Gleichungssystem mit dem Matlab-Standard-Solver (direktes Verfahren), in Zeile 30 mit dem Konjugierte-Gradienten-Verfahren gelöst. Als Referenzwert (für die Kontrolle der Genauigkeit der Rechnung) wird die vertikale Aufweitung des Kreisausschnitts infolge der Belastung gewählt (Ausgabe in den Zeilen 25 bzw. 32).

GelochteScheibe

CholincError

Drop
tolerance

Elementanzahl in Dreiecksmatrix

Anzahl erforderlicher
pcg-Iterationen

Gesamt-
rechenzeit [s]
(cholinc + pcg)

 

1

19 682

1124

87,7

Diagonalmatrix

0,1

84 987

455

50,9

 

0,01

297 111

85

12,2

 

0,001

574 918

26

6,9

 

0,0001

1 248 443

11

9,0

 

0,00001

2 906 467

4

16,9

 


CholincCWRechts sieht man im Command Window die Ergebnisse der Berechnung mit der Drop tolerance 0,001, für die sich eine Rechtsdreiecksmatrix mit 574 918 Elementen ergibt. Zum Vergleich: Die komplette Cholesky-Zerlegung ergibt eine Dreiecksmatrix mit 4 022 393 Elementen, die "klassische Variante" des "Incomplete Cholesky" führt auf eine Dreiecksmatrix mit 309 733 Elementen.

Man erkennt in der Tabelle, dass mit einem höheren Füllungsgrad der Dreiecksmatrix, die als Präkonditionierer verwendet wird, das anschließende Iterationsverfahren immer schneller konvergiert. Allerdings erfordert die Herstellung besserer Präkonditionierer auch einen höheren Aufwand. Ein gewisses Optimum ergibt sich bei einer Drop tolerance von 0,001, deshalb werden die folgenden Berechnungen mit unterschiedlich großen Gleichungssystemen mit Präkonditionierern durchgeführt, die mit dieser Drop tolerance erzeugt werden.

Vergleich der Rechenzeiten für Gleichungssysteme unterschiedlicher Größe:

Anzahl der
finiten
Elemente

Anzahl der Gleichungen

Rechenzeit [s] für Standard-Solver (direktes Verfahren)

Anzahl erforderlicher
pcg-Iterationen

Gesamt-
rechenzeit [s]
(cholinc + pcg)

800

5 043

0,61

13

1,05

3 200

19 682

4,44

26

6,88

7 200

43 922

13,8

38

21,1

12 800

77 762

37,6

51

49,2

20 000

121 202

70,7

63

93,2

Fazit

Zum Download verfügbar sind