Autor
|
Thema: Python Script - Nodeliste Reihenfolge ändern (889 / mal gelesen)
|
aeaelxndr Mitglied
Beiträge: 9 Registriert: 25.03.2016
|
erstellt am: 17. Apr. 2016 17:48 <-- editieren / zitieren --> Unities abgeben:
Hallo, als Modell habe ich einen Würfel an dem ich die Knoten einer Seite (rechts) in ein Set schmeiße und das selbe mit den Knoten auf der gegenüberliegender Seite (links). Jetzt möchte ich die Reihenfolge dieser Python-Listen (bzw. Sets) so anpassen, dass die gegenüberliegenden Punkte in der jeweiligen Liste auf der selben Stelle stehen. also: rechts(1,2,3,4) links(5,6,7,8) Nodelabel 5 ist der gegenüberliegende Punkt von N.lbl. 1; N.lbl. 6 ist der ggü.liegender Punkt von N.lbl 2, etc. pp. Wenn wir davon ausgehen, dass die Seiten normal zur x-Achse sind und wir die Reihenfolge von "rechts" so bestehen lassen, dann müsste ich die Reihenfolge von links anpassen. Die Idee hierbei ist, dass ich eine neue sortierte Liste generiere: Wenn y-Koordinate und z-Koordinate mit den Koordinaten des ersten Knotens in rechts übereinstimmt, dann füge es der Liste hinzu. Im nächsten Schritt soll er dann den Knoten hinzufügen, dessen y- & z-Koordinaten mit dem zweiten Eintrag aus "rechts" übereinstimmen.
Habt ihr eine Anregung/Idee, wie ich das anstellen kann? Ich arbeite mich erst seit wenigen Tagen in Python ein und wäre für jede Hilfe dankbar! Kennt ihr hilfreiche Websites bei dem ggf Algorithmen etc in Bezug auf Abaqus zur Verfügung gestellt werden?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 19. Apr. 2016 21:41 <-- editieren / zitieren --> Unities abgeben: Nur für aeaelxndr
Das hat nichts direkt mit Abaqus zu tun. Alle Daten stehen als Text in der .inp. Du musst diese lesen und dir überlegen, wie du dann ans Ziel kommst. Das ganze ist nicht trivial, da du außerdem an allen anderen Stellen die geänderten Knotennummern austauschen musst. Z.B. bei der Elementdefinition oder in Knotensets. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hempres Mitglied
Beiträge: 84 Registriert: 30.06.2008
|
erstellt am: 20. Apr. 2016 09:23 <-- editieren / zitieren --> Unities abgeben: Nur für aeaelxndr
Hi, so wie ich es verstanden habe geht es nur um Sets. Das habe ich auch schon einmal gemacht um periodische Randbedingungen aufzugeben. Allerdings habe ich Matlab verwendet, weil ich damals Python noch nicht mochte ;-) Du musst eben "nur" den jeweiligen Knoten finden, der z.B. die (fast) gleiche x-Koordinate auf der gegenüberliegende Seite hat. Ist eben etwas Programmierarbeit. Zusätzlich brauchst Du die Option unsorted in *Nset. Grüße
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
aeaelxndr Mitglied
Beiträge: 9 Registriert: 25.03.2016
|
erstellt am: 20. Apr. 2016 17:34 <-- editieren / zitieren --> Unities abgeben:
Jap, es geht nur um Sets. Habe es mittlerweile mit Python umgesetzt. Ich lege einfach einen neuen Set an und Vergleich die zwei Koordinaten des 2. unsortierten Sets mit dem 1. Set. Den ersten Set nehme ich dabei als vorgegebene Reihenfolge an. Ich benötige es ebenfalls für die PBC. Hat das irgendwelche Vorteile es mit Matlab zu machen?! Oder hast du es mehr oder weniger aus "Bequemlichkeit" gemacht, weil Abaqus dazu ein Paper mit entsprechenden Code zur Verfuegung stellt. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
aeaelxndr Mitglied
Beiträge: 9 Registriert: 25.03.2016
|
erstellt am: 20. Apr. 2016 17:36 <-- editieren / zitieren --> Unities abgeben:
|
aeaelxndr Mitglied
Beiträge: 9 Registriert: 25.03.2016
|
erstellt am: 22. Apr. 2016 12:05 <-- editieren / zitieren --> Unities abgeben:
Ich könnte eure Hilfe wieder gebrauchen: Wie ermittele ich am einfachsten die gemittelte Spannungskomponenten? Meine manuelle Vorgehensweise(noch ohne Skript) ist so, dass ich mir die "Total Spannungskomponente" in der Resultsfile hernehme und diese durch die Knotenanzahl teile. Durch diese Vorgehensweise kann ich mit guter Näherung die Materialdaten eines homogenen Stahlblock "reproduzieren" (als Validierung). Meine Frage hierzu zunächst, gibt es eine einfache Möglichkeit diesen Total Wert direkt abzufragen? Oder müsste ich die Spannungswerte jedes einzelnen Knotens aufsummieren. Auch hier: Wie erhalte ich DIE "Liste" mit allen Spannungswerten? Eines meiner RVE funktioniert einwandfrei mit dem Python Skript. Beim zweiten habe ich Probleme, da die relevanten Koordinaten nicht exakt den selben Wert teilen, sondern kleine Abweichungen gibt. Gibt es hier eine simple Möglichkeit das selbe Knotennetz auf gegenüberliegende Seiten zu projetieren? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hempres Mitglied
Beiträge: 84 Registriert: 30.06.2008
|
erstellt am: 22. Apr. 2016 13:00 <-- editieren / zitieren --> Unities abgeben: Nur für aeaelxndr
Ich habe Deine Mittelung nicht verstanden. Wo geht bei Dir das Volumen ein. Die einfachste Methode, die ich kenne um an die gemittelte Spannung zu kommen, ist über die Reaktionskraft eines Dummyknotens, den Du für die Equations verwendest. Dann muss man nur noch durch die Fläche teilen und bekommt direkt die Spannung. Eine Methode, um gegenüberliegende Knoten zu bekommen, kenne ich nicht. Zur not tuen es aber gleichmäßig vernetzte Schalenelemente, die Du auf die Oberfläche deines RVE klebst. Habe ich zwar auch noch nie gemacht, sollte aber gehen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
aeaelxndr Mitglied
Beiträge: 9 Registriert: 25.03.2016
|
erstellt am: 24. Apr. 2016 12:26 <-- editieren / zitieren --> Unities abgeben:
Ich berechne die Nachgiebigkeitsmatrix zunächst. Bei einer Aufbringung von eps_11 bestimme ich C11, C21, und C31 eps_22: (C12),C22,C32 usw... eps_33: C33 gamma_23: C66 So brauche ich nur 4 statt 6 Steps. Hieraus kann ich anschließend die homogenisiserten Materialdaten berechnen. Ich habe die Längen des RVE mit in die Equations integriert. So bleibt mir eine Umrechnung erspart bei der Ermittlung der gemittelten Spannung. Dennoch sollte ich die Spannungswerte der Integrationpoints nehmen. Danke für den Tipp mit den Shell-Elementen. Du meinst, dass ich also diese Shell-Elemente erzeuge, diese dann mit den Oberflächen des RVE verklebe und mich dann auf diese Shellelemente in den Equations beziehe - stimmt das so? Alternativ versuche ich den RVE zu partitionieren, sodass sich hoffentlich ein gleihcmäßiges Muster ergibt. Arbeite jedoch noch daran... Bei deiner Methode mit den Referenzknoten erhalte ich jedoch bei der Auftragung von eps_11 a
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |