Autor
|
Thema: zyklische Berechnung mit USDFLD (3347 mal gelesen)
|
meta82 Mitglied
Beiträge: 20 Registriert: 22.10.2004
|
erstellt am: 06. Okt. 2008 10:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Abaqus- Gemeinde, Ich möchte gern das Materialverhalten unter zyklischer Zug- Schwell- Belastung mit Hilfe eines selbsterstellten USDFLD oder UMAT im ABAQUS- Standard (implizit) beschreiben. Bisher habe ich mich halbwegs in ABAQUS und USDFLD eingearbeitet und meine ersten Versuche unternommen. Zur Untersuchung meines USDFLD habe ich mir ein vereinfachtes FE- Modell aus 4 Volumenelementen erstellt. Nun habe ich zwei verschiedene Probleme und hoffe, dass Ihr mir etwas weiterhelfen könnt. Zum Einen möchte ich gern im USDFLD den Min- oder Max-Wert bezüglich aller Elemente einer Größe (z.B. Spannung) auslesen und diesem im USDFLD für die weitere Berechnung benutzen. Kann ich dies im USDFLD erledigen (z.B. die Werte für alle Elemente in eine Reihe schreiben und anschließend auswerten) oder benötige ich dafür eine zusätzliche User-Subroutine? Oder ist diese Aufgabe in einem UMAT besser zu bewerkstelligen? Zum Anderen habe ich bisher jeden einzelnen Zyklus als ein Step mit statischer Belastung definiert. Das hat soweit geklappt (mit z.B. 4000 Zyklen), allerdings bricht das Programm bei z.B. 6000 Zyklen mit einem System- Error- Code 29539 bei der „Analysis Input File Processor” ab und beginnt nicht mit der eigentlichen Berechung, evtl. ein Speicherproblem? Habt Ihr vielleicht eine Idee wie man die zyklische Belastung anderes realisieren kann? Ist evtl. die Definition durch eine Kraftamplitude und nur einem Step vorteilhafter? Habe auch schon über einen Restart nachgedacht. Grüße und vielen Dank im Voraus!
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: 07. Okt. 2008 14:10 <-- editieren / zitieren --> Unities abgeben: Nur für meta82
Sowohl Restart als auch die Arbeit mit Amplitudes könnte helfen. Amplitudes würde ich als erstes probieren. Hast du schon überprüft ob du nicht das benutzen kannst: Users Manual 6.2.6 Direct cyclic analysis Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
meta82 Mitglied
Beiträge: 20 Registriert: 22.10.2004
|
erstellt am: 08. Okt. 2008 10:24 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antwort. Ich möchte übrigens das Schädigungsverhalten von faserverstärkten Kunststoffen unter zyklischer Belastung modellieren und möchte zu diesem Zweck ein eigenes Materialgesetz implementieren (hätte ich dazu sagen sollen). Die Direct cyclic analysis hatte ich mir im Abaqus Version 6.7 Documentation angeschaut (Ich benutze Abaqus 6.7-1) und war zu dem Entschluss gekommen, dass diese Methode vorrangig für zyklische Belastung von Metallen mit plastischer Verformung geeignet ist. Allerdings habe ich jetzt im Internet die 6.8 Documentation angeschaut und gesehen, dass die Methode auch für das progressive Schädigungsverhalten von Composites verwendet werden kann. Weiß aber nicht, ob das auch in 6.7 funktioniert? Hast Du übrigens eine Idee, wieso Abaqus ab einer bestimmten Stepanzahl das Inputfile nicht mehr vollständig analysieren kann? Die Größe des .odb-file für 4000 Zyklen beträgt gerade mal 470 MB. Bei dem Restart sollen übrigens nur die Werte des letzen Zyklus auf alle Elemente übertragen werden und nicht die gesamte Belastungsgeschichte. Muss ich dazu einen Restart aus .odb oder .fil machen und benötige ich dafür zusätzliche Einstellungen?. Hast Du noch eine Idee bzgl. meiner ersten Frage. Das USDFLD arbeitet das Materialgesetz mit Hilfe der vorher eingelesenen Spannungen und Dehnungen für jeden IP nacheinander ab und berechnet entsprechend des implementierten Materialgesetzes je IP definierte Größen. Ist es denn irgendwie möglich diese berechneten Größen bezüglich aller Elemente im USDFLD auszuwerten, also z. B. eine Schleife über alle IP und die bestimmte Größe (z.B. SDV) von allen IP in eine Array schreiben und anschließend den max. Wert dieser Größe bzgl. aller IP bestimmen. Habe mir noch die Subroutine URDFIL angeschaut. Diese scheint evtl. dafür geeignet. Muss aber noch raus finden, ob und wie die Informationen an das USDFLD übergeben werden können. Vielleicht hast Du oder jemand anderes noch einen Vorschlag.Schonmal Danke.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
meta82 Mitglied
Beiträge: 20 Registriert: 22.10.2004
|
erstellt am: 08. Okt. 2008 10:30 <-- editieren / zitieren --> Unities abgeben:
Habe ich noch vergessen (bzgl. letzten Abschnitt). Der max. Wert der z.b. SDV von allen Elementen, ist dann für die weitere Berechnung im USDFLD notwendig, da in Abhängigkeit dieses Wertes eine andere SDV berechnet werden soll. 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: 08. Okt. 2008 11:26 <-- editieren / zitieren --> Unities abgeben: Nur für meta82
Zitat: Original erstellt von meta82: Danke für die Antwort. Ich möchte übrigens das Schädigungsverhalten von faserverstärkten Kunststoffen unter zyklischer Belastung modellieren und möchte zu diesem Zweck ein eigenes Materialgesetz implementieren (hätte ich dazu sagen sollen). Die Direct cyclic analysis hatte ich mir im Abaqus Version 6.7 Documentation angeschaut (Ich benutze Abaqus 6.7-1) und war zu dem Entschluss gekommen, dass diese Methode vorrangig für zyklische Belastung von Metallen mit plastischer Verformung geeignet ist. Allerdings habe ich jetzt im Internet die 6.8 Documentation angeschaut und gesehen, dass die Methode auch für das progressive Schädigungsverhalten von Composites verwendet werden kann. Weiß aber nicht, ob das auch in 6.7 funktioniert?
Ich habe gerade mal in die 6.8er Release Notes geschaut. Dort ist eine Kapitel 6.2 Low-cycle fatigue analysis using the direct cyclic approach in Abaqus/Standard was bedeutet, dass das neu in 6.8 ist. Kurzbeschreibung: Benefits: The direct cyclic low-cycle fatigue capability provides a computationally effective technique for modeling progressive damage and failure both in bulk materials and at material interfaces for a structure subjected to a sub-critical cyclic loading. The capability has applications in solder joint failure in electronics, powertrain durability in automotive, composite damage and strength in aerospace, and bone degradation in medical applications. Zitat:
Hast Du übrigens eine Idee, wieso Abaqus ab einer bestimmten Stepanzahl das Inputfile nicht mehr vollständig analysieren kann? Die Größe des .odb-file für 4000 Zyklen beträgt gerade mal 470 MB. Bei dem Restart sollen übrigens nur die Werte des letzen Zyklus auf alle Elemente übertragen werden und nicht die gesamte Belastungsgeschichte. Muss ich dazu einen Restart aus .odb oder .fil machen und benötige ich dafür zusätzliche Einstellungen?.
Vielleicht reicht der Speicher nicht aus wenn der Datacheck die Input-Datei (und somit die Steps) liest und verarbeitet. Bei einem Restart kann man sowieso nur einen Zustand lesen. Von diesem wird dann in der neuen Analyse weitergerechnet. Benutze einfach die ganz normale Restart-Funktionalität ohne spezielle Einstellungen. Zitat:
Hast Du noch eine Idee bzgl. meiner ersten Frage. Das USDFLD arbeitet das Materialgesetz mit Hilfe der vorher eingelesenen Spannungen und Dehnungen für jeden IP nacheinander ab und berechnet entsprechend des implementierten Materialgesetzes je IP definierte Größen. Ist es denn irgendwie möglich diese berechneten Größen bezüglich aller Elemente im USDFLD auszuwerten, also z. B. eine Schleife über alle IP und die bestimmte Größe (z.B. SDV) von allen IP in eine Array schreiben und anschließend den max. Wert dieser Größe bzgl. aller IP bestimmen. Habe mir noch die Subroutine URDFIL angeschaut. Diese scheint evtl. dafür geeignet. Muss aber noch raus finden, ob und wie die Informationen an das USDFLD übergeben werden können. Vielleicht hast Du oder jemand anderes noch einen Vorschlag.Schonmal Danke.
Sorry, aber mit Subroutines und Fortran kenne ich mich nicht wirklich aus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
meta82 Mitglied
Beiträge: 20 Registriert: 22.10.2004
|
erstellt am: 08. Okt. 2008 17:08 <-- editieren / zitieren --> Unities abgeben:
Danke nochmal für Deine Antworten. Ich bin eigentlich zuversichtlich, daß das mit USDFLD irgendwie gehen muss. Immerhin berechnet ABQ die notwendigen Werte für alle IP, man muss nur rausfinden, wie man darauf in geeigneter Form zugreifen kann, um die oben beschriebene Aufgabe zu erledigen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |