Bitte zitieren als: Barba, Lorena A. und Forsyth, Gilbert F. (2018). CFD Python: die 12 Schritte zu Navier-Stokes-Gleichungen. Journal of Open Source Education , 1 (9), 21, https://doi.org/10.21105/jose.00021
CFD Python , auch bekannt als die 12 Schritte zu Navier-Stokes , ist ein praktisches Modul zum Erlernen der Grundlagen der Computational Fluid Dynamics (CFD) durch Codieren von Lösungen für die grundlegenden partiellen Differentialgleichungen, die die Physik der Flüssigkeitsströmung beschreiben. Das Modul war Teil eines Kurses, den Prof. Lorena Barba zwischen 2009 und 2013 im Fachbereich Maschinenbau der Boston University unterrichtete (Prof. Barba wechselte inzwischen an die George Washington University).
Das Modul setzt lediglich grundlegende Programmierkenntnisse (in einer beliebigen Sprache) und einige Hintergrundkenntnisse in partiellen Differentialgleichungen und Strömungsmechanik voraus. Die „Schritte“ wurden von Ideen von Dr. Rio Yokota inspiriert, der bis 2011 Postdoc in Prof. Barbas Labor war, und die Lektionen wurden von Prof. Barba und ihren Studenten über mehrere Semester hinweg, die den CFD-Kurs unterrichteten, verfeinert. Wir haben diesen Satz Jupyter-Notizbücher im Jahr 2013 geschrieben, um einen zweitägigen Intensivkurs in Mendoza, Argentinien, zu unterrichten.
Indem sie die Schüler durch diese Schritte führen (ohne welche zu überspringen!), lernen sie viele wertvolle Lektionen. Durch den schrittweisen Charakter der Übungen haben sie am Ende jeder Aufgabe ein Erfolgserlebnis und das Gefühl, dass sie mit geringem Aufwand lernen. Während sie Fortschritte machen, üben sie auf natürliche Weise die Wiederverwendung von Code und erlernen schrittweise Programmier- und Plottechniken. Während sie ihre Ergebnisse analysieren, lernen sie etwas über numerische Diffusion, Genauigkeit und Konvergenz. In etwa vier Wochen eines regulären Kurses werden sie zu mäßig kompetenten Programmierern und sind motiviert, mit der Diskussion theoretischerer Themen zu beginnen.
In einem regulären Universitätskurs können Studierende die CFD-Python- Lektionen in 4 bis 5 Wochen absolvieren. Als intensives Tutorial kann das Modul je nach Vorkenntnissen des Lernenden in zwei oder drei vollen Tagen abgeschlossen werden. Die Lektionen können auch zum Selbststudium genutzt werden. In jedem Fall sollten die Lernenden den ausgearbeiteten Beispielen in jeder Lektion folgen, indem sie den Code erneut in ein neues Jupyter-Notizbuch eingeben und sich beim Ausprobieren möglicherweise Originalnotizen machen.
Starten Sie eine interaktive Sitzung mit diesem Modul mithilfe des Binder-Dienstes:
Die Schritte 1–4 finden in einer räumlichen Dimension statt. Die Schritte 5–10 erfolgen in zwei Dimensionen (2D). Die Schritte 11–12 lösen die Navier-Stokes-Gleichung in 2D. Drei „Bonus“-Notebooks behandeln die CFL-Bedingung für numerische Stabilität, Array-Operationen mit NumPy und die Definition von Funktionen in Python.
Um diese Lektionen nutzen zu können, benötigen Sie Python 3 und den Standard-Stack von wissenschaftlichem Python: NumPy, Matplotlib, SciPy, Sympy. Und natürlich benötigen Sie Jupyter – eine interaktive Computerumgebung, die in einem Webbrowser ausgeführt wird.
Dieser Minikurs besteht aus einer Reihe von Jupyter-Notizbüchern, die schriftliche Materialien und ausgearbeitete Lösungen zum Python-Code enthalten. Um mit dem Material zu arbeiten, empfehlen wir Ihnen, jede Lektion mit einem neuen Notizbuch zu beginnen und mitzumachen, jede Codezeile einzugeben (nicht kopieren und einfügen!) und die Lektion zu erkunden, indem Sie Parameter ändern und sehen, was passiert.
Um sicherzustellen, dass Ihre Pakete auf dem neuesten Stand sind, führen Sie nach der Installation die folgenden Befehle in einem Terminal aus:
conda update conda
conda update jupyter numpy sympy scipy matplotlib
Wenn Sie Miniconda (eine Miniversion von Anaconda, die Ihnen Speicherplatz spart) bevorzugen, installieren Sie alle erforderlichen Bibliotheken, um diesem Kurs zu folgen, indem Sie die folgenden Befehle in einem Terminal ausführen:
conda update conda
conda install jupyter
conda install numpy scipy sympy matplotlib
pip install jupyter
Bitte stellen Sie außerdem sicher, dass Sie beim Ausführen die erforderlichen Bibliotheken installiert haben
pip install numpy scipy sympy matplotlib
Wir akzeptieren Beiträge per Pull-Request – tatsächlich haben mehrere Benutzer bereits Pull-Requests eingereicht, um Korrekturen oder kleine Verbesserungen vorzunehmen. Sie können auch ein Problem eröffnen, wenn Sie einen Fehler finden oder einen Vorschlag haben.
(c) 2017 Lorena A. Barba, Gilbert F. Forsyth. Alle Inhalte unterliegen der Creative Commons Attribution CC-BY 4.0 und der gesamte Code unterliegt der BSD-3-Klausel (zuvor unter MIT und geändert am 8. März 2018).
Wir freuen uns, wenn Sie die Inhalte in irgendeiner Weise weiterverwenden!