Sie finden etwas nicht oder wünschen sich Funktionalitäten? Hier können Sie es los werden! /
You are looking for functionalities? Go ahead!

Moderatoren: ccad, SHautsch, auroraIco, Lehrstuhl

vom Fritz
#1775
Ist es möglich die Steifigkeitsmatrix einer linear elastischen Rechnung auszuleiten? (als Text File oder ähnliches)
Habe noch keine Möglichkeit dazu entdeckt.

Natürlich ist es möglich sich viele Lastfälle mit Einheitsverschiebungen (-kräften) zu definieren und damit die Steifigkeits(Nachbiebigkeits-)matrix sozusagen spaltenweise auszuleiten. Das ist jedoch bei vielen Freiheitsgraden (zumindest ohne zusätzliches Skript, welches Z88 über die Komanndozeile steuert) nicht praktikabel und ineffizient oberdrein.

Das wäre insbesondere dann für mich interessant, wenn man das mit Reduktionsverfahren (Guyan oder ähnliches) kombinieren könnte.

Hintergrund ist hierbei, dass ich für elastiasche MKS Berechnungen des Öfteren Massen- und Steifigkeitsmatrizen von Bauteilen benötige.
Da diese in Z88 sowieso schon intern vorhanden sind, wäre es für mich sehr praktisch diese auch herraus zu bekommen.
vom mifris
#1924
Hallo Fritz,

ich verstehe sehr gut, was Sie meinen. Leider geht das in Z88Aurora nicht. Hierfür kann ich Ihnen nur empfehlen, dass Sie sich die Z88OS V14 herunterladen. Dort sind alle C-Quellen der Elastostatik frei verfügbar. Die Steifigkeitsmatrix könnten Sie sich relativ einfach mit einem printf-Befehl an der richtigen Stelle ausgeben lassen, bei der Massenmatrix jedoch wird es schwieriger. Hier müssten Sie diese selbst programmieren.
Wir werden Ihre Anregung auf jedenfall besprechen. Vielen Dank hierfür. :-)

Viele Grüße

Michael Frisch
Benutzeravatar
vom mz15
#1989
Hallo Fritz,

wie Sie schon gesagt haben
Fritz hat geschrieben: Natürlich ist es möglich sich viele Lastfälle mit Einheitsverschiebungen (-kräften) zu definieren und damit die Steifigkeits(Nachbiebigkeits-)matrix sozusagen spaltenweise auszuleiten.
ist das ein moeglicher Weg. Um das Probelem mit den Lastfaellen zu umgehen, kann ein "MASTER-Projekt" weiterhelfen. Sie machen sich einen Ordner in dem alle Eingabedaten liegen und aendern dann ueber ein kleines PERL oder C-Programm die Eingabedatei z88i2.txt. Der Solver kann leicht ueber Konsole angesteuert werden und die Ausgabedaten enthalten die Wert die Sie auch nur ueber eine eigenens kleines Skript auslesen koennen. Das ann dann alles automatisch laufen und wenn Sie einen Kaffee getrunken haben ist die Matrix da :D (wenn das Beispiel klein genug ist).

Bei Grossen Beispielen koennen Sie das ja ueber Nacht laufen lassen.

Gruss
mz15
vom 0711amr
#3519
mifris hat geschrieben:
Mo 15. Apr 2013, 21:57
...Dort sind alle C-Quellen der Elastostatik frei verfügbar. Die Steifigkeitsmatrix könnten Sie sich relativ einfach mit einem printf-Befehl an der richtigen Stelle ausgeben lassen, ...
Hallo Michael,
hallo Z88-Forum,

gerne würde ich diesem Hinweis folgendermaßen nachgehen:
In meinem Fall möchte ich von einem 3D-Fachwerk (Typ 4 Stäbe im Raum: 6780 Stäbe) die Matrix ausgeben lassen (direkt ermittelte, per Cholesky-Löser Steifigkeitsmatrix: 5088x5088 Einträge).

Nun bin so weit, dass ich entdeckt habe, dass
1)in src/z88r/common/m1.c die lokalen und globalen Elementmatrizen von stab88.c (Stab im Raum) erstellt werden,
2)in .../m3.c die Verformungen, Kräfte am Stab (ssta88.c) ermittelt werden,
3)in src/z88r/common/choy88.c wohl (?) per Cholesky die System-Steifigkeitsmatrix ("GS", richtig?) assembliert wird,
4)in src/z88r/common/z88cr.c die Randbedingungen eingearbeitet werden,

darum habe ich folgende Fragen:
Werden zuerst in z88cr.c die Randbedingungen in GS eingebaut, und diese Matrix anschließend als Systemsteifigkeitsmatrix assembliert? oder umgekehrt? Gilt für meinen Fall icflag 1 oder 0? Das ist aus der Anleitung nicht ersichtlich. Da am Ende auf choy88 verwiesen wird, gehe ich von der zuerst beschriebenen Reihenfolge aus (und von ICFLAG=0).

Es müsste doch also ausreichen, wenn ich in die neu zu erstellende Datei z88o9.txt ausleiten möchte, unter Zeile 209 n choy88.c die Befehle
f09= fopen(co9,"w+");
fprintf(fo9,GS);
fclose(f0o9);
einzugeben...?

Klappt aber leider nicht so ganz, entweder bin ich an der falschen steööe oder meine sehr bescheidenen C-Künste kommen da nicht mit:/ :roll:

Gruß,
Andreas
vom JWittmann
#3522
Hallo Andreas,
0711amr hat geschrieben: Werden zuerst in z88cr.c die Randbedingungen in GS eingebaut, und diese Matrix anschließend als Systemsteifigkeitsmatrix assembliert? oder umgekehrt?
Zuerst wird die Gesamtsteifigkeitsmatrix (= Systemsteifigkeitsmatrix) erstellt und anschließend werden in z88cr.c die Randbedingungen eingebaut.
0711amr hat geschrieben: Gilt für meinen Fall icflag 1 oder 0? Das ist aus der Anleitung nicht ersichtlich. Da am Ende auf choy88 verwiesen wird, gehe ich von der zuerst beschriebenen Reihenfolge aus (und von ICFLAG=0).
Der Übergangsparameter ICFLAG definiert den Solver und Sie können diesen indirekt bestimmen über den Programmaufruf:
  • z88r.exe -c -choly entspricht ICFLAG=0
  • z88r.exe -c -siccg entspricht ICFLAG=1
  • z88r.exe -c -sorcg entspricht ICFLAG=2
0711amr hat geschrieben: Es müsste doch also ausreichen, wenn ich in die neu zu erstellende Datei z88o9.txt ausleiten möchte, unter Zeile 209 n choy88.c die Befehle
f09= fopen(co9,"w+");
fprintf(fo9,GS);
fclose(f0o9);
einzugeben...?
Nein. Sie müssen an einer Stelle in z88cr.c eingreifen, welche noch vor der Skalierung ist, da fortlaufend die Diagonaleinträge auf 1 geändert werden. Um die GS-Matrix zu exportieren, bedarf es einiger Hintergrundinformationen (Pointervektoren iz und iez), da es sich um ein sparse-Format handelt. Hierfür kann ich Ihnen das Buch Finite Analyse für Ingenieure empfehlen.

Gruß,
Johannes
Gesamtsteifigkeitsmatrix

Hallo Andreas, Im Forum "AUSLEITEN VON (REDU[…]

Hallo Andreas, Werden zuerst in z88cr.c die Ran[…]

Installation ohne Admin-Rechte

Hallo SHautsch, danke für deine Antwort. Lei[…]

API

Hallo Simon, wir arbeiten aktuell an einem Redesi[…]