Research Group of Prof. Dr. M. Griebel
Institute for Numerical Simulation
maximize

Praktikum: Numerische Simulation und Visualisierung

Hintergrund des Praktikums

Die numerische Simulation technisch-physikalischer Abläufe gewinnt in jüngster Zeit immer mehr an Bedeutung. So lassen sich mit ihrer Hilfe etwa im Automobil- und Flugzeugbau, in der elektrotechnischen und chemischen Industrie und sogar in der theoretischen Physik die Zahl teurer Experimente mit aufwendigen Versuchsaufbauten verringern. Darüber hinaus erlaubt die numerische Simulation, auch in solchen Fällen Aussagen zu treffen, in denen dies auf Grund technischer Unzugänglichkeiten sonst nicht möglich wäre oder sich ein praktisches Experiment von vorneherein verbietet. Konkrete Anwendungsbeispiele der numerischen Simulation sind Strömungsvorgänge wie die Umströmung eines Flugzeugflügels, der Luftwiderstand eines Autos, Verbrennungsvorgänge in Wärmekraftwerken, Beschichtungsprozesse, Schmelzprozesse und Kristallwachstum bei der Halbleiterfertigung, Wasser- und Schadstofftransporte in porösen Medien, Klimamodellierung sowie eine Fülle von Anwendungen im Bereich des Umweltschutzes.

Die Entwicklung leistungsfähiger paralleler Rechensysteme (MIMD-Rechner, Maschinen mit virtuellem shared memory, Netzwerke von Arbeitsplatzrechnern) ermöglicht zusammen mit dem Einsatz effizienter numerischer Algorithmen (Mehrgitter, Multilevel-Vorkonditionierer) mittlerweile die immer realistischere dreidimensionale Simulation komplexer zeitabhängiger Vorgänge.

Die dabei berechnete Datenflut ist jedoch ohne eine graphische Visualisierung oft nicht mehr sinnvoll auswertbar und somit keiner vernünftigen Interpretation zugänglich. Interaktive Werkzeuge hierzu sind unumgänglich.

Damit verbundene Fragestellungen werden an der Universität Bonn etwa im Rahmen des Sonderforschungsbereichs SFB 256 - Nichtlineare partielle Differentialgleichungen - untersucht.

Ziel des Praktikums ist es, daß die Studierenden erste praktische Erfahrungen in den Bereichen

für den erfolgreichen Einsatz dieser Techniken des wissenschaftlichen Rechnens sammeln können.

Inhalt des Praktikums

Die zur Realisierung einer numerischen Simulation notwendigen Methoden, Vorgehensweisen und Fertigkeiten werden im Praktikum konkret am Beispiel von Strömungsvorgängen erarbeitet. Sie lassen sich mathematisch durch ein System von partiellen Differentialgleichungen, den Navier-Stokes-Gleichungen, beschreiben.

Zunächst werden für zweidimensionale Aufgabenstellungen die Diskretisierung der Navier-Stokes-Gleichungen auf einem Gitter von Kontrollvolumen ("staggered grid"), die Zeitdiskretisierung, die Linearisierung der diskreten Gleichungen und ein einfaches Iterationsverfahren zur Lösung des resultierenden linearen Gleichungssystems behandelt. Ergebnis dieses ersten Teilbereichs des Praktikums wird ein sequentielles C-Programm zur Vorhersage instationärer, inkompressibler Strömungen in zweidimensionalen kartesischen Koordinaten sein. Neben Berechnungen auf festen Geometrien sollen dabei auch freie Randwertprobleme, also Probleme, bei denen sich das Gebiet mit der Zeit auf Grund der zu berechnenden Geschwindigkeitswerte ändert, behandelt werden.

Nachdem kurz numerische Verfahren zur Effizienzsteigerung des Codes vorgestellt wurden, geht es im zweiten Teil des Praktikums um die Beschleunigung des Verfahrens durch parallele Berechnung. Die Parallelisierungsstrategie folgt dabei der Gebietszerlegungsphilosophie. Ziel ist es, unser Simulationsprogramm parallel auf einem Netz von Arbeitsplatzrechnern unter MPI zu implementieren.

Gegen Ende des Praktikums werden wir noch kurz auf interaktive Werkzeuge eingehen, mit denen während der Berechnungsphase bestimmte Parameter, wie die Einströmgeschwindigkeit oder die Zähigkeit der Flüssigkeit, verändert werden können.

Parallel zur Entwicklung der Algorithmen müssen die jeweils berechneten Daten auch visualisiert werden. Dazu werden einfache graphische Darstellungsmethoden, wie das Zeichnen von Vektorplots und Höhenlinien, Partikelverfolgungsverfahren, die Farbcodierung und die Animation der sich zeitlich verändernden Geschwindigkeiten sowie der Stromfunktion besprochen und in das bestehende Programm integriert.

Das Praktikum ist primär für Studenten der Mathematik ab dem 5. Semester gedacht. Darüber hinaus steht es aber auch einer begrenzten Zahl von Studenten der aktuellen Vorlesungsreihe Praktische Mathematik I und II und interdisziplinär Interessierten anderer Fachbereiche (Informatiker, Physiker, Geologen, Chemikern, etc.) offen.

Voraussetzungen für das Praktikum sind C-Kenntnisse und Interesse an numerischen Fragestellungen und an der Parallelisierung.

Durchführung des Praktikums

Das Praktikum ist in fünf Aufgabenblätter aufgeteilt, für die jeweils zwei Wochen Bearbeitungszeit zur Verfügung stehen. Jedes Blatt wird zunächst in einer zweistündigen Einführung vorgestellt. Dann wird die Aufgabenstellung besprochen und die methodische Vorgehensweise für die Implementierung der zu erstellenden Programme skizziert. In der jeweils darauf folgenden Woche können in einer Nachbesprechung aufgetretene Probleme und weitere Programmierdetails besprochen werden. Die Bearbeitung der Aufgabenstellungen ist selbständig in Gruppen bis zu zwei Personen am Rechner auszuführen. Dazu sind etwa 4-6 Stunden pro Woche notwendig. Als Hardware werden Workstations von Silicon Graphics am Institut für Angewandte Mathematik zur Verfügung stehen.

Ort und Zeit der Praktikumsbesprechung werden zu Beginn des Semesters in einer Vorbesprechung vereinbart. Diese findet statt am

Mittwoch, den 18. April, 12.15 Uhr, Wegelerstr. 6, Zi. 610.

Aufgabenblätter, MatLab-Files und Referenz-Lösungen für das erste Aufgabenblatt:

Infos zum Ablauf

Blatt1

Blatt2

Blatt3

Blatt4

Blatt5

MatLab-Files

Referenz-Lösung für Driven Cavity

Eine Beispiel-Implementierung für den im Praktikum zu erstellenden Code findet man hier.


WebMaster