⌂ Galerkin-Modul

Numerische Mathematik

Dokumentation des Galerkin-Lernmoduls

Das Modul verbindet eine kurze theoretische Einführung mit interaktiven Experimenten und drei Python-Notebooks.

Modellproblem

Untersucht wird die eindimensionale Wärmeleitung auf dem Intervall von 0 bis 1. An beiden Endpunkten wird die Temperatur auf null festgehalten.

∂u∂t =κ ∂2u∂x2 , u(0,t) =u(1,t) =0

Warum ist das eine partielle Differentialgleichung?

Die gesuchte Temperatur u hängt von zwei unabhängigen Variablen ab: vom Ort x und von der Zeit t. In der Gleichung wird deshalb einmal nach der Zeit und zweimal nach dem Ort abgeleitet. Solche Ableitungen nach einzelnen Variablen heißen partielle Ableitungen; daher ist die Wärmeleitungsgleichung eine partielle Differentialgleichung (PDGL). Eine gewöhnliche Differentialgleichung beschreibt dagegen eine Funktion mit nur einer unabhängigen Variablen.

Anschaulich misst ∂u/∂t, wie schnell sich die Temperatur an einem festen Ort verändert. Die zweite Ortsableitung ∂²u/∂x² beschreibt die örtliche Krümmung des Temperaturprofils. Die Gleichung besagt: Wo das Profil gekrümmt ist, fließt Wärme so, dass Temperaturunterschiede ausgeglichen werden.

Die gewählte Anfangsbedingung besteht aus zwei Sinusmoden. Dadurch ist eine exakte Vergleichslösung bekannt, mit der sich die numerische Näherung unmittelbar überprüfen lässt.

u(x,t)= e−κπ2t sin⁡(πx) +14 e−9κπ2t sin⁡(3πx)

Numerisches Verfahren

Im Raum wird ein Galerkin-Verfahren mit stückweise linearen Hutfunktionen verwendet. Aus der schwachen Form entstehen eine Massenmatrix M und eine Steifigkeitsmatrix K.

uh(x,t)= ∑i=1N ci(t) φi(x) ⇒ Mc˙(t) +κKc(t)=0

Die Zeitdiskretisierung erfolgt mit dem Crank–Nicolson-Verfahren. Diese Trapezregel ist für glatte Lösungen von zweiter Ordnung und eignet sich gut für Diffusionsprobleme.

(M+κΔt2K) cn+1 = (M−κΔt2K) cn

Experiment mit Wärmequelle

Im zweiten Experiment erzeugt eine konstante Quelle q im gesamten Stab Wärme. Während die Endpunkte bei null gehalten werden, nähert sich die Lösung einem parabelförmigen stationären Temperaturprofil.

∂u∂t =κ ∂2u∂x2 +q ⇒ u∞(x) =q2κx(1−x)

Die drei Notebooks

NotebookInhalt
WärmeleitungModellgleichung, Randbedingungen, Eigenmoden und exakte Lösung
Galerkin-DiskretisierungFinite Elemente, Matrixgleichung und numerischer Vergleich
Fehler und KonvergenzRäumlicher und zeitlicher Fehler sowie Konvergenzdiagramme

Lokal ausführen

Nach dem Entpacken des Gesamtpakets werden die benötigten Python-Pakete installiert und anschließend Jupyter gestartet:

python3 -m pip install -r requirements.txt
jupyter notebook

Die numerische Implementierung kann unabhängig von Jupyter geprüft werden:

python3 -m unittest -v test_galerkin_heat.py

Historischer Bezug

Das Lernbeispiel greift ausgewählte mathematische Themen meiner Diplomarbeit im Studiengang Mathematik an der Fachhochschule Darmstadt auf. Darstellung, Abbildungen und Python-Implementierung wurden für dieses Lernangebot neu erstellt. Das historische FORTRAN-Programmlisting ist nicht Bestandteil der Veröffentlichung.

Zurück zum Lernmodul Gesamtpaket herunterladen