Wiss. Rechnen » Abaqus
 

Abaqus ist eine Finite-Elemente-Software von SIMULIA. Sie ist auf dem Cluster in den Versionen 2018 (Standard) sowie in den älteren Versionen 2017 Hotfix 9 und 6.13-2 installiert.

Um Abaqus zu nutzen, muss das entsprechende Modul geladen werden:

$ module load abaqus

beziehungsweise für die älteren Versionen:

$ module load abaqus/2017
$ module load abaqus/6.13-2

Ein guter Einstiegspunkt ist die integrierte Hilfefunktion von Abaqus, erreichbar mit dem Befehl:

$ abaqus doc

Dieser Befehl öffnet ein Fenster und Sie müssen deshalb mit X11-Forwarding (ssh -X) angemeldet sein.

Die Abaqus-Dokumentation ist außerdem aus dem Programm selbst sowie über diesen Link erreichbar.

Lizenzen

Die Fakultät IV finanziert die Abaqus-Lizenzen an der Uni Siegen. Sie dürfen nur für nicht kommerzielle Zwecke in Lehre und Forschung eingesetzt werden. Die Kosten sind jeweils im Dezember für das Folgejahr fällig und werden anteilsmäßig von verschiedenen Instituten getragen. Die Höhe der Kosten ergibt sich nach Anteil der Nutzung. Geringfügige Nutzung oder Testrechnungen sind kostenfrei. Ansprechpartner für die Abaqus-Lizenz-Vereinbarungen ist Holger Poggel.

Mit dem Befehl lmstat können die zur Verfügung stehenden Tokens (Lizenzen) für jedes der Abaqus-Module angezeigt werden.

$ lmstat 
lmutil - Copyright (c) 1989-2008 Acresso Software Inc. All Rights Reserved. 
Flexible License Manager status on Thu 11/15/2012 16:33 
...

Die Umgebungsdatei von Abaqus wurde erweitert, sodass die Option queue=tokens benutzt werden kann, um für einen Job die benötigten Tokens im Voraus zu ermitteln, ohne die Berechnung zu starten.

$ abaqus -j myjob -queue tokens 
Number of Tokens Required: 5

oder alternativ:

$ abaqus j=myjob cpus=12 queue=tokens 
Number of Tokens Required: 14

Nutzung

Abaqus verfügt über eine grafische Oberfläche sowie einen Kommandozeilenmodus. Erstere kann mit

$ abaqus cae

aufgerufen werden.

Tipp für neue Nutzer: auf dem Willkommensbildschirm, der sich beim ersten Start öffnet, gibt es einen “Start Tutorial”-Link.

Kommandozeilenbefehle bestehen in der Regel aus dem Wort abaqus und mindestens einem weiteren Befehl. Mögliche Kommandozeilenbefehle können angezeigt werden mit:

$ abaqus help

In the following execution procedures, "abaqus" refers to the command 
used to run Abaqus. 

Obtaining information 
abaqus {help | information={environment | local | memory | release | support | system | all} [job=job-name] | whereami} 
...

Mit Abaqus auf dem Cluster rechnen

Abaqus kann parallele Rechnungen durchführen, da es intern MPI verwendet. Allerdings wird pro Prozess eine Lizenz benötigt und die Kosten vervielfachen sich entsprechend. Außerdem müssen zum Zeitpunkt der Rechnung genügend freie Lizenzen zur Verfügung stehen.

Die übliche Vorgehensweise für Abaqus-Jobs besteht darin, im Job-Skript den Abaqus-Befehl mit der entsprechenden Input-Datei aufzurufen:

$ abaqus job=<Jobname> input=<Inputdatei.inp> cpus=$SLURM_NTASKS

Alternativ kann von der umfangreichen Python-Funktionalität von Abaqus Gebrauch gemacht werden. So kann ein Python-Skript geschrieben werden, dass Abaqus aufruft. Im Job-Skript wird dann nur Python mit dem entsprechenden Python-Skript aufgerufen:

$ python3 <Skriptname.py>

Tipp für Numpy/Scipy-Nutzer: Abaqus benutzt die Datentypen "int32", "float32" und "float64". Wenn Sie in Python (z.B. in einem Numpy-Array) den Datentyp int angeben, stoppt Abaqus mit der Fehlermeldung, dass 64-Bit-Integers nicht unterstützt werden. Die in dieser Meldung empfohlene Lösung, den Datentyp "int" zu verwenden, ist irreführend, weil dieser auf dem Cluster standardmäßig 64-Bit-Integers erzeugt. Stattdessen ist es notwendig, explizit 32-Bit-Integer-Werte zu verwenden (z.B. dtype="int32" im Falle von Numpy-Arrays).

Aktualisiert um 12:36 am 7. Mai 2018 von Jan Philipp Stephan