Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  UMAT/VUMAT mit Pythpn scripting

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  UMAT/VUMAT mit Pythpn scripting (2265 mal gelesen)
feh
Mitglied


Sehen Sie sich das Profil von feh an!   Senden Sie eine Private Message an feh  Schreiben Sie einen Gästebucheintrag für feh

Beiträge: 5
Registriert: 04.11.2009

erstellt am: 04. Nov. 2009 14:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen,
Ich versuche zur Zeit eine Paramerterstudie an meinem Materialmodell durchzufuehren welches als VUMAT vorliegt. Nun weiss ich allerdings nicht so genau wie ich einen Job mit VUMAT aus Python ausfuehre.

Bisher hab ich die Jobs im Windows Command Window folgendermassen ausgefuehrt:
abaqus input=<input_file> user=<vumat_file>

Es waer toll wenn jemand eine Antwort wuesste...

Danke
Fabian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nicksen
Mitglied
wissenschaftlicher Mitarbeiter


Sehen Sie sich das Profil von Nicksen an!   Senden Sie eine Private Message an Nicksen  Schreiben Sie einen Gästebucheintrag für Nicksen

Beiträge: 239
Registriert: 04.05.2007

erstellt am: 04. Nov. 2009 16:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für feh 10 Unities + Antwort hilfreich

Du kannst den Job direkt per python-skript definieren und ihn auch da losschicken. Die genauen Einstellungen, die du brauchst musst du aber noch finden und einsetzen, wie zB die userSubroutine usw.

Hier ein paar Zeilen code:
import job
Job_name= '<dein Jobname>'
mdb.Job( name= Job_name, model=myModel_str, type=ANALYSIS,
    explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, description='',
    parallelizationMethodExplicit=DOMAIN, multiprocessingMode=DEFAULT,
    numDomains=2, userSubroutine='', numCpus=2, memory=50,
    memoryUnits=PERCENTAGE, scratch='', echoPrint=OFF, modelPrint=OFF,
    contactPrint=OFF, historyPrint=OFF)
mdb.jobs[Job_name].submit()
mdb.jobs[Job_name].waitForCompletion()

Das Skript wartet durch die letzte Zeile bis die Rechnung fertig ist. Dann kannst du deine Auswertung oder was auch immer machen, dann deine Parameter anpassen, nen neuen Job erstellen und wieder rechnen lassen. Klappt auch prima in einer Schleife.

Falls dies das war was du suchtest.

beste Grueße und viel Erfolg
der Nicksen

------------------
==========
==  Dingsen  ==
==========

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

feh
Mitglied


Sehen Sie sich das Profil von feh an!   Senden Sie eine Private Message an feh  Schreiben Sie einen Gästebucheintrag für feh

Beiträge: 5
Registriert: 04.11.2009

erstellt am: 04. Nov. 2009 16:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Nicksen,

vielen Dank fuer die prompte Antwort. Ist so ziemlich genau was ich gesucht habe. Nur noch zum besseren Verstaendnis: Lieg ich richtig damit, dass ich bei der 'userSubroutine' einfach einen string mit dem dateiverzeichnis meines materialmodells einfuegen muss?

Vielen Dank nochmals
Fabian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nicksen
Mitglied
wissenschaftlicher Mitarbeiter


Sehen Sie sich das Profil von Nicksen an!   Senden Sie eine Private Message an Nicksen  Schreiben Sie einen Gästebucheintrag für Nicksen

Beiträge: 239
Registriert: 04.05.2007

erstellt am: 04. Nov. 2009 16:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für feh 10 Unities + Antwort hilfreich

Naja, ich denk schon. Probier es mal aus.
Mein Buerokollege hat das heute erst gemacht, aber ich hab die Zeile nicht mehr im Kopf. Morgen kann ich dir mehr sagen, aber mit dem string sollte das durchaus klappen.

Gruß

------------------
==========
==  Dingsen  ==
==========

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nicksen
Mitglied
wissenschaftlicher Mitarbeiter


Sehen Sie sich das Profil von Nicksen an!   Senden Sie eine Private Message an Nicksen  Schreiben Sie einen Gästebucheintrag für Nicksen

Beiträge: 239
Registriert: 04.05.2007

erstellt am: 04. Nov. 2009 16:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für feh 10 Unities + Antwort hilfreich

Achso...
natuerlich muss in dem string nicht nur das Verzeichnis sondern auch der Dateiname des Routinenfiles stehen.

Bsp: userSubroutine='./MaterialUMAT.f'

------------------
==========
==  Dingsen  ==
==========

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3554
Registriert: 04.08.2005

Abaqus

erstellt am: 04. Nov. 2009 16:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für feh 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von feh:
Hallo Zusammen,
Ich versuche zur Zeit eine Paramerterstudie an meinem Materialmodell durchzufuehren welches als VUMAT vorliegt. Nun weiss ich allerdings nicht so genau wie ich einen Job mit VUMAT aus Python ausfuehre.

Bisher hab ich die Jobs im Windows Command Window folgendermassen ausgefuehrt:
abaqus input=<input_file> user=<vumat_file>

Es waer toll wenn jemand eine Antwort wuesste...

Danke
Fabian


Alternativ kannst den Befehl auch von Python an eine Command-Shell geben lassen. Das geht mit dem os-Modul.

import os
os.system(Befehl)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

feh
Mitglied


Sehen Sie sich das Profil von feh an!   Senden Sie eine Private Message an feh  Schreiben Sie einen Gästebucheintrag für feh

Beiträge: 5
Registriert: 04.11.2009

erstellt am: 05. Nov. 2009 15:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Also noachmals vielen Dank, klappt wie versprochen!

Jetzt hab ich nur noch ein Problem: Gibt es eine Moeglichkeit Inputfiles *.inp in python scripte umzuwandeln?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nicksen
Mitglied
wissenschaftlicher Mitarbeiter


Sehen Sie sich das Profil von Nicksen an!   Senden Sie eine Private Message an Nicksen  Schreiben Sie einen Gästebucheintrag für Nicksen

Beiträge: 239
Registriert: 04.05.2007

erstellt am: 05. Nov. 2009 16:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für feh 10 Unities + Antwort hilfreich

Nicht direkt.

Python-Skript sind in ABAQUS/CAE Abfolgen von CAE-Befehlen. Also aehnlich wie Makros. Die *.inp-files sind die Inputdateien fuer den Solver, der nicht unbedingt CAE brauch; kannst die Jobs ja auch aus der Konsole starten.

Moeglich ist, dass du ein Skript bastelst, welches die *.inp importiert. Du kannst ja auch ueber "File-> Import-> Model" eine *.inp Datei einlesen lassen. Mitunter werden da einige Keywords "verschluckt" sodass ich einen automatisierten Import mehrerer Models sehr gruendlich pruefen/testen wuerde, bevor ich das Skript laufen lasse.

Aber eigentlich duerfte das eine Loesung, wenn auch mit Umweg, sein.

------------------
==========
==  Dingsen  ==
==========

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

feh
Mitglied


Sehen Sie sich das Profil von feh an!   Senden Sie eine Private Message an feh  Schreiben Sie einen Gästebucheintrag für feh

Beiträge: 5
Registriert: 04.11.2009

erstellt am: 05. Nov. 2009 17:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Nicksen,

Ich habe bereits versucht mit import->model allerdings gehen dabei einige definitionen des Modells verloren (z.B. Transversestiffnesses).

Gibt es eine Moeglichkeit die *.inp-dateien in einer Schleife mittles eines scripts abzuaendern (lediglich die lasten, nicht die geometrie), dann das daraus resultierende modell zu loesen und daraufhin aus dem posprocessing einige daten herauszuschreiben?

Fabian

[Diese Nachricht wurde von feh am 05. Nov. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

femchen
Mitglied
wiss. MA


Sehen Sie sich das Profil von femchen an!   Senden Sie eine Private Message an femchen  Schreiben Sie einen Gästebucheintrag für femchen

Beiträge: 166
Registriert: 25.06.2009

erstellt am: 06. Nov. 2009 09:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für feh 10 Unities + Antwort hilfreich

Ja, das kann Abaqus sogar automatisch.
Schau mal im Handbuch im Kapitel "1.4 Parametric modeling" und "16. Parametric Studies".
Du mußt also in Deinem Fall die Last als Parameter definieren und bei der Parameterstudie angeben, in welchem Bereich die Last variiert werden soll. Dann schickst Du die Studie los und Abaqus kann Dir automatisch eine Tabelle mit gesuchten Daten zu jedem Lastwert erstellen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

feh
Mitglied


Sehen Sie sich das Profil von feh an!   Senden Sie eine Private Message an feh  Schreiben Sie einen Gästebucheintrag für feh

Beiträge: 5
Registriert: 04.11.2009

erstellt am: 06. Nov. 2009 16:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi femchen,

dasmit der parameterstudy hab ich jetzt hinbekommen, allerdings weiss ich jetzt nicht wirklich wie ich aus all den verschiedenen odb-files am geschicktesten meine daten zusammensammeln kann.
Dabei vergleiche ich in den verschiedenen Loesungen die Spannungen beim Versagen des Materials (ich definiere die lasten mittels einer Amplitude). Das heisst also, dass ich nicht weiss in welchem frame Versagen auftritt und somit auch nicht bei welchem Frame ich die Spannungen auslesen muss. Gibt es da eine moeglichkeit alle frames auszulesen und dann aufgrund der Information die gesuchten Daten herauszuschreiben?

Vielen Dank
Fabian

[Diese Nachricht wurde von feh am 06. Nov. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

femchen
Mitglied
wiss. MA


Sehen Sie sich das Profil von femchen an!   Senden Sie eine Private Message an femchen  Schreiben Sie einen Gästebucheintrag für femchen

Beiträge: 166
Registriert: 25.06.2009

erstellt am: 09. Nov. 2009 21:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für feh 10 Unities + Antwort hilfreich

Ja, das sollte mit dem Befehl "aStudy.gather" gehen, wobei Du angeben mußt was Du wo auslesen und ausgeben willst. Wenn Du das für alle Frames machst, sollte doch der Frame dabei sein, in dem Versagen auftritt.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Jeremy
Mitglied



Sehen Sie sich das Profil von Jeremy an!   Senden Sie eine Private Message an Jeremy  Schreiben Sie einen Gästebucheintrag für Jeremy

Beiträge: 129
Registriert: 04.02.2009

erstellt am: 05. Aug. 2010 17:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für feh 10 Unities + Antwort hilfreich

Hallo femchen,

dieser Beitrag ist zwar schon einige Tage alt, aber ich habe folgenden Problem: nach meiner Parameterstudie stehen alle Daten in den odb-Datei bereit. Wie kann ich jetzt die Daten über einen history Output für alle steps und frames ausgeben lassen?  Mit aStudy.gather kann ich ja immer nur einen frame angeben. Gibt es einen Befehl wie frames= ALL oder muss eine Schleife laufen?

Gruß
Jeremy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz