# OpenFOAM

OpenFOAM (Open Source Field Operation and Manipulation) ist ein in C++ geschriebenes, numerisches, freies Simulationssoftwarepaket für kontinuumsmechanische Probleme. Das Hauptaugenmerk liegt auf dem Lösen von Strömungsproblemen (Numerische Strömungsmechanik (englisch) CFD).

## Programminhalte

Neben vielen vordefinierten Standardlösern für Strömungsmechanik inklusive Mehrphasenströmungen existieren weitere Löser, unter anderem für folgende physikalische Problemstellungen:
* Elektromagnetismus
* Strukturmechanik
* Verbrennung
* Wärmeleitung
Weitere Löser können in der OpenFOAM-eigenen Syntax hinzugefügt werden.
Turbulenz kann mittels RANS, Grobstruktur-Simulation oder direkter numerischer Simulation abgebildet werden.
Um Systeme von partiellen Differentialgleichungen lösen zu können, sind in OpenFOAM folgende Diskretisierungsschemen als C++-Programmbibliothek implementiert:
* Finite-Volumen-Methode (FVM),
* Finite-Elemente-Methode und
* Finite-Flächen-Methode (Finite Area).
Das Vorbereiten einer Simulation (Preprocessing) erfolgt in OpenFOAM mithilfe beigelegter Tools auf der Kommandozeile ohne GUI. Es ist aber auch möglich, externe Programme zu benutzen und die erzeugten Netze anschließend in OpenFOAM zu importieren. Das Einstellen der Simulationsparameter erfolgt auch hier über die Kommandozeile.
Die grafische Aufbereitung der Simulationsergebnisse (Postprocessing) geschieht standardmäßig mithilfe der Software ParaView. Alternativ können die Ergebnisse in Formate einiger weit verbreiteter, kommerzieller Visualisierungsprogramme wie etwa Tecplot360 oder FieldView exportiert werden.
OpenFOAM wird in zunehmendem Maße an Universitäten in Lehrveranstaltungen verwendet.

## Geschichte

Die Entwicklung von FOAM (Field Operation And Manipulation) wurde um 1989 von Henry Weller am Imperial College London in der Forschungsgruppe von Professor A.D. Gosman begonnen. Doktoranden wie Hrvoje Jasak aus der Forschungsgruppe nutzten und erweiterten FOAM im Rahmen ihrer Doktorarbeit. Weller, Jasak und weitere Mitglieder aus der Forschungsgruppe wie Greenshields und Janssens gründeten 2000 die Firma Nabla Ltd. um FOAM kommerziell anzubieten. 2004 wurde die Firma aufgelöst und die Entwickler Weller (OpenCFD Ltd.) und Jasak (Wikki Ltd.) arbeiteten fortan getrennt an dem nun unter der GNU General Public Licence stehenden "OpenFOAM" weiter.
Am 15. August 2011 wurde die Übernahme der Entwicklerfirma OpenCFD Ltd. durch SGI bekanntgegeben. Zu gleicher Zeit wurde in Delaware, USA das aktienlose Unternehmen bzw. eine Non-Profit-Organisation mit dem Namen OpenFOAM Foundation, mit den Direktoren Mark Barrenechea (CEO, SGI) und Henry Weller (Begründer von OpenFOAM), gegründet, mit dem Auftrag, die gegenwärtige und zukünftigen Versionen von OpenFOAM unter der GPL zu verbreiten. Etwas mehr als ein Jahr später, am 12. September 2012, wurde bekannt gegeben, dass die ESI Group die Firma OpenCFD Ltd., die OpenFOAM Foundation sowie sämtliche Markenrechte übernimmt. 2014 verließen Henry Weller und Chris Greenshields OpenCFD Ltd., um die nach UK verschobene OpenFOAM Foundation als Direktoren zu leiten und mit der Firma CFD Direct Schulungen und Softwareentwicklungen für OpenFOAM anzubieten.

## Abgeleitete Programme und Projekte

* OpenFOAM (ehm. OpenFOAM+) ist die von ESi weiterentwickelte Variante, welche von der Foundation Version 3.0.x abstammt.
* Das Extend-Project mit seiner von der Entwicklergemeinde entwickelten Version „foam-extend-4.0“, welche auf der Version OpenFOAM-1.6 basiert und zusätzliche Funktionen wie „Radial Basis Function“, „General Grid Interface (GGI)“, „Finite-Flächen-Methode (Finite Area Method, FAM)“ oder „Block Coupled Matrix Solver“ enthält. Die Entwicklergemeinde um das Extend-Project veranstaltet auch den seit 2006 jährlich stattfindenden „Openfoam Workshop“.
* FreeFOAM bietet keine zusätzliche Funktionalität gegenüber OpenFOAM, versucht aber die Portabilität auf andere Betriebssysteme zu erleichtern, indem es CMake statt des OpenFOAM-eigenen „wmake“ (Weller make) verwendet. Die FreeFOAM-Umstellung auf CMake wurde von einem Entwickler des Extend-Projects verwendet, um eine native Portierung auf Microsoft Windows zu bewerkstelligen. FreeFOAM wird nicht mehr aktiv weiterentwickelt.
* caelus-CML ist ein OpenFOAM-Fork und bezeichnet sich als "Computational Mechanics Library" um die breiten Einsatzmöglichkeiten im Bereich der CAE anzudeuten. Die native Portabilität auf die Betriebssysteme (Mac, Linux und Windows) wird bei caelus mit SCons als Build System bewerkstelligt.
* blueCFD-Core ist eine mit MinGW crosskompilierte Windowsportierung.

## Grafische Benutzerschnittstellen (GUIs) und Werkzeuge für die Arbeit mit OpenFOAM

* BIM HVACTool Ist eine GUI für die Gebäudesimulation mit OpenFOAM des Herstellers TIAN Building Engineering
* SwiftBlock und SwiftSnap sind zwei Python-plug-in-Scripte für Blender, die das Erstellen der Konfigurationsdateien `blockMeshDict` und `snappyHexMeshDict` erleichtern.
* HELYX-OS ist eine grafische Benutzeroberfläche zum Arbeiten mit dem automatischen Vernetzungsprogramm snappyHexMesh.
* MantiumFlow ist eine CLI und GUI für OpenFOAM. Pre- und Post-Processing sind komplett zu Apps automatisiert.
* SimScale ist eine cloud-basierte Simulationssoftware, die OpenFOAM und andere Löser integriert.
* Sim-Flow ist eine GUI für OpenFOAM. Die Variante RapidCFD vom gleichen Hersteller bietet zusätzlich GPU-basierte Gleichungslöser.
* iconCFD ist eine weitere kommerzielle Version von OpenFOAM mit einer graphischen Oberfläche.
* visualCFD ist eine von ESi vertriebene kommerzielle Benutzeroberfläche für OpenFOAM.
* InsightCAE ist ein Open-Source-Projekt um Simulationsabläufe für spezielle Anwendungen zu automatisieren und mit einer GUI zu versehen ("vertikale Apps"). Als Backend für CFD-Simulationen wird OpenFOAM verwendet.
* FEATool Multiphysics ist eine in der Octave/MATLAB m-code script language programmierte Anwendung
* CastNet ist eine kommerzielle GUI für OpenFOAM mit direktem CAD-Kernel-Import, integriertem Netzgenerator und snappyHexMesh-Unterstützung. Unterstützt werden die OpenFOAM-Versionen von ESI, von der OpenFOAM Foundation und blueCFD-Core.
* SimWorks ist eine freie GUI für OpenFOAM. Es gibt auch eine kommerzielle Variante für Unternehmen namens SimWorks Manager.