Autor
|
Thema: *.fil - File in kleinere zerlegen ? (2297 mal gelesen)
|
lukasz Mitglied
Beiträge: 157 Registriert: 25.11.2005
|
erstellt am: 15. Dez. 2006 10:12 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich benutze Abaqus als Solver und Medina als Postprozessor. Als Output hat sich in dieser Konstellation das *.fil - File bewährt. (nicht *.odb - das klappt mit Medina eher schlecht als recht). Leider werden diese fil-Files sehr groß. Im Moment habe ich einen job der über Weihnachten laufen soll, der schätzungsweise ca. 72 gb an Ergebnissen erzeugt. Ich suche nach einer Möglichkeit entweder einen fil-File für jeden Step (hab 18 Steps) einzeln zu schreiben oder nachträglich zu zerlegen. Ich muß diese Daten später auch liefern.... Falls jemand eine Idee hat dann bitte her damit ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
oeztueke Mitglied
Beiträge: 55 Registriert: 04.11.2005
|
erstellt am: 15. Dez. 2006 11:14 <-- editieren / zitieren --> Unities abgeben: Nur für lukasz
eine möglichkeit wäre nicht jeden inkrement auszugeben, wenn es nicht unbedingt notwendig ist. eine andere möglichkeit wäre. einige steps als restart in eine neue inp-file einzuschreiben und alle berechnungen mittels einer bat-datei hintereinander zu starten. ------------------ koe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lukasz Mitglied
Beiträge: 157 Registriert: 25.11.2005
|
erstellt am: 18. Dez. 2006 11:02 <-- editieren / zitieren --> Unities abgeben:
Ich gebe ja schon nur das nötigste aus und nur das letzte Increment aus dem Step Das mit den restarts habe ich auch schon in Erwägung gezogen. Bin leider nicht da um die Restarts alle paar Tage manuell zu machen. Mit der bat-Datei sollte es gehen, ich muß es mir aber anschauen, habe ich bisher noch nie gemacht. Falls da jemand eine Vorlage (für Linux) parat hätte, wäre ich dankbar. Mit abaqus append lassen sich zwar mehrere *.fil-Files zusammenspielen, aber die umgekehrte Funktionalität gibt es meines Wissens nicht. [Diese Nachricht wurde von lukasz am 18. Dez. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
oeztueke Mitglied
Beiträge: 55 Registriert: 04.11.2005
|
erstellt am: 18. Dez. 2006 14:21 <-- editieren / zitieren --> Unities abgeben: Nur für lukasz
|
lukasz Mitglied
Beiträge: 157 Registriert: 25.11.2005
|
erstellt am: 20. Dez. 2006 11:20 <-- editieren / zitieren --> Unities abgeben:
Danke, war ein sehr guter Tip ! Das ist hier der Code:
Code: import os, sysdirectory1 = 'D:/users' directory2 = 'D:/users/jdoe' directory3 = 'D:/users/jdoe/examples' os.chdir(directory1) status = os.system('abaqus -j test1 interactive > test1.log') if status == 0: os.chdir(directory2) status = os.system('abaqus -j test2 interactive > test2.log') else: sys.exit(status) if status == 0: os.chdir(directory3) status = os.system('abaqus -j test3 interactive > test3.log') else: sys.exit(status)
Das Beispiel ist schonmal ein guter Anfang, allerdings habe ich zwar allgemeine Kenntnisse was Skriptsprachen angeht, kann aber kein Python. Den Code da oben aus dem Beispiel verstehe ich ohne weiteres, zwei Fragen habe ich aber noch. 1) Wie modifiziere ich den Code, so dass der zweite Job als Restart vom ersten gestartet wird ? 2) Wie verhindere ich das die *.fil-Files fortgeschrieben werden (ist normalerweise der Fall). Per Hand würde ich die *.fil-Files einfach in eine andere directory verschieben, bevor ich den Restart mache. Wahrscheinlich kann ich dieses "mv" -Commando auch in dieses Skript einbauen. Ich nehme an dass es möglich ist in Python ein Systembefehl auszuführen, aber wie ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |