5.8 MOTORRAD- KURBELWELLE, TETRAEDER NR. 16
Die Beispieldatei B11_G.COS in die Z88- Eingabedatei Z88G.COS
umkopieren.
Es soll eine Kurbelwelle für einen Einzylinder- Motorradmotor
berechnet werden. Als Last wirkt die Kolbenkraft von -5.000 N.
Die Vernetzung wurde direkt in Pro/ENGINEER vorgenommen.
Das Besondere an diesem Beispiel ist die Definition der
Randbedingungen,
was für dieses Beispiel etwas tricky ist: An einer Stirnseite
der Kurbelwelle wird zentral ein Bezugspunkt gesetzt. Er wird
später die Verschiebungen in Z- Richtungen, d.h. in
Längsrichtung
der Kurbelwelle, blockieren.
Die Kugellager, die ja gewisse Winkelbewegungen aufnehmen
können
und daher als momentenfreie Auflager angesehen werden können
und müssen, sollen auf den dickeren Wellenabsätzen sitzen.
Es werden die Wellenabsatzflanken in X- und Y- Richtung festgehalten.
Da hier ganze Flächen gesperrt werden, dürfte keinesfalls
einer oder gar beide dieser Flächen in Z- Richtung blockiert
werden. Damit würde man dem System die Momentenfreiheit nehmen
(wie man leicht ausprobieren kann):
Am Kurbelzapfen selbst wird eine Gesamtlast von -5.000N auf die
Umfangsfläche gegeben.
Das Netz wurde automatisch mit Pro/MECHANICA erzeugt, und es werden
Tetraeder mit quadratischem Ansatz gewählt. Nach Erzeugen
der COSMOS- Datei kann die Z88- Berechnung erfolgen:
B11_G.COS umkopieren in Z88G.COS COSMOS- Datei für Konverter
Z88G
Konvertieren Sie also zunächst Z88G.COS mit Z88G
(Windows: COSMOS Konverter Z88G. Sieht bei UNIX ähnlich
aus)
und, da durch die Tetraeder mit quadratischen Ansätzen sehr
schlechte Numerierungen zu erwarten sind, starten Sie dann gleich
den Cuthill- McKee- Algorithmus Z88H.
(Windows: Cuthill- McKee Programm Z88H. Sieht bei UNIX
ähnlich
aus)
Nach Öffnen der Eingabedatei Z88I1.TXT entnehmen Sie die ersten Zeile:
MAXKOI muß mindestens sein: 3.941 Elemente * 10 Knoten je
Element = 39.410.
Damit würde Z88.DYN wie folgt
aussehen:
MAXGS zunächst beliebiger Wert
MAXKOI mindestens 39410
MAXK mindestens 6826
MAXE mindestens 3941
MAXNFG mindestens 20478
MAXNEG mindestens 1
Dann können Sie mit Z88O (oder auch mit Z88P ) die
Struktur betrachten.
Der Rechenlauf mit Z88F dauert bei
einem PC (900 MHz AMD- Prozessor, 512 MByte Hauptspeicher) ca.
1,5 Minuten. MAXGS müssen Sie mit ca. 11.400.000
Speicherplätzen
definieren.
Sie können sodann die verformte Struktur mit Z88O
betrachten. Es ist verblüffend, wie stark sich doch die
Wellenenden
schief stellen. Sie würden nun an ausgewählten Knoten
die Verschiebungen aus der Datei Z88O2.TXT ablesen, mit den
entsprechenden
Hebelarmen multiplizieren und prüfen, ob Ihre Kugellager
diese Schiefstellungen noch mitmachen.
(Windows: Rechenlauf mit Z88F. Sieht bei UNIX ganz ähnlich
aus)
(Windows: Plotprogramm Z88O, unverformte Struktur)
(Windows: Plotprogramm Z88O, verformte Struktur)
Jetzt machen wir den eigentlichen Solverlauf einmal mit dem
Iterationssolver
Z88I1 und Z88I2. Zunächst machen
wir eine versuchsweise Einstellung für MAXSOR und MAXPUF
in Z88.DYN:
COMMON START
MAXGS 11500000 hat für
Z88I1
keine Bedeutung !
MAXKOI 40000 der muss immer gross genug sein !
MAXK 7000 können Sie aus Z88I1.TXT ablesen
MAXE 4000 können Sie aus Z88I1.TXT ablesen
MAXNFG 21000 können Sie aus Z88I1.TXT ablesen
MAXNEG 1 können Sie aus Z88I1.TXT ablesen
MAXSOR 2000000 wichtig für Z88I1
MAXPUF 500000 wichtig für Z88I1
COMMON END
Das hat geklappt mit unseren Einstellungen, die Sortierzeit betrug
ca. 15 Sekunden auf einem PC (900 MHz AMD- Prozessor, 512 MByte
Hauptspeicher).
Für MAXGS lesen wir ab: 768.687, aufgerundet 770.000. Das
ist doch ein Wort gegenüber dem direkten Cholesky- Solver
Z88F mit seinem Bedarf von 11.381.064 Speicherplätzen á
8 Bytes = 87 MByte. Der eigentliche Solverteil des Iterationssolvers,
also Z88I2, wird nur 768.687 Speicherplätzen a´ 8 Bytes
= 6 MByte benötigen.
Damit würden wir den Speicher in Z88.DYN
wie folgt einstellen (größere Werte dürfen Sie
natürlich immer nehmen):
COMMON START
MAXGS 770000 darauf kommt's
an
MAXKOI 40000 der muss immer gross genug sein !
MAXK 7000 können Sie aus Z88I1.TXT ablesen
MAXE 4000 können Sie aus Z88I1.TXT ablesen
MAXNFG 21000 können Sie aus Z88I1.TXT ablesen
MAXNEG 1 können Sie aus Z88I1.TXT ablesen
MAXSOR 2000000 wird jetzt nicht mehr gebraucht
MAXPUF 500000 wird jetzt nicht mehr gebraucht
COMMON END
Wenn Sie die Iterationsparameter in Z88I4.TXT
(Kapitel 3.6) wie folgt einstellen:
10000 1e-7 1.
also höchstens 10.000 Iterationen, EPS mit 1E-7 und RP (hier also Omega) mit 1, dann ergibt sich eine Rechenzeit von ca. 1 Minute auf einem PC (900 MHz AMD- Prozessor, 512 MByte Hauptspeicher).
In diesen Fall sind also Iterationssolver und direkter Cholesky-
Solver also etwa gleich schnell, aber der Iterationssolver braucht
nicht einmal ein Zehntel des Speichers. Bei großen Strukturen
wird dieses Verhältnis noch sehr viel krasser! Beachten Sie
aber, daß die Rechenzeiten nicht wirklich vergleichbar sind,
denn wenn Sie das Abbruchkriterium EPS verändern,
z.B. auf 1E-5 (bedeutet 303 Iterationen und ca. 45 Sekunden) oder
1E-10 (bedeutet 474 Iterationen und ca. 1:08 Minuten), dann iteriert
Z88I2 entsprechend weniger oder mehr und rechnet damit kürzer
bzw. länger.
(Windows: Der Iterationssolver Part 2, also Z88I2)
Ein sehr schönes Experiment ist auch folgendes:
Fangen Sie noch einmal ganz am Anfang an, lassen Sie Z88G laufen,
aber diesmal nicht den Cuthill- McKee Algorithmus Z88H.
Machen Sie direkt nach Z88G einen Testlauf mit Z88F
(UNIX: z88f -t):
(Windows: Der direkte Cholesky- Solver im Testmodus)
Oha, das gibt aber ganz lange Gesichter: Nun würden wir
184.122.663
Speicherplätze á 8 Bytes = 1,4 GByte) brauchen. Das
muß doch wirklich nicht sein!
Wenn Sie nun stattdessen zunächst wieder den Iterationssolver
Part 1, also Z88I1, laufen lassen, dann stellen Sie fest, daß
Sie wiederum nur 768.687 Elemente, d.h. Speicherplätze in
der Gesamtsteifigkeitsmatrix brauchen würden. Bitte rechnen
Sie mit:
184.122.663 : 768.687 = 240 : 1
Der zweite Part des Iterationssolvers, also Z88I2, braucht jetzt etwas mehr Iterationen (451 gegenüber vormals 415 bei jeweils EPS = 1E-7), weil die Matrix zwar genauso viele Nicht- Nullelemente hat, aber schlechter konditioniert ist durch die sehr schlechte Knoten- Numerierung von Pro/MECHANICA. Das bedeutet: Beim Einsatz des Iterationssolvers brauchen Sie normalerweise den Cuthill- McKee Algorithmus Z88H nicht, um Speicher zu sparen (was beim direkten Cholesky- Solver Z88F eklatant sein kann). Allerdings kann er durchaus die Kondition des Gesamtsteifigkeitsmatrix verbessern.