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).