Autor
|
Thema: .inp Dateien ausserhalb des Workingdirectory per Script starten? (1370 mal gelesen)
|
Choqui Mitglied
Beiträge: 10 Registriert: 21.11.2006 Win7 24GB Ram Intel Xeon W3670 6x3,2Ghz Nvidia Quadro 2000 Abaqus 6.9 Catia V5 R20 Matlab Python 2.7
|
erstellt am: 20. Okt. 2011 13:55 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe ein ganz simples Problem. Ich starte ein Script mit Abaqus, dieses liegt in C:/temp. Das Skript wiederrum befiehlt abaqus eine Inputdatei zu rechnen, diese liegt jedoch in c:/temp/1/ Das Problem ist, das Abaqus dann versucht ein Scratchdirectory zu erstellen und zwar unter c:/users/PCNutzer/appdata... das klappt aber nicht. Lege ich die .inp Datei einfach auch in C:/temp ist alles bestens und es läuft. Gibt es eine Möglichkeit das Problem zu beheben? Ich würde gerne mehrere .inp dateien nacheinander durchrechnen lassen. Diese befinden sich der Übersicht halber aber alle in eigenen Subdirectories. Wenns gar nicht geht wärs auch nicht so dramatisch, wie gesagt, ist nur ein kosmetischer Teil des Projekts. Aber vielleicht gibts ja nen Trick dafür. im abaqus_v6.env das Scratchverzeichnis manuell zu setzen hat übrigens nichts genützt! vielen Dank schonmal! Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jeremy Mitglied
Beiträge: 129 Registriert: 04.02.2009
|
erstellt am: 21. Okt. 2011 08:20 <-- editieren / zitieren --> Unities abgeben: Nur für Choqui
Warum erstellst du nicht eine batch Datei und startest die Abaqus Jobs über die Windows-Kommandozeile, etwas so: abq-jobs.bat: call abaqus inp=... job=... cpus=... interactive usw. Eventuell brauchst du den gesamten Pfad hinter inp=, wenn die inp-Dateien in unterschiedlichen Verzeichnissen liegen. Wenn du mit dem Skript arbeiten möchtest, reicht es vielleicht schon, wenn man das Arbeitsverzeichnis bei jedem Aufruf anpasst. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Choqui Mitglied
Beiträge: 10 Registriert: 21.11.2006 Win7 24GB Ram Intel Xeon W3670 6x3,2Ghz Nvidia Quadro 2000 Abaqus 6.9 Catia V5 R20 Matlab Python 2.7
|
erstellt am: 21. Okt. 2011 10:28 <-- editieren / zitieren --> Unities abgeben:
Hey, danke erstmal für den Tip. Genau das hab ich auch schonmal ausprobiert mit der batch datei. Und jedesmal wenn ich ihm eine komplette Pfadangabe gebe, versucht er besagtes Scratchdirectory zu erstellen. Ohne Pfadangabe läufts, jedoch nur, wenn man sich sowie schon in dem Verzeichnis befindet. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Choqui Mitglied
Beiträge: 10 Registriert: 21.11.2006 Win7 24GB Ram Intel Xeon W3670 6x3,2Ghz Nvidia Quadro 2000 Abaqus 6.9 Catia V5 R20 Matlab Python 2.7
|
erstellt am: 21. Okt. 2011 10:56 <-- editieren / zitieren --> Unities abgeben:
Jetzt läufts! Der Hinweis mit dem Workdirectory war der Entscheidende! Den hatte ich zuerst übersehen. Jetzt hab ich in meinem Script und der darin befindlichen for-Schleife per Parameter das Directory jedesmal geändert und nu läufts! besten Dank! 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: 21. Okt. 2011 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für Choqui
Wenn dein Script weiß welche Inputdateien gerechnet werden sollen und wo die liegen, kannst du doch die Jobs direkt von deinem Python-Script abschicken lassen, kontrollieren wann sie fertig sind und dann den nächsten abschicken. Arbeitsverzeichnis abfragen und wechseln: getcwd und chdir im Modul os Job abschicken: system im Modul os Das scratch kannst du ggf. auf der Befehlszeile mit vorgeben. Überwachen ob ein Job noch läuft: Nach abschicken z.B. 10s warten (Modul time) und dann alle 5s kontrollieren was am Ende der .log-Datei steht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |