Institut für Bodenmechanik und Felsmechanik FE-Berechnungen in der Geotechnik (SS 2012) Kurzeinführung zu ABAQUS/CAE (ComputerAided Engineering) C. Grandas and A. Niemunis KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Motivation Für komplizierte FE Modelle kann das manuelle Erzeugen einer Eingabedai (z.B. durch Texteditor) extrem mühsam sein. Institut für Bodenmechanik und Felsmechanik 2 Einleitung ABAQUS/CAE ist eine grafische Oberfläche (GUI), mit der man u.a.: FE-Modelle für ABAQUS definiert Jobs zum ABAQUS/Standard abschickt Simulationergebnisse darstellt ABAQUS/CAE ist in Module aufgeteilt. Jedes Modul dient einem Aspekt der Modellierung. Modul ist ein Teil des CAE-Programms und nicht des FE-Modells. Institut für Bodenmechanik und Felsmechanik 3 Einleitung ABAQUS/CAE kann auch eine Eingabedatei (*.inp) erzeugen, die mit einem Text-Editor nachgearbeitet werden kann. ABAQUS/CAE ermöglicht auch die Ausgabedatei (*.odb) zu öffnen und die Ergebnisse darzustellen (wie ABAQUS/Viewer). Institut für Bodenmechanik und Felsmechanik 4 CAE-Module*: Part: Erstellen eines Modellteils (wie bei Maschinenbau, nützlich für Kontakte, evtl. für das Kopieren) Part = Muster, z.B. Part-1 Instanz = Kopie eines Parts, z.B. Part-1-1 Part-1-2 Property: zum Definieren vom Material and Querschnitt Assembly: um die Instanzen zusammen zu setzen Module* = Sammlung von Tools für eine bestimmte Aufgabe innerhalb des gleichen Programms Institut für Bodenmechanik und Felsmechanik 5 CAE-Module Part und Assembly in Aktion: Definition der Modellteile (=mit Parts) Reife Karosserie Institut für Bodenmechanik und Felsmechanik Zusammensetzung der Instanzen von Modellteilen (=mit Assembly) Karosserie-Instanz-1 Reife-Instanz-1 Reife-Instanz-2 6 Weitere CAE-Module: Step: Definition des Belastugsschritts inkl. der Ausgabe Interaction: Definition von Kontakten zwischen Instanzen Load: Definition von Lasten und Randbedingungen. Sie werden auf geometrische Objekte (z.B. Flächen, Seiten einer Instanz) und nicht auf das Netz bezogen! Mesh: Definition des FE-Netzes Job: Erstellung einer Eingabedatei für evtl. manuelle Nachbearbeitung Einbindung von User-Subroutinen (z.B. UMAT) Einreichen des Jobs zum ABAQUS-Standard Visualization: Darstellung der Ergebnisse Sketch: Erstellung von Skizzen für die Nachbearbeitung von Parts Institut für Bodenmechanik und Felsmechanik 7 ABAQUS/CAE Hauptfenster Hier kann ein Modul gewählt werden Institut für Bodenmechanik und Felsmechanik 8 Aufgabe 1: axiale Kompression (Triaxialversuch) Die axiale Kompression einer Probe wird simuliert. Die Probe wird mit einem axialsymmetrischen Modell repräsentiert. Das Modell soll mit Hilfe von ABAQUS/CAE erstellt werden. Das Materialverhalten sei zunächst linear-elastisch mit E = 2.1e+08 und ν = 0.29. Die Anfangsspannung sei isotrop σ1= σ2 = -100 kPa. Die Inkrementierung der vorgegebenen axialen Verschiebung von ε2= 10 % soll automatisch erfolgen: das Anfangsinkrement sei 0.01, das größte bzw. kleinste Inkrement betrage 0.001 bzw. 0.5. Die Endplatten sind rau (keine relative Verschiebung zwischen Probe und Platten möglich). Institut für Bodenmechanik und Felsmechanik 9 Abaqus-Skriptsprache Jedes „Klicken“ in CAE wird in Form eines Python-Befehls in einer Replay-Datei (*.rpy) intern gespeichert. Die Replay-Datei kann entweder neu eingelesen werden (z.B. nach einem Abbruch des CAE-Programms) oder mit einem externen Texteditor bearbeitet und für ein anderes Modell verwendet werden. Z.B. ein Ausschnitt aus Replay-Datei von Aufgabe 1 ist: s.ConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0)) s.FixedConstraint(entity=g[2]) s.rectangle(point1=(0.0, 0.0), point2=(0.05, 0.1)) p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=AXISYMMETRIC, type=DEFORMABLE_BODY) p = mdb.models['Model-1'].parts['Part-1'] Institut für Bodenmechanik und Felsmechanik 10 Abaqus Scripting Interface Institut für Bodenmechanik und Felsmechanik 11 Abaqus-Skriptsprache Man kann die rpy-Datei mit einem Text-Editor parametrisieren. Damit kann man den Einfluss von Geometrie der Probe (r und h) auf die Verformung des Materiales in einem Triaxialversuch leicht testen. h r Institut für Bodenmechanik und Felsmechanik 12 So wird rpy-Datei parametrisiert: Die Koordinaten des Eckpunkts der Probe (0.05, 0.1) in der ursprünglichen rpy-Datei s.ConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0)) s.FixedConstraint(entity=g[2]) s.rectangle(point1=(0.0, 0.0), point2=(0.05, 0.1)) p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=AXISYMMETRIC, type=DEFORMABLE_BODY) p = mdb.models['Model-1'].parts['Part-1'] werden mit den Variablen r und h ausgedrückt (=parametrisiert): r = 0.05 # Radius (Parameter) h = 0.1 # Höhe der Probe (Parameter) s.ConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0)) s.FixedConstraint(entity=g[2]) s.rectangle(point1=(0.0, 0.0), point2=(r, h)) p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=AXISYMMETRIC, type=DEFORMABLE_BODY) p = mdb.models['Model-1'].parts['Part-1'] Institut für Bodenmechanik und Felsmechanik 13 Einführung zu Python Python ist eine Interpreter-Programmiersprache (keine Kompilierung möglich). Python ist eine objekt-orientierte (OO-) Sprache. Objekt = verkapselte Daten (members, möglicherweise mit anderen Objekten) + Funktionen (methods) Ein stand-alone Python-Interpreter (mit libraries and Dokumentation) ist unter www.python.org frei verfügbar ! CAE besitzt ein eigenes, integriertes Python-Interpreter: Institut für Bodenmechanik und Felsmechanik 14 Syntax der Python-Sprache Python unterscheidet zwischen Groß- und Kleinschreibweise (im Gegensatz zu Fortran). Variablen werden nicht deklariert (im Gegensatz zu C, Pascal, Java). Einrückungen trennen die Sprachstrukturen (statt begin…end oder { } ) Erweiterung der Python Skriptdateien ist *.py. end-of-line Kommentare fangen mit # an. Institut für Bodenmechanik und Felsmechanik 15 Datentypen in Python Integer >>> i = 20 >>> j = 64 Float >>> pi = 3.14159 Sequences Strings Lists Tuples Arrays Institut für Bodenmechanik und Felsmechanik 16 Datentypen in Python (Sequences) List: veränderbare heterogene Sequenz >>> myList = [7,6.0,‘Hallo‘,4] Das Objekt ‚List‘ hat seine eigene Methoden, z.B. >>> myList [1, 9, 3] >>> myList.append(33) >>> myList [1, 9, 3, 33] Institut für Bodenmechanik und Felsmechanik 17 Datentypen in Python (Sequences) Tuple: unveränderbare heterogene Sequenz >>> myTuple = (7,6.0,‘Hallo‘,4) >>> myTuple = Tuple( [1, 9, 3] ) Das Objekt ‚Tuple‘ hat keine Methode. Institut für Bodenmechanik und Felsmechanik 18 Datentypen in Python (Sequences) String: unveränderbare homogene Sequenz >>> myString= ‘Hallo‘ >>> myString = ‘Hallo‘ + ‘ Python‘ Das Objekt ‚String‘ hat eigene Methode, z.B. >>> myString.split() [‘Hallo‘, ‘Python‘ ] Institut für Bodenmechanik und Felsmechanik 19 Datentypen in Python (Dictionary) Veränderliche Tabelle mit Objectreferenz. >>> >>> >>> >>> myPart = {} #Create an empty dictionary myPart['height'] = 3.0 myPart['width'] = 6.0 myPart['color'] = 'Red' In gegensatz zu Sequenzen erfolgt der Zugriff durch den Schlüssel und nicht über die Position. >>> aspect = myPart['height'] / myPart['width'] >>> aspect >>> 0.5 Institut für Bodenmechanik und Felsmechanik 20 Steuerblöcke in Python Python verwendet Einrückung um Steuerblöcke zu begrenzen. If Blöcke >>> load = 10 >>> if load > 6.75: print 'Reached critical load' While Blöcke >>> load = 10 >>> length = 3 >>> while load < 1E4: load = load * length print load Institut für Bodenmechanik und Felsmechanik 21 Steuerblöcke in Python For Blöcke >>> for i in range(5): print i 0 1 2 3 4 Institut für Bodenmechanik und Felsmechanik 22 Beispiel einer Python Skriptdatei (ohne Abaqus) Das Skript kann mit einem Texteditor geschrieben werden und unter den Namen „bsp.py“ (in z.B „C:\Temp“) gespeichert. import math import os var = raw_input("Radius of the circle= ") area = math.pi*float(var)**2 f = open('result.txt', 'w') line = "The area of the circle is " + str(area) f.write(line) f.close() os.system("C:\WINDOWS\system32\\notepad.exe result.txt") Die Ausführung erfolgt in einem DOS-Fenster mit dem Befehl Institut für Bodenmechanik und Felsmechanik 23 Struktur in der Input Information in Abaqus CAE Abaqus verschafft Ordnung für die Input und Output Information. Alle Input Information des AnfangsRandwertproblems werden im Abaqus in einer gemeinsamen Struktur (database = model) aufbewahrt. Nur die Einträge werden sich unterscheiden (oder leer bleiben) Durch die input (zB. via CAE) verändern wir den Inhalt der einzelnen Einträge/Felder (=Objekte=containers) des models. Die containers können ebenfalls eine komplizierte baumartige Struktur haben. Institut für Bodenmechanik und Felsmechanik 24 Struktur der Output Information in Abaqus CAE (View) Ergebnisse aus Abaqus werden in einer fest definierten Struktur (output database = odb) geschrieben. Nur die Einträge (Inhalte) werden sich unterscheiden (oder leer bleiben), abhängig vom Output aus der Abaqus Berechnung. Einige Einträge (=Objekte=containers) in der odb können evtl. vervielfacht werden (z.B. step, frame) Die containers können ebenfalls eine komplizierte baumartige Struktur haben. Institut für Bodenmechanik und Felsmechanik 25