Modifizierung von Abaqus-Input-Decks in der 3DEXPERIENCE Mechanical Creation App

Veröffentlicht 06.12.2022

Nutzen Sie für komplexe Simulationen das gesamte Potential des Abaqus-Solvers – der Keyword Editor macht es möglich. Dieser Artikel zeigt Ihnen, wie Sie ihn für Ihre Analysen einsetzen können.

Redaktionsleitung
Dipl.-Ing. Nicole Meyer
Dipl.-Ing. Nicole Meyer
Senior Consulting 3DS-PLM | Redakteurin 3DS-PLM Technisches Magazin
Autor*in
Sven Reinstädler, Dr.-Ing.
Dr.-Ing. Sven Reinstädler
Consultant FEM 3DS-PLM

Für den Simulations-Experten ist mit den letzten Updates in der Mechanical Scenario Creation App einiges an Funktionalität hinzugekommen. So ist die 3DEXPERIENCE-Plattform hinsichtlich Simulationen nun auf einem Stand, der komplexe numerische Analysen mit vollem Zugriff auf das CAD-Modell ermöglicht. Mit der Symbiose von CATIA und SIMULIA profitieren Simulations-Experten in zweierlei Hinsicht. Zum einen sind die zur Verfügung gestellten Vernetzer so konzipiert, dass FE-Modelle bei veränderter Geometrie auf Knopfdruck neu aufgebaut werden können, sodass nun auch optimierte Strukturen in adäquater Zeit greifbar sind, zum anderen kann der Abaqus-Solver auf geometrische Flächen von hoher Stetigkeit zurückgreifen – bei manchen Kontaktproblemen essenziell. Der Abaqus-Solver ist aber so Leistungsstark, dass es immer einige Keywords (Parameter) geben wird, die nicht über die graphische Benutzeroberfläche angesprochen werden können. Dies liegt nicht zuletzt auch daran, dass unabhängig von der Plattform, selbst der Abaqus-Solver stetig weiterentwickelt wird. Für die Fälle, in denen das GUI der Plattform nicht ausreicht, stellt Dassault Systèmes nun den Keyword-Editor zur Verfügung, der in diesem Artikel an zwei Modellen im Detail vorgestellt wird.
Zuerst wird ein PRF-Modell zur Beschreibung der Viskoplastizität von Kunstoffen derart modifiziert, dass der Abaqus-Solver das strain hardening power law model als Kriechmodell verwendet (*VISCOELASTIC, LAW=STRAIN).

Input-Decks werden in der Plattform mit XML-Dateien modifiziert. Bevor auf deren Aufbau im Detail eingegangen wird, soll zunächst gezeigt werden, wie diese in den Modellbaum zu einem Simulations-Objekt eingebunden werden. Für den Import von XML-Dateien klickt man im Setup-Reiter der Action-Bar die Schaltfläche Keyword-Edit an (siehe Abb. 1a). In der zugehörigen Dialogbox kann man im Eingabefeld der ersten Zeile einen Namen vergeben, mit dem die XML-Datei in den Modellbaum eingegliedert wird. Das Eingabefeld in der zweiten Zeile kann unbeachtet bleiben. Wichtiger ist hier die dritte Schaltfläche, mit der ein bestehendes Dokument hochgeladen werden kann. Sie führt auf eine weitere, dunkelgrau hinterlegte Schaltfläche, die mit Import a file zu bestätigen ist. Daraufhin kommt man zur Dialogbox File Selection, mit der xml- und py-Dateien ausgewählt werden können (siehe Abb. 1b). 

Hinweis: Mit Python-Skripten kann man nicht nur Input-Decks mit gegebenen Keyword- und Data-Lines modifizieren, es können auch Informationen ausgelesen und verarbeitet werden (siehe Beispiel am Ende des Artikels).  
Nachdem die ausgewählte Datei mit der Schaltfläche Open bestätigt und der Import-Vorgang mit dem grünen Haken (siehe Abb. 1c) beendet wurde, ist abschließend noch der Titel für das Dokument zu vergeben, mit dem die XML-Datei in der Datenbank abgelegt wird – fertig. 
 

Im Folgenden wird auf den Aufbau der XML-Datei näher eingegangen. Mit der in  Abb. 2 dargestellten Datei wird zuerst nach dem Keyword *DENSITY gesucht und der Wert für die Dichte mit 1.2E-9 ersetzt (siehe deleteData=“True“). Mit after=“True“ ist sichergestellt, dass die Keyword-Line selbst nicht modifiziert wird. Nach dem addKeyword-Element wird anschließend mit dem replaceKeyword-Element sowohl die Keyword-Line als auch die Data-Line zu *ELASTIC mit dem schwarz gesetzten Textkörper ersetzt. Mit dem Attribut editNum wird der veränderten Keyword-Line eine Kommentar-Zeile vorangestellt, sodass die zweite Modifikation im Input-Deck schnell gefunden werden kann. Gleiches gilt bezüglich *DENSITY.

Wichtig: 
•    Mit exgKeywordInstance=“1“ wird in beiden Fällen nach dem ersten Auftreten von DENSITY und ELASTIC gesucht. Ist ein Keyword mehrfach vorhanden, muss der Integer für das Attribut entsprechend angepasst werden. 
•    Bei den zu suchenden Keywords ist das jeweils voranstehende Asterisk (siehe Input-Deck) in der XML-Datei auszulassen.
 

Im zweiten Anwendungsbeispiel wird gezeigt, wie man mit dem Keyword-Editor Contact Pairs in Steps mit *MODEL CHANGE ein- und ausschalten kann. Als Modell wird die Klippmechanik verwendet, die in Automatisierung von Abaqus-Simulationen ausführlich dargestellt ist. Wie in Abb. 3 gezeigt, wird der Klipp zuerst positioniert, bevor er belastet wird. Für kurze Rechenzeiten ist während der Positionierung das Contact Pair zwischen Klipp und Halter zunächst deaktiviert.

Die XML-Datei zur Deaktivierung und Aktivierung des Contact Pair wird in Abb. 4 dargestellt. Mit den Zeilen 2 (exgKeywordInstance=“1“) und 5 (exgKeywordInstance=“2“) wird nach dem ersten beziehungsweise zweiten Static-Step gesucht. Hier werden die Keyword-Lines mit dem Attribut addKeywordLine nach *STATIC hinzugefügt (after=“True“). Alternativ kann die Keyword-Line auch innerhalb des Textblocks gleich zu Anfangs gesetzt werden. 

Python-Scripting


Ein Python-Script kann auf dieselbe Art und Weise wie eine XML-Datei eingebunden werden. Als Grundlage wurde das in https://eu1.iam.3dexperience.3ds.com/ enthaltene Script verwendet. Neben den Python-Modulen sys, string und os, die im Dassault-Beispiel bereits enthalten sind, wird noch das Modul numpy mit eingebunden, das für lineare Algebra empfohlen wird.
Mit dem in Abb. 5 dargestellten Script wird oberhalb von *NODE die Keyword-Line *TRANSFORM,NSET=“MyNset“ gesetzt (siehe Zeile 59). Die Werte für die zugehörige Data-Line werden aus *ORIENTATION mit dem speziellen Namen MyOrientation gelesen. Dies geschieht innerhalb der Zeilen 25 bis 48. Zunächst wird geprüft, ob eine Zeile mit *ORIENTATION beginnt. Mit Zeile 34 wird dann getestet, ob im zweiten String der Keyword-Line MyOrientation als Name enthalten ist. Ist dies der Fall, wird der String mit Zeile 36 um die Anführungszeichen und das nachfolgende Komma reduziert. Jetzt kann mit Zeile 39 exakt verglichen werden. Ist das richtige *ORIENTATION gefunden, wird die nachfolgende Zeile in words_2 abgespeichert. Sie enthält die gesuchte Information. Falls der jeweilige String mit einem Komma endet, wird dieses am Ende entfernt, sodass mit Zeile 47 für etwaige mathematische Operationen in den Datentyp Float gewechselt werden kann. In diesem abstrakten Beispiel-Script wird auf mathematische Operationen verzichtet und die Float-Werte mit Zeile 50 wieder in eine Zeichenkette umgesetzt, die letztendlich mit Zeile 60 unterhalb von *TRANSFORM,NSET=“MySet“ geschrieben wird. Die Zeilen der Original-Input-Decks werden mit Zeile 61 unverändert übernommen.

Zusammenfassung 

Mit dem vorliegenden Artikel wurde Ihnen gezeigt, wie Sie mit dem Keyword Editor vollen Zugriff auf den Abaqus-Solver haben. Mit XML-Dateien können Sie Input-Decks mit gegebenen Keyword- und Data-Lines modifizieren, mit Python-Scripten können Sie darüber hinaus Informationen einlesen und verarbeiten, bevor Sie wieder in das neu generierte Input-Deck geschrieben werden. Damit sind selbst komplexe Parameterstudien möglich – auf dem Weg zum optimalen Design!
 

Weitere Artikel zum Thema

Technisches Magazin jetzt abonnieren