Kurzbeschreibung

OpenFOAM (Open Field Operation and Manipulation) ist ein Simulationspaket zur numerischen Lösung strömungsmechanischer Probleme (CFD). Das Paket stellt zahlreiche Lösungsverfahren (Solver) für unterschiedliche Anwendungsbereiche und Werkzeuge zur Modellgenerierung und Analyse (Pre- und Postprocessing) bereit. Darüber hinaus erlauben C++ Bibliotheken die Entwicklung angepasster Applikationen. Das Programm wird vom Unternehmen OpenCFD entwickelt und als Open Source Software im Quellcode unter der General Public License (GPL) zur Verfügung gestellt.

Kommunikations- und Informationszentrum (kiz)

  • Helpdesk

    Kontaktieren Sie uns bei Fragen und Problemen zu den Services des kiz:
    Mo - Fr  8 - 18 Uhr
    +49 (0)731/50-30000
    helpdesk(at)uni-ulm.de
    Kundenportal
    [mehr]

  • Service-Points

    An den Service-Points können Sie uns persönlich aufsuchen.
    [mehr]

  • Identitätsmanagement

    Self Service Funktionen des Identitätsmanagementsystems (IDM):

    • Berechtigungen verwalten
    • Dienste abonnieren
    • Passwörter ändern
    • ...

    IDM Self Services
    [mehr]

  • Literatursuche

  • kiz von A bis Z

    Etwa 400 Stichwörter führen Sie direkt zu einer einschlägigen Web-Seite des kiz.
    A-Z-Liste
    Wenn Sie ein Stichwort vermissen, geben Sie uns Nachricht: Redaktion

Verfügbarkeit an der Universität Ulm

Zielsystem/ZielgruppeVerfügbarkeit
bwUniCluster (Karlsruhe) Ja, nach Laden des entsprechenden Softwaremoduls
bwForCluster JUSTUS (Ulm)Nein
kiz CUSS Linux Cluster (Ulm)Ja, nach Laden des entsprechenden Softwaremoduls
kiz Linux Pools (Ulm)Ja, nach Laden des entsprechenden Softwaremoduls
kiz Windows Pools (Ulm)Nein
Uni-Ulm-weiter LizenzzugriffJa (GPL)
Externer LizenzzugriffJa (GPL)
Softwarebezug StudierendeJa. OpenFOAM steht kostenlos zum Download zur Verfügung.
Softwarebezug MitarbeiterJa. OpenFOAM steht kostenlos zum Download zur Verfügung.

Nutzungsbedingungen und Lizenzvereinbarungen

OpenFOAM ist Freie Software und steht unter der GNU General Public License (GPL). Die Software darf für jeden Zweck genutzt, studiert, bearbeitet und in ursprünglicher oder veränderter Form weiterverbreitet werden. Das schließt auch die kommerzielle Nutzung ein, sofern die Software, die auf Grundlage dieser Software entsteht, ebenfalls unter der GPL lizensiert wird.

Weitere Details zur Lizenz sind auf der entsprechenden OpenFOAM Webseite verfügbar.

Weiterführende Dokumentation

Ausführliche Dokumentationen zu OpenFOAM gibt es auf den Webseiten des Anbieters: http://www.openfoam.com

Spezifische Informationen zur kiz Installation und Verweise auf weiterführende Informationsquellen erhalten Sie über das Kommando

module help cae/openfoam

Zugriff auf Software (oben genannte Cluster und Pools)

Zur Anpassung der Arbeitsumgebung für OpenFOAM laden Sie das entsprechende Modul mit dem Kommando

module load cae/openfoam

OpenFOAM macht extensiven Gebrauch von Umgebungsvariablen, die nicht alle im Modul geladen werden können. Deshalb müssen Sie zusätzlich den folgenden Befehl ausführen, um OpenFOAM benutzen zu können:

source $FOAM_INIT

Beachten Sie bitte, dass dadurch die Umgebungsvariablen der aktuellen Shell massiv beeinflusst werden. 

Das OpenFOAM Paket stellt mehr als 200 Anwendungen für spezifische Anwendungsbereiche bereit. Zur Veranschaulichung wird hier exemplarisch eine interaktive  Arbeitssitzung dargestellt, die auf das einführende Tutorial im OpenFOAM Benutzerhandbuch Bezug nimmt (Eingaben des Anwenders sind in fetter Schrift gedruckt, die Ausgaben der Programme sind teilweise gekürzt):

Zunächst wird das OpenFOAM Modul geladen und die Initialisierung der Umgebungsvariablen durchgeführt:

user@host:~> module load cae/openfoam
user@host:~> source $FOAM_INIT

Mit dem folgenden Kommando wird unterhalb von $HOME/OpenFOAM ein Arbeitsverzeichnis für den aktuellen Nutzer erstellt:

user@host:~> mkdir -p $FOAM_RUN

Anschliessend kann man die Beispielfälle aus dem OpenFOAM Tutorial in das Arbeitsverzeichnis kopieren:

user@host:~> cp -r $FOAM_TUTORIALS $FOAM_RUN

Zur Ausführung der ersten Beispielsimulation (laminare Strömung in einem quaderförmigen Hohlraum) wechselt man in das entsprechende Verzeichnis:

user@host:~> cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity

Bei einfachen Geometrien (wie in diesem Beispiel) lässt sich mit dem blockMesh Kommando ein strukturiertes Netz erzeugen:

user@host:~> blockMesh
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.7.1 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 1.7.1-03e7e056c215
Exec : blockMesh

. . .

Creating mesh from block mesh

Default patch type set to empty

Writing polyMesh

End

Bei komplizierteren Geometrien mit unstrukturierten Netze bieten sich andere Präprozessoren, wie z.B. HyperMesh oder ICEM CFD, an.

Für die Lösung kommt der Solver icoFoam zum Einsatz, der speziell zur Beschreibung von laminaren (nicht-turbulenten) Strömungsprozessen bei inkompressiblen Flüssigkeiten geeignet ist:

user@host:~> icoFoam

. . .

Create time

Create mesh for time = 0

Reading transportProperties

Reading field p

Reading field U

Reading/calculating face flux field phi

Starting time loop

Time = 0.005

. . .

End

Zur Visualisierung der Ergebnisse wird standardmäßig das in OpenFOAM eingebettete Programm ParaView eingesetzt. Dazu führt man das Kommando paraFoam aus und wählt in dem erscheinenden Menü den OpenFOAM Reader aus:

user@host:~> paraFoam

 

 

 

 

Ausführliche Informationen zur interaktiven Visualisierung der Simulationsergebnisse mit ParaView finden sich im OpenFOAM Anwenderhandbuch. Hier ist beispielhaft die Druckverteilung in der Kavität dargestellt: 

 

 

Beachten Sie bitte, dass längere Berechnungen auf den Rechnern der oben genannten Cluster immer über das Queuing-System des Clusters ausgeführt werden müssen.

Ansprechpartner

Bei Fragen und Problemen wenden Sie sich bitte an unseren Softwaresupport.