Rationales Multilevel Jacobi-Davidson Verfahren für Eigenwertgleichungen in der Plasma Physik Dominik Löchel Betreuer: M. Hochbruck und M. Tokar; Kooperation mit D. Reiser Graduiertenkolleg Dynamik heißer Plasmen Mathematisches Institut Heinrich-Heine-Universität Düsseldorf Dezember 2009
Gliederung Einführung in die Kernfusion mit dem Tokamak Eigenwertgleichung zur Beschreibung der Verluste Lösen der Eigenwertgleichung Der Multilevel Jacobi-Davidson Algorithmus für rationale Eigenwertprobleme Zusammenfassung
Energiegewinnung durch Kernfusion Fusion von Deuterium und Tritium zu Helium
Energiegewinnung durch Kernfusion Fusion von Deuterium und Tritium zu Helium Überwindung der Coulomb Barriere starke Kernkraft
Energiegewinnung durch Kernfusion Fusion von Deuterium und Tritium zu Helium Überwindung der Coulomb Barriere starke Kernkraft hohe Temperatur und hohe Dichte ausreichend lange Zeit
Energiegewinnung durch Kernfusion Fusion von Deuterium und Tritium zu Helium Überwindung der Coulomb Barriere starke Kernkraft hohe Temperatur und hohe Dichte ausreichend lange Zeit Plasma
Energiegewinnung durch Kernfusion Fusion von Deuterium und Tritium zu Helium Überwindung der Coulomb Barriere starke Kernkraft hohe Temperatur und hohe Dichte ausreichend lange Zeit Plasma magnetischer Einschluss
Tokamak toroidale Magnetfeldspulen
Tokamak toroidale Magnetfeldspulen magnetische Feldlinien in der Flussoberfläche
Tokamak toroidale Magnetfeldspulen magnetische Feldlinien in der Flussoberfläche
Tokamak v E B B toroidale Magnetfeldspulen magnetische Feldlinien in der Flussoberfläche
Tokamak toroidale Magnetfeldspulen magnetische Feldlinien in der Flussoberfläche Primärspule Transformator-Eisenkern
Drift Instabilitäten toroidale Magnetfeldspulen magnetische Feldlinien in der Flussoberfläche Primärspule Transformator-Eisenkern
Drift Instabilitäten toroidale Magnetfeldspulen magnetische Feldlinien in der Flussoberfläche Primärspule Transformator-Eisenkern
Divertor und X-Punkt Geometrie 2 1 0 1 2 0 1 2 3 4 5
Von der PDE zur Eigenwertgleichung PDE
Von der PDE zur Eigenwertgleichung PDE Separation: f = f makroskopisch + f mikroskopisch
Von der PDE zur Eigenwertgleichung PDE Separation: f = f makroskopisch + f mikroskopisch Linearisierung
Von der PDE zur Eigenwertgleichung PDE Separation: f = f makroskopisch + f mikroskopisch Linearisierung Welle φ(θ, t) = k r, k, ω φ k r, k (θ) exp(ik r r + ik y iωt) φ(θ) exp(ik r r + ik y iωt) einsetzen
Von der PDE zur Eigenwertgleichung PDE Separation: f = f makroskopisch + f mikroskopisch Linearisierung Welle φ(θ, t) = k r, k, ω φ k r, k (θ) exp(ik r r + ik y iωt) φ(θ) exp(ik r r + ik y iωt) einsetzen Eigenwert-Differentialgleichung
Eigenwert-Differentialgleichung Finde Eigenpaar (ω, φ), so dass (g 2 (θ) 2 θ 2 + g 1(θ) θ + g 0(θ) + P ) n(ω, θ) φ(θ) = 0, P d (ω, θ) φ 2π-periodisch und I(ω) maximal. P n (ω, θ) = P d (ω, θ) = n ω j a j (θ) j=0 d ω j b j (θ) j=0 2 1 0 1 2 0 1 2 3 4 5
Diskretisierung (g 2 (θ) 2 θ 2 + g 1(θ) θ + g 0(θ) + P ) n(ω, θ) φ(θ) = 0 P d (ω, θ)
Diskretisierung (g 2 (θ) 2 θ 2 + g 1(θ) θ + g 0(θ) + P ) n(ω, θ) φ(θ) = 0 P d (ω, θ) Diskretisiere die Gleichung auf einem N-Punkt Gitter:
Diskretisierung (g 2 (θ) 2 θ 2 + g 1(θ) θ + g 0(θ) + P ) n(ω, θ) φ(θ) = 0 P d (ω, θ) Diskretisiere die Gleichung auf einem N-Punkt Gitter: [0, 2π[ θ
Diskretisierung (g 2 (θ) 2 θ 2 + g 1(θ) θ + g 0(θ) + P ) n(ω, θ) φ(θ) = 0 P d (ω, θ) Diskretisiere die Gleichung auf einem N-Punkt Gitter: [0, 2π[ θ g(θ) Diag(g( θ)), n P n (ω) = ω j Diag(a j ( θ)) j=0
Diskretisierung (g 2 (θ) 2 θ 2 + g 1(θ) θ + g 0(θ) + P ) n(ω, θ) φ(θ) = 0 P d (ω, θ) Diskretisiere die Gleichung auf einem N-Punkt Gitter: [0, 2π[ θ g(θ) Diag(g( θ)), n P n (ω) = ω j Diag(a j ( θ)) k j=0 θ k D k finite Differenzen oder Spektral-Methode k f m θ k (θ 0) ψ j, f k ψ j θ k (θ 0) j=0
Diskretisierung (g 2 (θ) 2 θ 2 + g 1(θ) θ + g 0(θ) + P ) n(ω, θ) φ(θ) = 0 P d (ω, θ) Diskretisiere die Gleichung auf einem N-Punkt Gitter: [0, 2π[ θ g(θ) Diag(g( θ)), n P n (ω) = ω j Diag(a j ( θ)) k j=0 θ k D k finite Differenzen oder Spektral-Methode k f m θ k (θ 0) ψ j, f k ψ j θ k (θ 0) j=0 ( G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω)
Lösen des diskreten Eigenwertproblems diskrete Eigenwertgleichung ( G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) Bisher: (P d (ω) [G 2 D 2 + G 1 D 1 + G 0 ] + P n (ω)) φ = 0 ( M 0 + M 1 ω + M 2 ω 2 + M 3 ω 3) φ = 0
Rechnung (P d (ω) [G 2 D 2 + G 1 D 1 + G 0 ] + P n (ω)) φ = 0 Standardlöser 2 1 Z /m 0 1 2 0 1 2 3 4 R/m ω 1024 = 46.794 + 3.019i
Rechnung (P d (ω) [G 2 D 2 + G 1 D 1 + G 0 ] + P n (ω)) φ = 0 Standardlöser 2 1 Z /m 0 1 2 0 1 2 3 4 R/m ω 1024 = 46.794 + 3.019i ω 64 = 56.759 + 18.008i
Rechnung (P d (ω) [G 2 D 2 + G 1 D 1 + G 0 ] + P n (ω)) φ = 0 Standardlöser richtig 2 2 1 Z /m 0 1 Z /m 0 1 1 2 0 1 2 3 4 R/m ω 1024 = 46.794 + 3.019i ω 64 = 56.759 + 18.008i 2 1 2 3 4 R/m ω 1024 = 54.415 + 4.043i ω 64 = 56.759 + 18.008i
Kondition der Eigenwertgleichung { ω c = lim ε 0 εω ω + ω löst die mit ε gestörte Eigenwertgleichung }
Kondition der Eigenwertgleichung (- -) (P d (ω) [G 2 D 2 + G 1 D 1 + G 0 ] + P n (ω)) φ = 0 ( ( ) G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) c 10 10 10 5 { ω c = lim ε 0 εω ω + ω löst die mit ε gestörte Eigenwertgleichung } 6 7 8 9 10 11 12 log 2 (N)
Kondition der Eigenwertgleichung (- -) (P d (ω) [G 2 D 2 + G 1 D 1 + G 0 ] + P n (ω)) φ = 0 ( ( ) G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) c 10 10 10 5 { ω c = lim ε 0 εω ω + ω löst die mit ε gestörte Eigenwertgleichung } 6 7 8 9 10 11 12 log 2 (N) Erklärung: Nenner mit P n (ω) ω multipliziert
Kondition der Eigenwertgleichung (- -) (P d (ω) [G 2 D 2 + G 1 D 1 + G 0 ] + P n (ω)) φ = 0 ( ( ) G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) c 10 10 10 5 { ω c = lim ε 0 εω ω + ω löst die mit ε gestörte Eigenwertgleichung } 6 7 8 9 10 11 12 log 2 (N) Erklärung: Nenner mit P n (ω) ω multipliziert Fazit nicht mit Nenner multiplizieren
Kondition der Eigenwertgleichung (- -) (P d (ω) [G 2 D 2 + G 1 D 1 + G 0 ] + P n (ω)) φ = 0 ( ( ) G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) c 10 10 10 5 { ω c = lim ε 0 εω ω + ω löst die mit ε gestörte Eigenwertgleichung } 6 7 8 9 10 11 12 log 2 (N) Erklärung: Nenner mit P n (ω) ω multipliziert Fazit nicht mit Nenner multiplizieren Auf niedriger Aufloesung (N = 64) kubische Gleichung anwendbar, Kandidat ermitteln
Lösung des rationalen Eigenwertproblems R(ω) φ := ( G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω)
Lösung des rationalen Eigenwertproblems R(ω) φ := ( G 2 D 2 + G 1 D 1 + G 0 + P n(ω) P d (ω) [ F(ω, R(ω) φ) := ] φ = 0, DF(ω, φ) = ) φ = 0 [ R (ω) φ R(ω) ].
Lösung des rationalen Eigenwertproblems F(ω, φ) := R(ω) φ := [ R(ω) φ φ H φ 1 ( G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) ] [ = 0, DF(ω, R φ) = (ω) ] φ R(ω) 0 2 φ H.
Lösung des rationalen Eigenwertproblems F(ω, φ) := R(ω) φ := [ R(ω) φ φ H φ 1 ( G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) ] [ = 0, DF(ω, R φ) = (ω) ] φ R(ω) 0 2 φ H. Newtonschritt [ ] DF(ω j, ω φ j ) = F (ω φ j, φ j ), ω = ω j+1 ω j, φ = φj+1 φ j R (ω j ) φ j ω + R(ω) φ = R(ω j ), 2 φ H j φ = φ H j φj 1,
Lösung des rationalen Eigenwertproblems F(ω, φ) := R(ω) φ := [ R(ω) φ φ H φ 1 ( G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) ] [ = 0, DF(ω, R φ) = (ω) ] φ R(ω) 0 2 φ H. Newtonschritt [ ] DF(ω j, ω φ j ) = F (ω φ j, φ j ), ω = ω j+1 ω j, φ = φj+1 φ j R (ω j ) φ j ω + R(ω) φ = R(ω j ), 2 φ H j φ = φ H j Update des Eigenvektors φj+1 = ωr 1 (ω j )R (ω j ) φ j. φj 1,
Lösung des rationalen Eigenwertproblems F(ω, φ) := R(ω) φ := [ R(ω) φ φ H φ 1 ( G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) ] [ = 0, DF(ω, R φ) = (ω) ] φ R(ω) 0 2 φ H. Newtonschritt [ ] DF(ω j, ω φ j ) = F (ω φ j, φ j ), ω = ω j+1 ω j, φ = φj+1 φ j R (ω j ) φ j ω + R(ω) φ = R(ω j ), 2 φ H j φ = φ H j Update des Eigenvektors φj+1 = ωr 1 (ω j )R (ω j ) φ j. φj 1, Update des Eigenwertes f (ω) := φ H R(ω) φ Newton: ω j+1 = ω j φ H R(ω j ) φ φ H R (ω) φ.
Inverse Iteration Löse R(ω) φ = 0 (0.) Wähle Startpaar (ω 0, φ 0 ) for j = 0,1,2,... do (1.) φ j+1 := R 1 (ω j )R (ω j ) φ j // Update des Eigenvektors (2.) φ j+1 := φ j+1 / φ j+1 // Normierung (3.) r j+1 = R(ω j ) φ j+1 // Residuum if r j+1 klein genug do Stopp end if φ H j+1 r j+1 (4.) ω j+1 := ω j φ H j+1 R (ω) φ j+1 end for // Update des Eigenwertes
Inverse Iteration Löse R(ω) φ = 0 (0.) Wähle Startpaar (ω 0, φ 0 ) for j = 0,1,2,... do (1.) φ j+1 := R 1 (ω j )R (ω j ) φ j // Update des Eigenvektors (2.) φ j+1 := φ j+1 / φ j+1 // Normierung (3.) r j+1 = R(ω j ) φ j+1 // Residuum if r j+1 klein genug do Stopp end if φ H j+1 r j+1 (4.) ω j+1 := ω j φ H j+1 R (ω) φ j+1 end for // Update des Eigenwertes Spezialfall R(ω) φ = (ωi A) φ = 0: Rayleighquotienten-Iteration (1.) ist teuer, i.a. O(N 3 ) Newtonverfahren kann zu anderem Eigenpaar springen
Inverse Iteration im Unterraum Löse R(ω) φ = 0, wobei φ span(v ), V C N k, k N (0.) Wähle Suchraum V und Startpaar (ω 0, φ 0 = V x 0 ) for j = 0,1,2,... do (1.) x j+1 := (V H R(ω j )V ) 1 V H R (ω j )V x j // Update des Eigenvektors (2.) x j+1 := x j+1 / x j+1 // Normierung (3.) r j+1 = V H R(ω j )V x j+1 // Residuum if r j+1 klein genug do Stopp end if x H j+1 (4.) ω j+1 := ω j r j+1 x H j+1 V H R (ω)v x j+1 // Update des Eigenwertes end for (1.) ist preiswert, i.a. O(k 2 ) Newtonverfahren kann nur innerhalb von V springen Differentialoperatoren mit FFT in R(ω)V
Rationaler Jacobi-Davidson Algorithmus (0.) Wähle Startpaar (ω 0, φ 0 ) und Suchraum V := [ φ 0 ]
Rationaler Jacobi-Davidson Algorithmus (0.) Wähle Startpaar (ω 0, φ 0 ) und Suchraum V := [ φ 0 ] loop (1.) Orthonormalisiere V end loop
Rationaler Jacobi-Davidson Algorithmus (0.) Wähle Startpaar (ω 0, φ 0 ) und Suchraum V := [ φ 0 ] loop (1.) Orthonormalisiere V (2.) Berechne Eigenpaar (ν, u) in V mit inverser Iteration end loop
Rationaler Jacobi-Davidson Algorithmus (0.) Wähle Startpaar (ω 0, φ 0 ) und Suchraum V := [ φ 0 ] loop (1.) Orthonormalisiere V (2.) Berechne Eigenpaar (ν, u) in V mit inverser Iteration (4.) Berechne Residuum r := R(ν) u. Es gilt r V. end loop
Rationaler Jacobi-Davidson Algorithmus (0.) Wähle Startpaar (ω 0, φ 0 ) und Suchraum V := [ φ 0 ] loop (1.) Orthonormalisiere V (2.) Berechne Eigenpaar (ν, u) in V mit inverser Iteration (4.) Berechne Residuum r := R(ν) u. Es gilt r V. if r klein genug do Stopp end if end loop
Rationaler Jacobi-Davidson Algorithmus (0.) Wähle Startpaar (ω 0, φ 0 ) und Suchraum V := [ φ 0 ] loop (1.) Orthonormalisiere V (2.) Berechne Eigenpaar (ν, u) in V mit inverser Iteration (4.) Berechne Residuum r := R(ν) u. Es gilt r V. if r klein genug do Stopp end if (5.) Löse (näherungsweise) (I w u H u H w ) R(ν)(I u u H ) t = r, t u, w := R (ν) u. (6.) Erweitere den Suchraum zu [V, t]. end loop
Die Korrekturgleichung (5.) Gegeben: Näherung (ν, u) der Eigenwertaufgabe ( R(ω) φ = G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) Jetzt Suchraum V [V, t] erweitern mit Newton Schritt (inverse Iteration) s = R 1 (ν)r (ν) u, zusätzlich t = α s u, so dass t u t = u H u u H s s u, R 1 (ν)r (ν) u = s R(ν) s = R (ν) u D j Spektralmethode R(ν) = = O(N 3 )
Die Korrekturgleichung (5.) Gegeben: Näherung (ν, u) der Eigenwertaufgabe ( R(ω) φ = G 2 D 2 + G 1 D 1 + G 0 + P ) n(ω) φ = 0 P d (ω) Jetzt Suchraum V [V, t] erweitern mit Newton Schritt (inverse Iteration) s = R 1 (ν)r (ν) u, zusätzlich t = α s u, so dass t u t = u H z u H s s z, Q 1 (ν) r = z Q(ν) z = r, Q(ν) R(ν) Q 1 (ν)r (ν) u = s Q(ν) s = R (ν) u D j Spektralmethode R(ν) = = O(N 3 ) D j finite Differenzen Q(ν) = = O(N)
Multilevel Jacobi-Davidson für Rationales Eig. Grobgitterlösung (ω N0, φ N0 ) bei N 0 = 64 mit P(ω) φ = (M 3 ω 3 + M 2 ω 2 + M 1 ω + M 0 ) φ = 0 V = [ φ N0 ], Jacobi-Davidson mit inverser Iteration bei N 0 Feineres Gitter N 1 = 2N 0, Eigenvektor interpolieren φ N1 V = [ φ N1 ], Jacobi-Davidson mit inverser Iteration bei N 0. (ω, φ) auf N final
Jacobi-Davidson-Verfahren Korrekturvektor t V ( Abbruch) Neustart mit skaliertem Eigenwertproblem 0 = R(ω)Φ = SR(ω)SΦ, wobei S diag( φ) Orthogonalisierung bzgl..,. S 2, d.h. V H V = I V H S 2 V = I Konvergenzrate (inverse Iteration): lokal quadratisch Zweiseitige inverse Iteration: lokal kubische Konvergenz R(ω) φ = 0 und ψ H R(ω) = 0, φj+1 := R 1 (ω j )R (ω j ) φ j ψ H j+1 := ψ H j R (ω j )R 1 (ω j ) ψ H j+1 ω j+1 := ω j R(ω) φ j+1 ψ H j+1 R (ω) φ j+1 Update des rechten Eigenvektors Update des linken Eigenvektors Update des Eigenwertes Linker V l und rechter V r Suchraum: Vl H R(ω)V r
Beispiel Skalierung links ohne Skalierung, rechts mit Skalierung Beschränkung: maximal (4) Durchläufe mit dim V 16, e f 10 9 N EP 1 EP 2 EP 3 EP 4 4096 64(4) 5(1) 8(1) 5(1) 64(4) 7(1) 14(1) 8(1) 2048 64(4) 5(1) 7(1) 4(1) 19(2) 6(1) 12(1) 9(1) 1024 9(1) 6(1) 9(1) 6(1) 14(1) 30(2) 14(1) 12(1) 512 12(1) 7(1) 8(1) 6(1) 24(2) 64(4) 55(4) 25(2) 256 12(1) 9(1) 11(1) 9(1) 64(4) 64(4) 64(4) 64(4) 128 16(1) 13(1) 14(1) 13(1) 64(4) 64(4) 64(4) 64(4) 64 11(1) 22(2) 10(1) 10(1) 22(2) 25(2) 27(2) 45(3) 2 2 2 2 1 1 1 1 0 0 0 0 1 1 1 1 2 1 2 3 4 2 1 2 3 4 2 1 2 3 4 2 1 2 3 4
Parameterstudie 4 I(ω) Ep 2 3 2 1 Ep 1 I(ω) 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 10 20 30 40 50 k (Wellenzahl) 0 1 2 3 4 k (Wellenzahl) N = 4096, 410 k-werte, Toleranz 10 9 : Rechenzeit: durchschnittlich 6 Sekunden je Eigenpaar
Zusammenfassung Eigenwertgleichung zur Beschreibung der Drift-Instabilitäten im Tokamak In X-Punkt-Geometrie: kubische Eigenwertgleichungs-Formulierung unbrauchbar Lösung der Rationalen Eigenwertgleichung: Newton, Inverse Iteration, Unterraumiteration Jacobi-Davidson Verfahren: präzise Bestimmung des Eigenwertes über Spektral-Diskretisierung, Korrekturgleichung preiswert über finite Differenzen Multilevel Jacobi-Davidson Verfahren mit Skalierung und Restarts: schnell, preiswert, präzise Parameterstudien: Restart mit neuem Parameter auf wenigen Leveln gröber physikalische Interpretation
Fragen?