[an error occurred while processing this directive]
Diplomarbeit (bzw. SEP / PSE / IDP / BA / MA)

Erweiterung eines stationären Navier-Stokes-Lösers

Numerische Simulation wird zu einem immer wichtigeren Werkzeug bei der erfolgreichen Entwicklung und Optimierung verschiedenster Anwendungen. Insbesondere der Simulation von Strömungen kommt dabei eine zentrale Rolle zu, z.B. beim Design von Turbinenschaufeln, Fluid-Struktur Wechselwirkungen etc. Häufig ist die Berechnung von stationären (also zeitunabhängigen) Lösungen relevant, entweder aufgrund der Problemstellung an sich oder als Zwischenschritt einer komplexeren Zeitintegration.

Stationäre 3D-Umströmung eines rechteckigen Zylinders im Kanal (Stromlinien über Druckverlauf bei Re=20).

Im Rahmen der Forschungsarbeit zu effizienten Strömungssimulationen wird am Lehrstuhl für Informatik V zur Zeit von mehreren Mitarbeitern und Studenten ein C++-Projekt namens Peano entwickelt. Der Schwerpunkt liegt auf der Berechnung von inkompressiblen, laminaren Strömungen in zwei und drei Dimensionen. Dabei kommt unter anderem auch das Paket PETSc (Portable, Extensible Toolkit for Scientific Computation) zum Einsatz. Eine erste Version eines stationären Lösers für Szenarien wurde bereits für gleichmäßig verfeinerte 2D-Gitter mit Hilfe von PETSc implementiert und getestet. Dabei wird für Geschwindigkeiten u und Druckwerte p ein nichtlineares Gleichungssystem B mit Hilfe der diskretisierten Navier-Stokes-Gleichungen aufgestellt und mittels eines Newton-artigen Verfahrens gelöst:
B(u,p)=0.

Im Rahmen dieser Arbeit soll nach einer Einarbeitung in die Problematik zunächst der bereits existierende Löser von zwei- auf dreidimensionale regulär verfeinerte kartesische Gitter erweitert werden. Dieser relativ einfache Arbeitsschritt erlaubt ein erstes Kennenlernen der relevanten Codeteile. Danach soll der Löser auf die innerhalb von Peano verfügbaren adaptiven kartesischen Gitter in 2D und 3D angepasst werden. Durch die vergleichsweise gute Kapselung aller Zugriffe müssen hierbei nur sehr wenige Stellen erweitert werden. Im nächsten Schritt soll die Lösung des nichtlinearen stationären Gleichungssystems dazu benutzt werden, die bereits vorhandene explizite Zeitschrittsteuerung um ein einfaches implizites Eulerverfahren zu erweitern. Im Anschluss folgt einer der folgenden vier optionalen Arbeitsschritte: Die Wahl des konkreten Pakets ist dem/den StudentInnen je nach individuellem Interesse freigestellt. Die ersten beiden Punkte stellen dabei weniger mathematische als informatisch-technische Aspekte dar. Die letzten beiden haben stärkeres mathematisches Gewicht.
Abschließend soll ein knapper Bericht über das Projekt (Ziele, ausgeführte Schritte, Erfahrungen, Ergebnisse) erstellt werden. Code-spezifische Gesichtspunkte brauchen darin nicht festgehalten zu werden, da sie bereits in der entsprechenden, mittels doxys automatisch aus dem Code generierten, html-Dokumentation vorliegen werden.

Aufgrund der Projektgröße von Peano sind (OO-)Software-Engineering-Aspekte wie Modularität, automatisierte Tests oder gute Dokumentation sehr wichtig. Für Studenten, die darin noch weniger Übung haben, muss das kein Nachteil sein, sondern ist vielmehr die Chance, in diese Welt am Beispiel eines größeren praktischen Projekts hineinzuschnuppern. Unsere positiven Erfahrungen bei Peano haben gezeigt, dass dadurch u.a. auch die Einarbeitung in die jeweils relevanten Teile des Codes für StudentInnen erheblich erleichtert wird.

Zusammenfassung der Arbeitsschritte:
  1. Einarbeitung in die Problematik,
  2. Erweiterung auf 3D reg. kartesische Gitter,
  3. Anpassung des Lösers auf adaptive (2D/3D) kartesische Gitter,
  4. Implementierung eines einfachen impliziten Zeitintegrators (impl. Euler) zur Erweiterung auf instationäre Szenarien,
  5. Einer der folgenden Punkte:
  6. Erstellung eines kurzen Erfahrungsberichts.

Diese Arbeit kann - als Systementwicklungs- bwz. Interdisplinäres (Mathe-)Projekt - auch in einem Team von mehreren Personen bearbeitet werden. Die verschiedenen optionalen Pakete machen dieses Projekt interessant sowohl fuer eher mathematisch als auch eher technisch/implementatorisch orientiertere StudentInnen!

Voraussetzungen: Kenntnisse in C++, Interesse an Simulation

Beginn: ab sofort

Ansprechpartner: Tobias Neckel

[an error occurred while processing this directive]