Benutzer-Unterprogramme stellen in Abaqus eine hervorragende Möglichkeit dar, die Anwendungsbreite von Abaqus deutlich zu erweitern. Benutzer-Unterprogramme werden traditionell in der Programmiersprache Fortran erstellt. Die Verwendung von C++ ist ebenfalls möglich. Seitens Dassault Systèmes SIMULIA gibt es aus Gründen der Qualität und Performance für Abaqus Vorgaben zur Verwendung eines Fortran Compilers. In den letzten Jahren beschränkt sich dies auf den Intel Fortran Compiler.
In diesem Beitrag wollen wir auf die Installation und Verwendung eines Fortran Compilers eingehen. Hierbei liegt des Schwerpunkt zur Zeit auf der Installation unter Windows.
Viel Wissenswerte zur aktuellen Abaqus Version sowie den technischen Voraussetzungen findet man in den Programm Dircetories Library, [1].
Hier wählt man nun die Product Line (SIMULIA Abaqus, Isight, fe-safe, Tosca), das Release (Established Products 2022) und das Level (FD 08 (FP.2319)) aus. Hierbei steht FP.2319 für den Fixpack aus der 19. Woche des Jahres 2023. Unter den Prerequisites Abaqus findet sich in den Additional Notes der Hinweis zumCompiler, siehe Bild unten.
Unter Windows benötigt der Intel Fortran Compiler zusätzlich Microsoft Visual Studio, [2]. Eine ausführliche Installationsanleitung findet sich in [3]. Für die Knowledge Base benötigen Sie eine ID. Gerne sind wir bei der Erstellung behilflich.
Bis dato haben wir keine Probleme mit neueren Versionen des Fortran Compilers beobachtet.
Intel oneAPI Toolkits ist eine Sammlung von Intel Software-Entwicklungswerkzeugen [4]. In sogenannten Kits stehen verschiedene Gruppen von Werkzeugen zur Verfügung (Kits). Aufbauend auf einem Base Toolkit gibt es Kits für die HPC, IoT und der Rendering Entwicklung. Es sollten immer zuerst das Base Toolkit und dann, nach Bedarf, weitere Kits installiert werden.Der Fortran Compiler ist im HPC Toolkit.
Intel oneAPI beinhaltet zur Zeit 2 Fortran Compiler:
- ifort – klassisch (im Folgenden wird dieser verwendet)
- ifx – ifort plus weitere Funktionalitäten OpenMP
Bitte achten Sie darauf, ob ifort in zukünftigen Versionen entfällt
Unter Windows benötigt der Fortran Compiler Microsoft Visual Studio. Informationen zur Kompatibilität der Versionen findet sich in [5]. Folgende Kombination wird für Windows 11 empfohlen: OneAPI 2022.3 – Visual Studio 2019.
Kostenlos steht aber jeweils nur die aktuelle Version zur Verfügung.
Microsoft Visual Studio ist eine umfassende Software Entwicklungsumgebung (IDE) für .NET- und C++-Entwickler [10]. Es gibt eine kostenlose Community Edition – Bedingungen im rechten Bild unten
Unter Windows sind die von Abaqus verwendeten Routinen mit den Bibliotheken von Microsoft verlinkt. Üblicherweise werden auch notwendige Bibliotheken bei jeder Abaqus Installation mit installiert. Dementsprechend wird Visual Studio benötigt, um Benutzer-Unterprogramme zu erstellen. Unter Linux ist deren Installation nicht notwendig.
Unter den Intel Website findet sich der Hinweis, daß die Microsoft Build Tools ausreichend sein könnten. Auf der Microsoft Website findet sich der Hinweis, daß „Die Verwendung dieses Tools erfordert eine gültige Visual Studio Lizenz.“. Auch werden die C++ Möglichkeiten innerhalb von Abaqus benötigt, wenn unter Windows C++ Anwendungen erstellt werden sollen.
Es scheint auch, dass für die Community Version jeweils nur die aktuelle Version installiert werden kann. Hier 2022.
Intel oneAPI steht in der Website unter Free Development Tools. In [4] findet sich der Link auf das End User License Agreement
In [8] findet sich die oneAPI Licensing Overview. Hierbei gehört der Fortran Compiler zu den End User License Agreement for Developer Tools.
Es findet sich unter 2.1 B: „use the Materials solely for Your personal or business use to develop Your Product, in accordance with the documentation included as part of the Materials;“.
Hinsichtlich des Support wird unterschieden zwischen einem Community Support (wohl kostenfrei) und einem Priority Support (wohl kostenpflichtig). Ältere Versionen sind wohl nur mit der kostenpflichtigen Support-Version [9] erhältlich, siehe auch Bild unten.
Microsoft Visual Studio
- Visual Studio-Kern-Editor (per default)
- Desktopentwicklung mit C++ (manuell zusätzlich auswählen)
- Bild rechts zeigt die installierten Komponenten
Es wird der Visual Studio Installer mit installiert, mit welchem sich die Installation sehr gut anpassen lässt.
Intel one API
Beim Start des Installationsprogrammes wird die Umgebung geprüft und das installierte Visual Studio erkannt. Hier dann bitte eine entsprechend Kopplung mit Visual Studio auswählen.
- Intel oneAPI Base Kit
- Intel oneAPI HPC Kit
Über den Installer (hier aber die herunter geladene .exe-Datei) lässt sich die Installation gut darstellen
Insgesamt erfolgt die Installation problemlos. Ein Installation kann auch gut durchgeführt werden, nachdem Abaqus bereits installiert wurde. Eine ausführliche Installationsanleitung findet sich auch in [3]
Ein Problem bei der Verwendung des Fortran Compilers unter Windows ist das richtige Aktivieren der Umgebungs-Variablen. In [3] findet sich eine Anleitung, wie man diese Aktivierung in den Aufruf von Abaqus und Abaqus/CAE integrieren kann. Dies macht insbesondere dann Sinn, wenn man User Subroutinen immer aktiv der Berechnung mitgeben will. In Form von: abaqus –job jobname –user subroutine
Eine Alternative ist der Start von Abaqus/CAE und von Berechnungen aus dem CMD-Fenster des Intel Fortran Compilers. Das CMD Fenster öffnen Sie über das Start-Menü und wählen das Intel oneAPI command prompt für Intel 64, siehe Bild rechts.
Ein Nachteil ist die antiquierte Benutzerführung eines CMD Fensters.
Hierbei bietet es sich an, Benutzer-Unterprogramme nicht aktiv sondern als Abaqus Bibliothek zu verwenden. Das hat auch noch andere Vorteile. (siehe unten)
Sowohl unter Windows als auch unter Linux lassen sich Bibliotheken erstellen, auf welche beim Start von Abaqus zurück gegriffen wird.
Über abaqus make library=usersubroutine erstellt man eine Bibliothek, welche nicht aktiv dem Berechnungsaufruf über user=usersubroutine mitgegeben werden muss. Auch kann man die Subroutine für verschiedene Abaqus Versionen bereitstellen.
So erstellt man z.B. ein Verzeichnis Fortran und kopiert das Benutzerunterprogramm exampleSub.f in dieses Verzeichnis. Dann erstellt man ein Unterverzeichnis v2022, wechselt in dieses Verzeichnis und führt folgenden Befehl aus
abq2022hf5 make library=..exampleSub
Es werden nun die Dateien standardU.dll (im Falle eines Benutzerunterprogrammes für Abaqus/Standard) und exampleSub-std.obj erstellt.
Um diese Bibliothek in einer Abaqus Berechnung verwenden zu können, muss die abaqus_v6.env im Home- oder Working-Directory erstellt bzw. angepasst werden. Folgende Zeile sollte eingefügt werden
usub_lib_dir=“d:\niceDir\Fortran\v2022“
Ein Vorteil dieser Methode ist, dass das Benutzerunterprogramm nur an einem Ort steht und so nicht an verschiedenen Orten in verschiedenen Versionen existieren kann.
Ein andere Vorteil ist, dass man diese Bibliothek auch auf anderen Computern ohne Fortran Compiler verwenden kann. Einzige Bedingung ist, daß es sich um das gleiche Betriebssystem und die gleiche Abaqus Version handeln sollte.
- Benutzer-Unterprogramme stellen in Abaqus eine hervorragenden Möglichkeit dar, die Anwendungsbreite von Abaqus deutlich zu erweitern. Benutzer-Unterprogramme werden traditionell in der Programmiersprache Fortran erstellt. Die Verwendung von C++ ist ebenfalls möglich.
- Seitens Abaqus gibt es aus Gründen der Qualität und Performance Vorgaben zur Verwendung eines Fortran Compilers. In den letzten Jahren beschränkt sich dies auf den Intel Fortran Compiler.
- Mit oneAPI stellt Intel verschiedene Software-Werkzeuge seit einiger Zeit kostenlos zur Verfügung. Darunter auch den für die Erstellung von Benutzer-Unterprogrammen in Abaqus notwendigen Fortran Compiler.
- Unter Windows ist aber zusätzlich die Installation von Microsoft Visual Studio notwendig. Dieses Produkt ist für die meisten Firmen (Enterprise) kostenpflichtig.
- Eine (wesentliche) Einschränkung der kostenlosen Varianten liegt darin, daß zum Download jeweils nur die aktuelle Version zur Verfügung steht.
- Seitens Abaqus können compilierte Benutzer-Unterprogramme auf gleichen Betriebssystemen für die gleiche Abaqus Version beliebig verteilt werden. So ist eine minimale Installation von oneAPI und Visual Studio für die Entwicklung von Benutzer-Unterprogramme auf nur einem Computer möglich.
- Empfehlung: Für eine professionelle und häufig eingesetzte Verwendung von Benutzer-Unterprogrammen sollten jeweils kommerzielle Versionen des Intel Fortran Compilers und des Microsoft Visual Studio eingesetzt werden.
Zum Teil basiert der vorliegende Text und gezeigter Abbildungen auf der Recherche ausgewerteter Literatur. Ist dies der Fall, so werden die Quellen im Text durch eine Zahl, z.B. [2], gekennzeichnet und die Quelle hier aufgeführt.
Zum Teil sollen die hier aufgeführten Quellen aber auch einfach nur als Empfehlung weiterführender Literatur verstanden werden.
- oneAPI License Overview – Nov 22 2021.pdf
- Intel End User License Agreement forDeveloper Tools – Oct2021.pdf
[9] Intel Priority Support Lizenz[10] Microsoft Visual Studio