Prof. Dr. A. Schmidt
Adaptive Finite-Elemente-Methoden und Anwendungen
SS 2018 — ¨Ubung 3 — 26.06.2018
Programmieraufgabe 3 (12 Punkte)
a) L¨osen Sie in FEniCS das Stefan-Problem
˙
u−∆θ = f inΩ×(0, T), θ = β(u) in Ω×(0, T), u = g auf ∂Ω×(0, T),
u(·,0) = u0 in Ω
f¨ur
β(u) = min(u,0) + max(u−1,0).
Programmieren Sie ein Gauß-Seidel- oder SOR-Verfahren zur iterativen L¨osung des diskreten Zeitschritt-Problems.
Approximieren Sie mit Ihrem Programm die exakte L¨osungu zu folgendem Problem inR2, das als Phasengrenze einen Kreis mit Mittelpunkt c(t), Radius R(t) und Geschwindigkeit V(t) = ˙c(t) hat:
u(x, t) =
α r(x, t)2−R(t)2
fallsr(x, t)< R(t) 1 +
2αR(t)−V(t)·x−c(t)
r(x, t) −R(t)˙
r(x, t)−R(t)
sonst dabei ist r(x, t) =|x−c(t)|und α >0eine Konstante, so dassu >1f¨ur r > R.
Verwenden Sie die Daten:
c(t) = (0.25,0.4 sin(10t), R(t) = 0.3 + 0.2 sin(20t), α= 17
und betrachten Sie das Problem in Ω = (−1,+1)2 mitT = 0.5.
Berechnen Sie den Fehler zwischen exakter und diskreter L¨osung f¨ur verschiedene Gitter- feinheiten und Zeitschrittweiten.
b) Implementieren Sie in FEniCS m¨oglichst viele Terme des Fehlersch¨atzers aus der Vorlesung.
Verwenden Sie adaptive Gitter und Zeitschrittweiten f¨ur das gleiche Problem wie in a).