Tutorial

OpenFOAM CFD-Tutorial

Fluiddomain vernetzen, OpenFOAM-Patches zuweisen und CFD-Ergebnisse prüfen

Übersicht

Dieses Tutorial führt durch ein reales OpenFOAM-CFD-Beispiel in confBuild. Die Screenshots wurden am 2026-06-21 im Browser aufgenommen, mit dem Beispielprojekt OpenFOAM Step Duct Tutorial Example auf Basis des OpenFOAM-pitzDaily-Kanals mit Ruecksprung.

Zeit

Etwa 20 Minuten für ein vorbereitetes Modell mit klaren Inlet-, Outlet- und Wandflächen

Beispielnetz

blockMesh und checkMesh erzeugten 25.012 Punkte und 12.225 Zellen

Beispielergebnis

simpleFoam erreichte Zeit 20 mit 0,317% Inlet/Outlet-Flow-Balance-Fehler

Beispiel-Artefakt

  • Case: OpenFOAM-pitzDaily-Step-Duct, stationaere inkompressible Strömung.
  • Ausgeführte Befehle: blockMesh, checkMesh, simpleFoam und foamToVTK.
  • Velocity-Zusammenfassung: Mittelwert 5,496 m/s, Maximum 11,171 m/s. Pressure-Bereich: -9,937 Pa bis 19,424 Pa.
  • Ergebnis in confBuild als abgeschlossener CFD-Task mit VTU-Feldvisualisierung geladen.

Schritt 1: Reales Step-Duct-Beispiel öffnen

Für CFD beschreibt das Netz das Fluidvolumen, nicht das feste Bauteil. In diesem Beispiel ist der Editor mit einer Step-Duct-Fluiddomain, OpenFOAM-Solvereinstellungen, 10 m/s Inlet-Velocity, 0 Pa Outlet-Pressure und benannten Boundary-Rollen für Inlet, Outlet und No-Slip-Wände geladen.

Echter confBuild-Browser-Screenshot der OpenFOAM-Step-Duct-Beispieleingaben

Das ist der echte Browser-Screenshot aus dem Beispielprojekt, kein Mockup. Er zeigt das Quell-Setup vor Mesh- und Solverpruefung.

Vor dem Meshing

  • Verwenden Sie ein geschlossenes Volumen für den Bereich, in dem das Fluid stroemen soll.
  • Benennen oder identifizieren Sie Inlet-, Outlet- und Wandflächen eindeutig.
  • Bei dünnen 2D-ähnlichen CFD-Faellen müssen Vorder- und Rueckseite als empty-Patches verfügbar bleiben.
  • Starten Sie einfach. Der erste Lauf sollte mit einem groben oder mittleren Netz prüfen, ob das Setup stimmt.

Schritt 2: Mesh- und Face-Group-Bereitschaft prüfen

Öffnen Sie das Mesh/Loads-Setup und prüfen Sie, ob das erzeugte Netz verwendbare Flächengruppen liefert. CFD-Randbedingungen brauchen Mesh-Metadaten, nicht nur sichtbare Geometrie. Wenn in diesem Panel keine Gruppen erscheinen, muss mit Face-Group-Ausgabe neu vernetzt werden oder das OpenFOAM-Netz muss explizite Patch-Rollen mitbringen.

Echtes confBuild Mesh-und-Loads-Panel mit Face-Group-Check für CFD

Der Screenshot ist ein echter Mesh-&-Loads-Zustand. Er dokumentiert den Face-Group-Gate vor der Boundary-Zuweisung, statt vorzugeben, dass jedes Netz bereits fertig vorbereitet ist.

Meshing-Checks

  • Das ausgewählte Objekt sollte das Stroemungsvolumen sein, nicht ein Hindernis-Solid.
  • Flächengruppen sollten die Netzgenerierung überstehen, damit CFD-Randbedingungen sie später referenzieren können.
  • Im Tutorialbeispiel definiert der OpenFOAM-Case selbst die Patches: inlet, outlet, Wand-Patches und gepaarte empty-Patches vorne/hinten.
  • Lokale Verfeinerungen und Boundary Layers sollten nur dort gesetzt werden, wo sie das gewünschte Ergebnis verbessern.

Schritt 3: OpenFOAM-Regionen und Randbedingungen zuweisen

Wechseln Sie in das Simulations-Setup und nutzen Sie den CFD-Flow. Die Volumenregion wird zur OpenFOAM-Fluidregion, während Flächengruppen zu OpenFOAM-Patches wie inlet, outlet, wall, symmetry, far_field oder empty werden.

Minimales Boundary-Setup

  • Mindestens ein Inlet- oder Far-Field-Patch sollte eine von Null verschiedene Stroemungsgeschwindigkeit definieren.
  • Ein Outlet- oder Druckreferenz-Patch sollte das Druckfeld sauber schließen.
  • Wall-Patches sollten alle festen Oberflächen abdecken, die das Fluid beruehrt.
  • Bei 2D-Setups sollten die dünnen Vorder- und Rueckseiten empty verwenden.
  • Im aufgenommenen Beispiel sind upperWall und lowerWall No-Slip-Wände, frontAndBack nutzt empty.

Schritt 4: OpenFOAM starten

Wenn das Setup vollständig ist, erzeugt confBuild aus Netz- und Boundary-Metadaten einen OpenFOAM-Case. Im aufgenommenen Beispiel hat der OpenFOAM-Runner blockMesh, checkMesh, simpleFoam und foamToVTK abgeschlossen und anschließend das Velocity-Feld aus internal.vtu exportiert.

OpenFOAM-Solverlauf im Simulationspanel

Dieses Bild ist die echte OpenFOAM-Postprocessing-Vorschau aus dem Tutoriallauf. checkMesh bleibt der Gatekeeper, bevor Solveroutput verwendet wird.

Was im Runner passiert

  • UNV-Netze werden mit ideasUnvToFoam konvertiert; MSH-Netze mit gmshToFoam.
  • checkMesh prüft Topologie und Qualität, bevor der Solver startet.
  • Stationaere inkompressible Fälle nutzen simpleFoam; transiente inkompressible Fälle nutzen pimpleFoam.
  • Abgeschlossene Cases werden mit foamToVTK für die Visualisierung exportiert.
  • Das Beispielnetz bestand mit max. Non-Orthogonality 5,95 Grad und max. Skew 0,261.

Schritt 5: CFD-Ergebnis prüfen

Nach dem Solverlauf prüfen Sie sowohl die Feldvisualisierung als auch die numerische Zusammenfassung. Ein sauberes Ergebnis zeigt das gewünschte Feld, einen bestandenen Mesh-Quality-Status, plausible Residuals und einen niedrigen Flow-Balance-Fehler.

OpenFOAM-CFD-Ergebniszusammenfassung und Velocity-Field-Vorschau

Der Ergebnis-Screenshot ist aus dem echten abgeschlossenen CFD-Task geladen. Er zeigt 5,07e-4 m3/s Total Flow und 0,317% Balance Error.

Ergebnis-Checkliste

  • Prüfen Sie das angezeigte Feld, meistens Velocity Magnitude oder Pressure.
  • Lesen Sie zuerst OpenFOAM-Mesh-Status und Mesh-Quality-Warnungen.
  • Vergleichen Sie Inlet- und Outlet-Flow, um fehlende oder doppelte Patches zu erkennen.
  • Prüfen Sie Residuals und Solver Steps, bevor Sie lokale Detailwerte verwenden.
  • In diesem Lauf hat simpleFoam 20 Solver-Steps bei Zeit 20 abgeschlossen.

Unterstützter OpenFOAM-Umfang

Der aktuelle Workflow konzentriert sich auf praktische inkompressible CFD-Fälle, die aus Editor-Geometrie und Mesh-Metadaten vorbereitet werden können.

Status Unterstützt Hinweise
Bereit 3D inkompressible Strömung Stationaere oder transiente Fälle mit Fluidvolumen-Netzen
Bereit Dünne 2D-Strömung Gepaarte empty-Patches an den dünnen Flächen verwenden
Bereit Laminar, k-epsilon, k-omega SST Turbulenzmodell im CFD-Setup auswählen
Bereit Inlet-, Outlet-, Wall-, Symmetry- und Far-Field-Patches Boundary-Rollen werden aus Flächengruppen gemappt
Noch nicht Kompressible, poroese, rotierende, Dynamic-Mesh-, Heat-Transfer- oder Species-Cases Diese Fälle vorerst ausserhalb dieses Editor-Workflows halten

Troubleshooting

Keine Flächengruppen sichtbar

Netz neu erzeugen und prüfen, ob wirklich die Fluiddomain ausgewählt ist. CFD-Boundaries brauchen Mesh-Metadaten, nicht nur sichtbare Flächen.

checkMesh schlaegt fehl

Kleine Geometriedetails vereinfachen, Netzfeinheit anpassen und Sliver-Flächen reduzieren, bevor Solverparameter geändert werden.

Solver-Setup ist blockiert

Fluidregion, nicht-null Inlet- oder Far-Field-Velocity, einen Pressure-Outlet oder Referenzdruck und doppelte Patch-Zuweisungen prüfen.

2D-Case laeuft nicht

Die dünnen Vorder- und Rueckseiten müssen als empty zugewiesen sein und der Case muss als 2D-CFD-Setup konfiguriert werden.

Nächste Schritte

Nach dem ersten gültigen Lauf verfeinern Sie gezielt nur die Teile des Workflows, die das relevante Ergebnis beeinflussen.

  • Nutzen Sie FEM-Netzgenerierung, um Netzfeinheit, Elementgröße und Flächengruppen zu verstehen.
  • Nutzen Sie FEM-Simulation, um den breiteren Simulationsbereich kennenzulernen.
  • Führen Sie mindestens einen Netzverfeinerungs-Vergleich durch, bevor CFD-Werte für technische Entscheidungen verwendet werden.

Simulation einrichten

CFD-Netz erzeugen und OpenFOAM direkt aus dem Editor starten.