Ein schönes Bild und drei Fragen
Ein Student zeigt Ihnen ein wunderschönes Strömungsbild um ein Auto. Weiche Farben, plausible Stromlinien, ein Widerstandsbeiwert auf drei Nachkommastellen. Sie stellen drei Fragen: Wie groß war y+ an der Karosserie, war die Massenbilanz geschlossen, und wie stark änderte sich der Widerstand bei verfeinertem Netz? Auf keine gibt es eine Antwort.
Dieser Student hat eine CFD-Software gelernt. CFD hat er noch nicht gelernt.
Um CFD von Grund auf zu lernen, lernen Sie, eine richtige Antwort von einer selbstbewussten zu unterscheiden. In der Praxis heißt das vier Stufen in dieser Reihenfolge: die wenige Mathematik, die erklärt, warum numerische Lösungen falsch werden, ein kleiner Solver, den Sie selbst schreiben und absichtlich kaputt machen, eine Leiter von Benchmarkfällen mit veröffentlichten Antworten, und erst dann ein kommerzielles oder quelloffenes Programm. Dieser Artikel beschreibt den Weg, mit einem Rechenbeispiel, das die wichtigste Lektion des Fachs in zehn Zeilen Algebra zeigt, und einem Wochenplan am Ende.
Was heißt es, CFD zu lernen?
Drei Dinge, und die Software ist ein viertes, das am wenigsten zählt.
- Die Physik. Was die Erhaltungsgleichungen aussagen, was jeder Term bewirkt und welche Terme in Ihrem Problem dominieren. Eine Reynolds-, eine Péclet- und eine Mach-Zahl sagen vor dem Vernetzen mehr über eine Strömung als die meisten Farbbilder danach.
- Die Numerik. Wie aus einer kontinuierlichen Gleichung Algebra wird und welchen Fehler das einführt. Jede Finite-Volumen-Lösung ist um einen Diskretisierungsfehler falsch, und die Kunst besteht darin, seine Größe und seinen Charakter zu kennen.
- Das Urteil. Entscheiden, was modelliert wird, prüfen, dass die Zahlen konvergiert, bilanziert und netzunempfindlich sind, und mit etwas Unabhängigem vergleichen. Das ist Verifikation und Validierung, und dafür zahlen Arbeitgeber und Kunden.
- Die Software ist die Schnittstelle zu allen dreien. Sie lässt sich in wenigen Wochen lernen, wenn der Rest sitzt, und sie ändert sich ohnehin mit jedem Release.
Welche Mathematik Sie brauchen, und warum
Weniger, als viele befürchten, und mehr, als die meisten Tutorials zugeben.
Sie brauchen Vektoranalysis (Divergenz, Gradient, Divergenzsatz), denn die Finite-Volumen-Methode ist der Divergenzsatz, angewandt auf eine kleine Zelle. Sie müssen die drei Klassen partieller Differentialgleichungen erkennen, denn sie verhalten sich verschieden: Elliptische Probleme (stationäre Diffusion, Druck) spüren alle Ränder zugleich, parabolische Probleme (instationäre Diffusion) schreiten in der Zeit voran, und hyperbolische Probleme (reine Konvektion, Wellen, Stöße) tragen Information entlang von Charakteristiken und bestrafen Verfahren, die die Strömungsrichtung ignorieren.
Und Sie brauchen Taylor-Reihen, denn daher kommt der Diskretisierungsfehler. Entwickeln Sie eine glatte Funktion um einen Punkt und bilden Sie Differenzen:
Hier ist D_c die zentrale Differenz und D_u die Aufwinddifferenz. Die zentrale Differenz ist zweiter Ordnung: Halbieren Sie die Zellgröße, und der führende Fehler fällt auf ein Viertel. Die Aufwinddifferenz ist erster Ordnung, und ihr führender Fehlerterm ist proportional zu einer zweiten Ableitung. Merken Sie sich das. Darum geht es im ganzen nächsten Abschnitt.
Schreiben Sie einen kleinen Solver und machen Sie ihn kaputt
Bevor Sie eine kommerzielle Oberfläche öffnen, schreiben Sie einen Solver von etwa vierzig Zeilen. Sie lernen mehr, wenn Sie ihn scheitern sehen, als in einem Monat Tutorials.
Ein kostenloser und gut gemachter Einstieg ist CFD Python, die „12 Schritte zu Navier-Stokes“ von Lorena Barba und Gilbert Forsyth: Jupyter-Notebooks, die von linearer 1D-Konvektion über Diffusion, die Burgers-Gleichung, Laplace und Poisson bis zur 2D-Kavitäts- und Kanalströmung führen. Der Inhalt steht unter CC-BY 4.0, der Code unter BSD-3, Sie dürfen ihn also frei nutzen und anpassen.
Machen Sie dann das eine Experiment, das jeder CFD-Ingenieur mit eigenen Händen gemacht haben sollte.
Rechenbeispiel: die Zell-Péclet-Zahl
Nehmen wir stationäre eindimensionale Konvektion und Diffusion eines Skalars φ auf 0 ≤ x ≤ L mit φ(0) = 0 und φ(L) = 1. Die Gleichung und ihre exakte Lösung lauten:
Bei Pe = 50 ist die Lösung im ganzen Gebiet fast null und steigt in einer dünnen Schicht am rechten Ende steil an. Bei x = 0,9 L beträgt der exakte Wert etwa exp(−5) ≈ 0,007.
Diskretisieren Sie mit N gleichmäßigen Zellen. Die alles bestimmende Größe ist die Zell-Péclet-Zahl Pe_Δ = ρuΔx / Γ = Pe / N. Auf einem gleichmäßigen Gitter führt jedes Verfahren auf eine Rekursion, deren Lösungen von Knoten zu Knoten um einen festen Faktor wachsen, und dieser Faktor verrät, was das Verfahren tut:
Die erste Zeile ist das exakte Verhältnis benachbarter Knotenwerte, r_c das Verhältnis des zentralen Verfahrens und r_u das des Aufwindverfahrens erster Ordnung.
Auf 10 Zellen ist Pe_Δ = 5:
| Verfahren | Verhältnis benachbarter Knoten | Was Sie sehen |
|---|---|---|
| Exakt | exp(5) ≈ 148 | Eine steile Schicht in der letzten Zelle |
| Zentral | (1 + 2.5)/(1 − 2.5) ≈ −2.33 | Das Vorzeichen wechselt von Knoten zu Knoten: Oszillationen und Werte außerhalb des Bereichs von 0 bis 1 |
| Aufwind | 1 + 5 = 6 | Glatt, monoton und mit einer viel zu dicken Schicht |
Auf 40 Zellen ist Pe_Δ = 1,25: Das zentrale Verfahren liefert ein Verhältnis von etwa 4,3 gegenüber exakt 3,5, glatt und nah; das Aufwindverfahren liefert 2,25, noch sichtbar verschmiert.
Daraus folgen zwei Lektionen, und sie sind die wichtigsten dieses Artikels.
Das zentrale Verfahren oszilliert bei Pe_Δ > 2. Das Verhältnis wird negativ, und die Lösung zeigt Schwingungen, die keine Physik sind. Das ist das klassische Ergebnis aus Patankars Lehrbuch, und deshalb verwenden kommerzielle Solver in den meisten Strömungen keine rein zentrale Differenz für die Konvektion.
Das Aufwindverfahren oszilliert nie und liegt auf eine Weise falsch, die richtig aussieht. Der Abbruchfehler aus der obigen Taylor-Entwicklung, (Δx/2)φ″, wirkt genau wie zusätzliche Diffusion. Das Verfahren verhält sich, als wäre die Diffusivität:
Auf 10 Zellen sind das 3,5 Γ. Ihre glatte Aufwindlösung ist in führender Ordnung die Lösung eines Problems mit einer Péclet-Zahl von etwa 50/3,5 ≈ 14, nicht 50. Nichts auf dem Bildschirm verrät es. Die Isolinien sind sauber, die Residuen fallen wunderbar, und die Antwort gehört zu einer anderen Strömung.
Deshalb sehe ich es lieber, wenn ein Anfänger zuerst eine oszillierende zentrale Lösung sieht. Die Schwingungen sind ehrlich.
Jeder moderne Solver bietet beschränkte Verfahren höherer Ordnung (Aufwind zweiter Ordnung mit Limitern, QUICK, TVD-Familien), die zwischen beiden liegen. Was diese Einstellungen bewirken, verstehen Sie erst, wenn Sie beide Extreme scheitern gesehen haben.
Prüfen Sie die Genauigkeitsordnung
Verfeinern Sie nun. Berechnen Sie den Fehler gegenüber der exakten Lösung auf zwei Gittern mit dem Verfeinerungsverhältnis r. Mit e₁ als Fehler auf dem groben und e₂ auf dem feinen Gitter ergibt sich die beobachtete Ordnung:
Rechenbeispiel mit illustrativen Zahlen. Ein Verfahren zweiter Ordnung liefert Fehler von 0,020 und 0,0051 auf Gittern mit Δx und Δx/2, also p = ln(3,92)/ln(2) ≈ 1,97. Richtig. Erhalten Sie 1,0 bei einem Verfahren, das zweiter Ordnung sein sollte, ist irgendwo etwas erster Ordnung: eine Randbedingung, ein Gradient, eine Flächeninterpolation. Das zu finden ist die beste numerische Ausbildung überhaupt. Dieselbe Rechnung steckt im Gitterkonvergenzindex, Schritt für Schritt erklärt in unserem Artikel zur Netzunabhängigkeit.
Steigen Sie eine Leiter von Fällen mit veröffentlichten Antworten hinauf
Wenn Ihr eigener Code sich benimmt, wechseln Sie zu Fällen, deren Antwort jemand anderes veröffentlicht hat. Jede Sprosse lehrt eine neue Schwierigkeit, und jede hat eine Prüfung, die man besteht oder nicht.
| Sprosse | Fall | Was er lehrt | Referenz | Die Prüfung |
|---|---|---|---|---|
| 1 | 1D-Konvektion-Diffusion | Verfahren, Péclet-Zahl, Genauigkeitsordnung | Die exakte Lösung oben | Die beobachtete Ordnung passt zum Verfahren |
| 2 | Angetriebene Kavität, Re 100 und 1000 | Druck-Geschwindigkeits-Kopplung in 2D | Ghia, Ghia und Shin (1982), Geschwindigkeiten auf den Mittellinien | Ihre Profile liegen auf deren Tabellenpunkten |
| 3 | Laminare Rohrströmung | Einlauflänge, Wandgradienten | Hagen-Poiseuille: f = 64/Re | Der Reibungsbeiwert strebt bei Netzverfeinerung gegen 64/Re |
| 4 | Rückwärtsgewandte Stufe, laminar | Ablösung und Wiederanlegen | Armaly et al. (1983), Messungen | Wiederanlegelänge über der Reynolds-Zahl |
| 5 | Zylinder im Kanal, DFG 2D-2 | Instationäre Strömung, Zeitschritt | FeatFlow: C_D,max = 3,2200, St = 0,30188 | Wirbelablösung tritt auf, und beide Werte kommen nahe |
| 6 | Turbulenter Kanal | Wandbehandlung und Grenzen von RANS | DNS bei Re_τ von 180 bis 5200 (Lee und Moser, 2015; Daten des Oden Institute) | Mittlere Geschwindigkeit in Wandeinheiten gegenüber dem DNS-Profil |
| 7 | Beheiztes Rohr, turbulent | Wärmeübergangskoeffizienten | Die Gnielinski-Korrelation | Nusselt-Zahl innerhalb der Streuung der Korrelation |
Sprosse 3 verdient eine Anmerkung. Die laminare Einlauflänge beträgt etwa 0,05 Re D, bei Re = 1000 braucht das Profil also rund 50 Durchmesser, um sich auszubilden. Ein kurzes Rohr liefert einen Reibungsbeiwert deutlich über 64/Re, und das ist die sich entwickelnde Strömung, die genau das tut, was sie soll. Beides auseinanderhalten zu lernen, ist genau der Zweck.
Auf Sprosse 6 entdecken die meisten Autodidakten, dass ein Turbulenzmodell ein Modell ist. Vergleichen Sie das mittlere Geschwindigkeitsprofil in Wandeinheiten mit der DNS, einmal mit der ersten Zelle bei y+ ≈ 1 und einmal mit Wandfunktionen bei y+ ≈ 50. Der Artikel zu k-omega SST und k-epsilon in diesem Blog erklärt, warum sich beide unterschiedlich verhalten.
Sprosse 5 ist außerdem ein guter Test für jeden und alles, was behauptet, CFD-Fälle für Sie aufzusetzen; der Artikel über KI-Agenten für CFD nutzt ihn genau dafür.
Dann lernen Sie die Software
Jetzt ergeben die Menüs Sinn, denn jedes ist eine Entscheidung, die Sie schon von Hand getroffen haben: das Konvektionsverfahren, die Druck-Geschwindigkeits-Kopplung, die Wandbehandlung, der Zeitschritt.
Lernen Sie ein Programm gründlich, bevor Sie mehrere ausprobieren. Zwei kostenlose Wege reichen zum Lernen. OpenFOAM ist quelloffen und läuft unter Linux oder unter Windows über WSL. Ansys Student ist für Studierende und Lehrende kostenlos, läuft unter Windows und erlaubt bis zu 1 Million Zellen für Strömungsprobleme auf bis zu vier Kernen, nur für Ausbildungszwecke. Eine Million Zellen reicht für jede Sprosse der obigen Leiter, und das ist kein Zufall.
Wiederholen Sie die Sprossen 2, 3 und 5 im Programm. Wenn Ihre selbst geschriebene Kavität und die kommerzielle miteinander und mit Ghia übereinstimmen, haben Sie beide verifiziert und die Einstellungen des Programms durch Vergleich statt durch Vertrauen gelernt.
Bücher, die man besitzen sollte
- Versteeg und Malalasekera, An Introduction to Computational Fluid Dynamics: The Finite Volume Method. Das klarste erste Lehrbuch zur Finite-Volumen-Methode, die kommerzielle Codes verwenden.
- Patankar, Numerical Heat Transfer and Fluid Flow. Kurz, alt und immer noch die beste Erklärung, warum Verfahren sich verhalten, wie sie es tun.
- Ferziger, Perić und Street, Computational Methods for Fluid Dynamics. Das Nachschlagewerk zur Numerik, wenn die Grundlagen sitzen.
- Moukalled, Mangani und Darwish, The Finite Volume Method in Computational Fluid Dynamics. Die Brücke von der Theorie zur Umsetzung in OpenFOAM.
- Pope, Turbulent Flows. Für den Moment, in dem „welches Turbulenzmodell?“ zu einer echten Frage wird.
Ein 16-Wochen-Plan
Mein Vorschlag für jemanden mit Ingenieurabschluss und etwa acht bis zehn Stunden pro Woche. Jeder Block endet mit etwas, das man zeigen kann.
| Wochen | Arbeit | Ergebnis |
|---|---|---|
| 1 und 2 | Taylor-Reihen, PDE-Klassen; CFD Python Schritte 1 bis 4 | Ein 1D-Diffusionscode mit seiner exakten Lösung |
| 3 und 4 | Konvektion-Diffusion; das Péclet-Experiment; Genauigkeitsordnung | Ein Diagramm der exakten, zentralen und Aufwindlösung bei Pe_Δ = 5 und 1,25 |
| 5 und 6 | CFD Python Schritte 9 bis 11; angetriebene Kavität | Ihre Kavität im Vergleich mit Ghia et al. bei Re 100 |
| 7 und 8 | Ein Programm installieren; die Kavität wiederholen; laminare Rohrströmung | Reibungsbeiwert gegenüber 64/Re, mit Netzverfeinerung |
| 9 und 10 | Vernetzung: Grenzschichten, Qualitätsmaße; eine Studie mit drei Netzen | Ein Gitterkonvergenzindex für das Rohr |
| 11 und 12 | Turbulenz und Wände; turbulenter Kanal | u+ über y+ im Vergleich mit DNS für zwei Wandbehandlungen |
| 13 und 14 | Instationäre Strömung; DFG-Zylinder | Strouhal-Zahl und Spitzenwiderstand gegenüber der Referenz |
| 15 und 16 | Ein kleines eigenes Projekt | Ein kurzer Bericht mit Konvergenz, Bilanzen, Netzstudie und einem Vergleich mit Daten |
Das letzte Ergebnis ist das, mit dem Sie eingestellt werden. Ein Bericht, der sagt „der Druckverlust beträgt 1.245 Pa bei einer numerischen Unsicherheit von 1,6 %, und er stimmt mit der Korrelation auf 4 % überein“, ist mehr wert als jede Menge Farbbilder.
Typische Fehler, wie sie auf dem Bildschirm aussehen
- Eine glatte Lösung, die nie mit etwas verglichen wurde. Das Aufwindverfahren hat sie erzeugt. Sie kann um einen Faktor falsch sein, wie das Beispiel zeigt.
- Schwingungen, „behoben“ durch Wechsel auf erste Ordnung. Die Schwingungen sagten, dass das Netz für das Verfahren zu grob ist. Die erste Ordnung versteckt die Botschaft und behält den Fehler.
- Ein Tutorial, Klick für Klick nachgemacht. Es läuft, und Sie können nicht sagen, warum irgendeine Einstellung so ist, wie sie ist. Ändern Sie eine Einstellung nach der anderen und sagen Sie die Wirkung voraus, bevor Sie rechnen.
- Ein Reibungsbeiwert, im kurzen Rohr um 30 % „falsch“. Das ist die Einlauflänge, und der Solver hat recht.
- Ein turbulenter Fall ohne y+-Prüfung. Die Wandbehandlung war nie in ihrem Gültigkeitsbereich, und das Modell tat nicht, was Sie denken.
- Residuen als einziger Konvergenznachweis. Beobachten Sie die Größe, die Sie berichten, und prüfen Sie die Massenbilanz; der Artikel zur Konvergenz in diesem Blog erklärt, warum.
Was ich tun würde
Wenn Sie einen Ingenieurabschluss und ein paar Stunden pro Woche haben, folgen Sie der Reihenfolge oben: Mathematik, die Fehler erklärt, ein kleiner Solver, Benchmarks, dann Software. Lassen Sie das Péclet-Experiment nicht aus. Es dauert einen Abend und verändert, wie Sie jedes Farbbild für den Rest Ihrer Laufbahn lesen.
Wenn Sie bei der Arbeit schon ein kommerzielles Programm nutzen und nie die numerischen Grundlagen hatten, gehen Sie denselben Weg in kompakter Form: das Péclet-Experiment, die Kavität gegen Ghia, eine Drei-Netz-Studie an einem Fall, den Sie kennen. Drei Wochenenden. Sie werden sehen, welche Ihrer alten Ergebnisse Sie noch unterschreiben würden.
Wenn Sie strukturierte Hilfe möchten: Unser Kurs CFD-Modellierung von Flüssigkeits- und Gasströmungen folgt derselben Reihenfolge aus Aufgabenstellung, Physik, Simulation, Verifikation und Interpretation, und der Kurs Wärmeübertragung in technischen Anwendungen deckt Sprosse 7 und mehr ab. So oder so gilt die Regel: Kein Ergebnis verlässt Ihren Schreibtisch, bevor es mit etwas verglichen wurde, das Sie nicht selbst gerechnet haben.
Quellen & weiterführende Lektüre
- Barba and Forsyth: CFD Python, 12 steps to Navier-Stokes
- FeatFlow, TU Dortmund: DFG flow around cylinder benchmark 2D-2 (Re = 100)
- Oden Institute, University of Texas at Austin: turbulent channel DNS data
- Ansys Student: free student software and its limits
- Ghia, Ghia and Shin (1982), Journal of Computational Physics: high-Re solutions for incompressible flow
Passende Leistung
Modellprüfung und individuelle Studien
Erkennen, welche Aussagen das Modell stützt, wo Unsicherheit bleibt und was überprüft werden muss.
Leistungen ansehen