Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Python - Fragen zu möglicher Automatisierung

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:  Python - Fragen zu möglicher Automatisierung (2402 mal gelesen)
Gunkerle
Mitglied
WMA


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

Beiträge: 133
Registriert: 15.03.2007

erstellt am: 03. Apr. 2008 09: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

Hallo Liebe Abaqusmitstreiter,
ich habe folgende Fragen:

1.)

In Abaqus kann man ja Werte einzelner Variablen verfolgen und bei Überschreitung eines kritischen Wertes die Rechnung abbrechen lassen.
Ich bin auf der Suche, wie das mittels Python-skripting gemacht werden kann. Wer kann mir da weiterhelfen?

Ist es möglich folgende Nebenbedingungen dabei zu berücksichtigen:

2.a)
Es soll auf jeden Fall bevor die Rechnung abgebrochen wird die ODB für alle Variablen aktualisiert werden, auch dann, wenn eingestellt ist, dass z.B. alle x-time increments nur die Field/History-Outputs erstellt werden sollten und der nächste Zeitpunt an dem die Werte ausgeschrieben werden sollen noch nicht erreicht wurde.

2.b)
Es sollen alle für den Restart nötigen Files erstellt werden.


2.C) Kann man mehrere Grenzen angeben, also z.B. eine obere und unterer Schranke, für der Abaqus abbrechen soll und kann man Schranken für mehrere Variablen angeben?


3.)
Ich weiß, dass ich Dateien mittels Python erzeugen kann uznd Daten anhängen kann. Es ist ja möglich mittels eines Batch Files "automatisch" mehrere Rechnungen hintereinander ablaufen zu lasssen.

Meine Frage lautet nun:
Kann man den START/Ausführung  eines Batch Files mittels Python Skripting steuern und wenn ja wie?

Die Idee die dahinter steckt, ist dass ich nach dem erzwungenen Abbruch mittels obiger Variablenüberwachung im Batch-File einen entsprechenden Eintrag generieren möchte, der den Start einer neuen Rechnung veranlasst und dieses dann anschließend ausgeführt werden soll, ohne dass man dies manuell tun müsste.


Vielen dank im voraus für alle Antworten

                  ciao Gunkerle



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: 03. Apr. 2008 12:10    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 Gunkerle 10 Unities + Antwort hilfreich

Direkt mit den Solvern kannst du nur über die User Subroutines kommunizieren. Um eine Rechnung so abbrechen zu lassen, müsstest du also eine User Subroutine programmieren oder in Explicit das Keyword *Extreme Value benutzen.

Mit Python kannst du CAE/Viewer steuern und einen Job starten und abbrechen. D.h. für dich gäbe es mit Python nur die Möglichkeit dass du Ergebnisse in Dateien überwachst und abhängig davon den Job abbrichst. Es sollte so also möglich sein, dass du mit Python z.b. alle x Sekunden/Minuten die odb überprüfst ob ein neuer Frame da ist. Falls dem so ist, kannst du deine Variablen lesen, auswerten und dann ggf. den Job abbrechen.

2a) Generell kannst du mit Python nur Ergebnisse überwachen die schon irgendwohin geschrieben wurden. D.h. du müsstest mindestens die Variable für das Abbruchkriterium häufiger schreiben. Dass beim Abbruch dann noch bestimmte Dinge im Solver passieren (Output schreiben) kannst du so aber nicht beeinflussen.

2b) Mir dem Parameter 'Overlay' kannst du ja alte Restart-Daten überschreiben lassen. Du kannst somit jedes Increment Restart-Daten schreiben ohne das Datenvolumen extrem zu vergrößern.

2c) Bei der beschriebenen Variante mit Python kein Problem.

3) Das geht. Du kannst aber auch direkt mit Python einen Befehl zum starten oder abbrechen eines Jobs auf der Kommandozeile absetzen. So kannst du dir den Weg über die Batch-Datei sparen.

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

Gunkerle
Mitglied
WMA


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

Beiträge: 133
Registriert: 15.03.2007

erstellt am: 03. Apr. 2008 14:39    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

 
Zitat:
Original erstellt von Mustaine:
Direkt mit den Solvern kannst du nur über die User Subroutines kommunizieren. Um eine Rechnung so abbrechen zu lassen, müsstest du also eine User Subroutine programmieren oder in Explicit das Keyword *Extreme Value benutzen.

Mit Python kannst du CAE/Viewer steuern und einen Job starten und abbrechen. D.h. für dich gäbe es mit Python nur die Möglichkeit dass du Ergebnisse in Dateien überwachst und abhängig davon den Job abbrichst. Es sollte so also möglich sein, dass du mit Python z.b. alle x Sekunden/Minuten die odb überprüfst ob ein neuer Frame da ist. Falls dem so ist, kannst du deine Variablen lesen, auswerten und dann ggf. den Job abbrechen.


Erst mal Danke fuer die rasche Antwort.
Wenn ich es richtig verstanden habe kann man sich mittels ODB commands die maximalen Werte einer Variablen mittels Python verschaffen. Ich habe allerdings noch nicht gefunden, wie (bzw. wo im Skripting manual) ich etwas zum Abbrechen der Rechnung finden kann & wie ich dies dann mit dem gefundenen maximalen Wert verknuepfen kann. 

In der Umsetzung musste es ja dann so aussehen, dass If maxwert > abbruchwert, dann breche ab. Wobei maxwert der mittels odb commands bestimmte maximale Wert der gesuchten Variable ist.

Weisst Du wo ich die Erfassung & Steuerung eines Abbruches ueber  Extreme Value finden kann?


ciao Gunkerle


Zusatz:
mittels der update Option sollte also zunaechst geprueft werden, ob eine neue aktualisierte odb vorliegt und dann muesste der Vergleich bzgl. der abbruch respektive extremwerte erfolgen.

[Diese Nachricht wurde von Gunkerle am 03. Apr. 2008 editiert.]

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: 03. Apr. 2008 15:33    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 Gunkerle 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Gunkerle:
  Erst mal Danke fuer die rasche Antwort.
Wenn ich es richtig verstanden habe kann man sich mittels ODB commands die maximalen Werte einer Variablen mittels Python verschaffen. Ich habe allerdings noch nicht gefunden, wie (bzw. wo im Skripting manual) ich etwas zum Abbrechen der Rechnung finden kann & wie ich dies dann mit dem gefundenen maximalen Wert verknuepfen kann.

Wenn dein Abbruchkriterium erfüllt ist, brauchst du doch nur mittels Script einen Kommandozeilenbefehl zum abbrechen des Jobs absetzen. abaqus j=jobname terminate


Zitat:

Weisst Du wo ich die Erfassung & Steuerung eines Abbruches ueber  Extreme Value finden kann?

Das Keyword *Extreme Value gibt es nur in Explicit. Schau mal ins Keyword Reference Manual und Users Manual 6.3.3 Explicit dynamic analysis - Abschnitt: Monitoring output variables for extreme values


Zitat:

mittels der update Option sollte also zunaechst geprueft werden, ob eine neue aktualisierte odb vorliegt und dann muesste der Vergleich bzgl. der abbruch respektive extremwerte erfolgen.

Das Überprüfen der odb kann so erfolgen, dass du das letzte verfügbare Frame abfragst und vergleichst ob das schon bei der letzten Abfrage da war. Wenn es neu ist werden dann Ergebnisse ausgelesen und ausgewertet.

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