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.