1.4 Dynamischer Speicher Z88
Speichersteuerdatei Z88.DYN und Filechecker Z88V
Alle Z88- Module fordern Memory dynamisch an. Obgleich Z88 mit
Standardwerten in Z88.DYN geliefert wird, kann und soll der Anwender
diese Werte anpassen. Dazu wird die Datei Z88.DYN editiert.
Ferner wird in Z88.DYN die Sprache definiert. Tragen Sie
in eine Zeile, am besten zwischen DYNAMIC START und NET START,
die gewünschte Sprache als GERMAN oder ENGLISH
ein.
Z88.DYN beginnt mit dem Schlüssel DYNAMIC START und
endet mit DYNAMIC END. Dazwischen gibt es eine Sektion für
den Netzgenerator (NET START, NET END), eine für alle Module
gemeinsame Sektion (COMMON START, COMMON END), eine Sektion für
das Plotprogramm (PLOT START, PLOT END) und eine Sektion für
das Cuthill- McKee- Programm (CUTKEE START, CUTKEE END). .Dazwischen
können beliebig Leerzeilen oder Kommentare sein, es werden
nur die großgeschriebenen Schlüsselworte erkannt. Nach
dem jeweiligen Schlüssel folgt eine Integerzahl, durch mindestens
ein Leerzeichen getrennt. Die Reihenfolge der Schlüsselworte
ist beliebig.
Mit dem Filechecker Z88V können
Sie den in Z88.DYN definierten Datenspeicherbedarf für die
speicherkritischen Module Z88F, Z88I1, Z88I2,
Z88X, Z88N und Z88P
feststellen. Zu den jeweiligen Werten müssen Sie noch ca.
200 KByte für die Programm-Module addieren, was bei Windows
und bei UNIX allerdings vernachlässigbar ist.
Ein Anpassen der Speicheranforderung ist durchaus sinnvoll.
Fordern Sie aber nicht unnötig viel Speicher
an, da dies, insbesonders bei virtuellem Memory, Geschwindigkeitseinbußen
bedingt.
Bei großen Strukturen lassen Sie am besten einen Test laufen.
Je nach Solver gehen Sie wie folgt vor:
Der direkte Cholesky- Solver Z88F:
Windows :Z88F > Mode > Testmode, Berechnung > Start
UNIX: z88f -t (Console) oder Z88F mit Option Test (Z88COM)
laufen. Erhalten Sie hier z.B. GS= 100.000, dann schreiben Sie
in Z88.DYN für MAXGS vielleicht 120.000, aber nicht 1.000.000
! Dann überschlagen Sie den Gesamtspeicherbedarf, wie weiter
unten beschrieben, bzw. nutzen Sie Z88V.
Bei großen Strukturen für Z88 gehen Sie also in 2 Schritten
vor:
1. MAXGS feststellen mit
Windows :Z88F > Mode > Testmode, Berechnung > Start
UNIX: z88f -t (Console) oder Z88F mit Option Test (Z88COM)
2. Z88.DYN ggf. korrigieren, Datenspeicherbedarf Z88F mit Z88V
ermitteln
(Ablesen des Speicherbedarfs MAXGS und MAXKOI bei Windows.
Bei UNIX sieht das sinngemäß aus)
Der Iterationssolver Z88I1 und Z88I2:
Hier gibt es keinen Testmode, denn der erste Teil des Iterationssolvers,
d.h. Z88I1, ermittelt diesen Bedarf und zeigt ihn für den
zweiten Part, d.h. Z88I2, an:
(Ablesen des Speicherbedarfs MAXGS und MAXKOI bei Windows.
Bei UNIX sieht das sinngemäß aus)
Allerdings ist das Vorgehen beim Iterationssolver etwas subtiler,
denn Sie müssen vorab Speicher MAXSOR für den eigentlichen
Aufbau der Sparse- Matrix bereitstellen. Es gibt leider keine
Möglichkeit, diesen Speicherbedarf vorab zu schätzen,
aber Z88I1 teilt Ihnen mit, wenn dieser Wert zu klein war. Sie
müssen ihn dann in Z88.DYN erhöhen und Z88I1 erneut
starten. Den Wert MAXPUF in Z88.DYN stellen Sie so ein, daß
er etwa ein Viertel bis ein Zehntel des Wertes von MAXSOR hat,
z.B. so:
MAXSOR 5000000
MAXPUF 500000
Bei großen Strukturen für Z88 gehen Sie also beim direkten
Solver in 3 oder mehr Schritten vor:
1. Z88I1 starten
2. Wenn Z88I1 sauber gelaufen ist, Werte für MAXGS und
MAXKOI ablesen und Z88.DYN ggf. korrigieren. Damit ist der
Speicher für den eigentlichen Solver Z88I2 eingestellt.
3. Wenn Z88I1 abbrach, weil MAXSOR zu niedrig war, MAXSOR in
Z88.DYN erhöhen und Z88I1 erneut starten. Wählen Sie
für MAXPUF etwa Viertel bis ein Zehntel des Wertes von MAXSOR.
Ggf. diesen Schritt solange wiederholen, bis Z88I1 sauber durchläuft.
Stellen Sie sicher, daß Ihr Swapper-Space ausreichend ist.
Gegebenenfalls einstellen:
Windows NT/95:
Start > Einstellungen > Systemsteuerung > System >
Leistungsmerkmale > virtueller Arbeitsspeicher , ggf. >
ändern. Die Größe der permanenten Auslagerungsdatei
wählen Sie nach eigenen Vorstellungen.
UNIX:
Je nach System kann die Swap- Partition problemlos dynamisch vergrößert
werden oder es muß ein zusätzliches Swap- File angelegt
werden oder die Swap- Area muß gelöscht und vergrößert
neu angelegt werden.
Ich empfehle eine Größe zwischen 100 und 1000 MByte.
Der Wert hängt von der zu rechnender FE-Strukturgröße
ab. Erhalten Sie bei einem Rechenmodul (meist von Z88F) eine Meldung
"Nicht genügend dynamisches Memory", dann setzen
Sie die Größe der Auslagerungsdatei hoch.
Von Z88 her gibt es keinerlei Grenzen für
die Größe der Strukturen. Die maximale Größe
wird nur durch den virtuellen Speicher Ihres Computers und Ihre
Vorstellungskraft begrenzt !
Die Z88- Module prüfen, ob die vorgegebenen Werte für
das aktuelle Problem ausreichen, bzw. Limits erreicht sind, und
brechen ggf. ab.
Bei kommentarlosem Abbruch eines Z88- Moduls dessen .LOG -Datei
betrachten. Oft ist MAXKOI zu klein gewesen!
Die mitgelieferten FEA-Beispieldateien kommen mit den gelieferten
Standard-Einstellungen in Z88.DYN absolut aus. Sie nehmen dann
in Z88.DYN Veränderungen vor, wenn Sie eigene, große
Strukturen rechnen wollen.
In den .LOG- Dateien wird bei Erfolg der erforderliche Datenspeicher
protokolliert, dazu kommt natürlich der Speicher für
das eigentliche Programm, lokale Arrays und Stack, den man allerdings
bei Windows vernachlässigen kann.
Zu beachten ist: Z88 arbeitet normalerweise bei
Gleitkomma- Zahlen mit doubles = 8 Bytes
Ganzzahlen mit longs = 4 Bytes.
Bei bestimmten UNIX- Maschinen können die Solvermodule so
compiliert (Direktiven FR_XQUAD und FR_XLOLO) werden, daß
sie mit
Gleitkomma- Zahlen mit long doubles = 16 Bytes
Ganzzahlen mit long longs = 8 Bytes.
rechnen. Nur für Spezialisten!
Speicherkritisch sind Z88F, Z88I1, Z88I2,
Z88P, Z88X und Z88N. Für die Module Z88D,Z88E und Z88V gilt:
Läuft Z88F bzw. Z88I1 und Z88I2, laufen auch diese Module.
Es folgt die allgemeine Beschreibung für Z88.DYN.
DYNAMIC START
Sprache einstellen:
GERMAN oder ENGLISH. Wird hier nichts bzw. falsch angewählt,
wird automatisch englische Sprache eingestellt.
Sektion Netzgenerator:
NET START
MAXSE Maximale Anzahl interner Knoten für FE- Netzerzeugung. Muß deutlich höher sein als erzeugte FE- Knoten.
MAXESS Maximale Anzahl Superelemente
MAXKSS Maximale Anzahl Superknoten
MAXAN Maximale Anzahl von Knoten, die jeweils an ein Superelement anschliessen können. Der Standardwert von 15 hat sich selbst für komplexe Raumstrukturen mit Hexaedern Nr. 10 bewährt. Kann im Zweifelsfall hochgesetzt werden.
NET END
Gemeinsame Daten:
COMMON START
MAXGS Maximale Anzahl Plätze in der Gesamtsteifigkeitsmatrix. Anzahl GS wird bei Z88F und Z88I1 ausgewiesen.
MAXKOI Maximale Anzahl Plätze im Koinzidenzvektor = Anzahl Knoten pro Element mal Anzahl Finite Elemente. Beispiel: 200 Finite Elemente Typ 10 = 20 Knoten/Element x 200 = 4000. Bei gemischten Strukturen geht man von dem Elementtyp aus, der die meisten Knoten hat und multipliziert mit der Gesamtanzahl Elemente. Benötigte Anzahl NKOI wird bei Z88F und Z88I2 ausgewiesen.
MAXK Maximale Anzahl Knoten der Struktur.
MAXE Maximale Anzahl Elemente der Struktur.
MAXNFG Maximale Anzahl Freiheitsgrade der Struktur.
MAXNEG Maximale Anzahl Elastizitätsgesetze der Struktur.
MAXSOR Nur für Iterationssolver Part 1, d.h. Z88I1. Z88I1 verwendet einen Vektor für Sortierzwecke, der die Größe MAXSOR hat. Es gibt leider keine Möglichkeit, diesen Speicherbedarf vorab zu schätzen, aber Z88I1 teilt Ihnen mit, wenn dieser Wert zu klein war. Sie müssen ihn dann erhöhen und Z88I1 erneut starten.
MAXPUF Nur für Iterationssolver Part 1, d.h. Z88I1.
Startet das Zwischensortieren. MAXPUF sollte ca. 1/4 bis 1/10
von MAXSOR betragen
COMMON END
Für Plotprogramm Z88P:
PLOT START
MFACCOMMON Folgende Werte aus COMMON werden mit dem hier stehenden Faktor multipliziert: MAXKOI, MAXE, MAXK. Standardfaktor 2. Ist für Überprüfungen von Eingabefiles, die der Netzgenerator erzeugt hat, sinnvoll.
MAXGP Maximale Anzahl Gaußpunkte für Spannungsplots. Beispiel: 200 Finite Elemente Typ 10, Integrationsordnung 3: Pro Element dann 3 x 3 x 3 = 27 Gaußpunkte/Element, also 27 x 200 = 5400 Gaußpunkte.
PLOT END
Für den Cuthill- McKee- Algorithmus:
CUTKEE START
MAXGRA Maximaler Grad der Knotenpunkte
MAXNDL Stufen des Algorithmus
CUTKEE END
DYNAMIC END
Wie schon erwähnt, können Sie mit Z88V
feststellen, was die diversen Z88- Module an Speicher anfordern.
(Definierten Speicher bei Windows anzeigen lassen. Geht bei
UNIX sinngemäß)