1 Potentialströmungen Eine Potentialströmung in R D, D = 2, 3, wird durch den (hydrostatischen) Druck p : R, den Fluss q : R D und das Materialgesetz (Darcy) q = κ (p + G) beschrieben. Dabei ist κ der Permeabilitätstensor und G das Gravitationspotential. Im Folgenden verwenden wir die Hilfsgröße u = p + G, d.h., q = κ (p + G) = κ u. Auf dem Rand = Γ D Γ N werden Randdaten u D : Γ D R, g N : Γ N R, für die Randbedingungen u = u D auf Γ D und q n = g N auf Γ N vorgegeben. Aus der Bilanzgleichung q n da = 0 für jedes Teilvolumen Y div q = 0 Y ergibt sich für jede Testfunktion φ: R mit φ = 0 auf Γ D die Variationsgleichung für u κ u φ dx = g N φ da. C. Wieners: Einführung in das Wissenschaftliche Rechnen 1
2 Lineare und bilineare Finite Elemente in 2D Sei = eine Zerlegung in Drei- und Vierecke = conv V τ. (2.1) Eine Zerlegung heißt zulässig, wenn conv(v conv V ) = conv V conv V für,. Zu jedem Drei- oder Viereck sei ˆ = conv ˆV das Referenzdreieck oder -viereck. In ˆ bestimme eine notenbasis ˆλ j mit ˆλ j (ẑ k ) = δ jk für ẑ k ˆV. Setze ˆV = span{ˆλ j }. Sei ϕ : ˆ und V = {ˆλ ϕ 1 : ˆλ ˆV }. Setze V = V = {z 1,..., z N }. Definiere V h = {φ h : φ h V } und V h (u) = {φ h V h : φ h (z) = u(z) für z V Γ D }. Die Finite-Elemente-Lösung u h V h (u D ) ist durch die Variationsgleichung κ u h φ h dx = g N φ h da, φ h V h (0) Γ N definiert. Sei λ 1,..., λ N V h eine notenbasis mit λ n(z k ) = δ nk und u h = u[n]λ n. Dann gilt A u = b mit A[n, k] = κ λ k λ n dx, b[n] = g N λ n da für n I D = {n : z n Γ D }. Für n I D setze A[n, k] = δ nk und b[n] = u D (z n). (2.2) Sei κ symmetrisch und uniform positiv definit (d.h. κy y κ 0 y 2 mit κ 0 > 0). Sei I D. Dann ist A regulär und auf V (0) = {v R N : v n = 0 für n I D } symmetrisch positiv definit. C. Wieners: Einführung in das Wissenschaftliche Rechnen 2
3 Lösung dünn besetzter Gleichungssysteme Sei A R N N und b R N gegeben. Bestimme eine Lösung u R N von Au = b. Sei I = {1,..., N} die Indexmenge und G A = {(n, k) I I : A[n, k] 0} der Matrixgraph. (3.1) Matrizen A heißt dünn besetzt, wenn G A C N (mit C > 0 unabhängig von N). (3.2) Sei I = {n I : z n V } und max n { : n V } C. Dann gilt: a) G A I I und G A C(N + 1). b) Matrix-Vektor-Multiplikation und Assemblieren benötigen O(N) Operationen. c) Das compressed row storage format benötigt O(N) Arbeitsspeicher. Sei I = I 1 I P I Γ eine disjunkte Zerlegung mit Blockmatrizen A pq, und A pγ, A Γp, A ΓΓ. Eine solche Zerlegung ergibt sich durch eine nichtüberlappende Gebietszerlegung = 1 2 P Γ mit Interface Γ. (3.3) Sei A pq = 0 für p q. Wenn A symmetrisch positiv definit ist, dann ist auch das Schurkomplement S = A ΓΓ A Γp A 1 pp A pγ symmetrisch positiv definit, und für u = A 1 b gilt u Γ = S 1( b Γ A Γp A 1 ) pp b p, u p = A 1 ( ) pp bp A pγ u γ. C. Wieners: Einführung in das Wissenschaftliche Rechnen 3
3 Subspace Correction Methods Seien R p R N 0 N Restriktionsmatrizen mit N p < N (p = 1,..., P) und A p = R par T p. Wähle Vorkonditionierer B p R Np Np B p = A 1 p, B p = diag(a p) 1 (Jacobi), oder B p = ( diag(a p) + lower(a ) 1 p) (Gauss-Seidel). P0) wähle u 0, berechne r 0 = b Au 0, wähle ε > 0 und θ > 0, setze k = 0 P1) falls r k ε STOP P2) berechne c p = B pr pr k für alle p und c k = R T p c p (additiv) P3) berechne u k+1 = u k + θc k und r k+1 = r k θac k P4) setze k := k + 1 und gehe zu P1). In der multiplikativen Variante von P2) berechne c p = B pr p ( r k A p 1 q=1 RT q c q ). (3.4) Sei B R N N mit u k+1 = u k + θbr k. Dann gilt B = Rp T BpRp (additiv) bzw. (I N BA) = (I N Rp T BpRpA) (multiplikativ). Wenn A und B p symmetrisch positiv definit sind, dann existiert θ 0 > 0, so dass ρ = ρ(i N θba) < 1 für alle θ (0, θ 0 ) und u u k A ρ k u u 0 A für y A = y Ay. (3.5) a) Seien A, B sym. pos. def. mit αy Ay y ABAy C y Ay. ( Dann gilt für das CG-Verfahren u u k ) A 2 κ 1 k κ+1 u u 0 A mit κ = C α. b) Es gelte αy y < y ABy und AB 2 C. ) k/2 u Dann gilt für das GMRES-Verfahren u u k 2 κ 2 (AB) (1 α2 C u 0 2 2. C. Wieners: Einführung in das Wissenschaftliche Rechnen 4
3 Multilevel Methods Sei R 0 R N0 N die Restriktion auf einen Unterraum. (3.6) Sei A 0 = R 0 AR0 das Galerkin-Produkt, und sei A symmetrisch positiv definit. Dann ist P 0 = R0 A 1 0 R 0A eine Orthogonalprojektion bzgl. y, z A = y Az. Z0) wähle u 0, berechne r 0 = b Au 0, wähle ε > 0 und θ > 0, setze k = 0 Z1) falls r k ε STOP Z2) berechne c k 0 = A 1 0 R 0r k Z3) berechne c k = R 0 ck 0 + B(r k AR 0 ck 0 ) Z3) berechne u k+1 = u k + c k und r k+1 = r k Ac k Z4) setze k := k + 1 und gehe zu Z1). (3.7) a) Es gilt u u k+1 = (I N BA)(I N P 0 )(u u k ). b) A und B seien symmetrisch positiv definit mit BA A 1 and v Av C v ABAv. Dann gilt (I N BA)(I N P 0 )(u u k ) A 1 1/C. C. Wieners: Einführung in das Wissenschaftliche Rechnen 5
3 Multilevel Methods Seien V 0 V 1 V L Finite-Elemente-Räume mit h l = h l 0, l = 0,..., L. Seien A l R N l N l die Finite-Elemente-Matrizen und B l R N l N l Vorkonditionierer. Seien R l R N l N l+1 die Restriktionen mit A l = R l A l+1 Rl. M0) wähle ul 0, berechne r L 0 = b L A L ul 0, wähle ε > 0 und θ > 0, setze k = 0 M1) falls r k L ε STOP M2) setze l = L und r L = r k L M3) für ν = 1, ν 1 berechne w l = B l r l, c l := c l + w l, r l := r l A l w l M4) setze l := l 1 M5) restringiere r l = R l r l+1 M6) falls l > 0, gehe zu M3). M7) berechne c 0 = A 1 0 r 0 M8) setze l := l + 1 M9) interpoliere c l := c l + R l c l 1 M10) für ν = 1, ν 2 berechne w l = B l r l, c l := c l + w l, r l := r l A l w l M11) falls l < L, gehe zu M8). M12) berechne u k+1 = u k + c L und r k+1 = r k Ac L M13) setze k := k + 1 und gehe zu M1). C. Wieners: Einführung in das Wissenschaftliche Rechnen 6
4 Gemischte Finite Elemente Betrachte das System div q = 0, q = κ u in mit den Randbedingungen u = u D auf Γ D, q n = g N auf Γ N. Sei eine zulässige Triangulierung und F die Seiten F = bzw. F. Im Referenzdreieck oder -viereck definiere Ŵ = span{ ˆψ j } mit Vektorfeldern ˆψ j zu jeder Elementseite ˆF j mit ˆFk ˆψj n da = δ jk. Sei ϕ : ˆ und W = {Dϕ ˆφ ϕ 1 : ˆφ Ŵ }. Zu jeder Seite F n F sei ψ n das Vektorfeld mit F ˆψn n Fk da = δ k kn und ψ n W. Definiere W h = { ψ n : F n F } und W h (g) = { ψ h W h : F ψ h n da = F g da für F Γ N}. (4.1) Definiere Q h = τ P 0. Die gemischte Finite-Elemente-Lösung (q h, u h ) W h ( g N ) Q h ist durch das Sattelpunkt-Problem κ 1 q h ψ h dx u h div ψ h dx = u D ψ h n da, Γ D div q h φ h dx = 0, (ψ h, φ h ) W h (0) Q h definiert. Für die analytische Lösung q und für Finite-Elemente-Lösungen q h W h und u h V h mit u h = u D auf Γ D und q h n = g N auf Γ N gilt die Fehlerabschätzung q q h κ 1 κ u h q h κ 1 mit ψ 2 κ 1 = κ 1 ψ ψ dx. C. Wieners: Einführung in das Wissenschaftliche Rechnen 7
4 Gemischte und hybride Finite Elemente (4.2) Sei W = W, M h = F P 0, M h (u D ) = {µ h M h : F µ h da = F u D da, F Γ D }. a) Es gilt für ψ h W : ψ h W h div ψ h φ h dx = ψ h φ h dx für alle φ h V h (0). b) Für q h W h sei div ψ hφ h dx = 0 für alle φ h Q h. Dann gilt q h n da = q h n da Γ in Γ out mit Γ in = {x : q h (x) n(x) 0} und Γ out = {x : q h (x) n(x) 0}. c) Für u h V h und λ h M h sei div ψ u h dx + ψ u h dx = λ h φ h n da für alle ψ W. Dann gilt F λ h da = F u h da für F F. (4.3) Es ist äquivalent: (1) (q h, u h ) W h ( g N ) Q h löst das Sattelpunkt-Problem (4.1). (2) (q h, u h, λ h ) W Q h M h (u D ) löst das Sattelpunkt-Problem κ 1 q h ψ h dx u h div ψ h dx = λ h ψ n da für alle ψ W div q h dx = 0 für alle und q h n µ h da = Γ g N N µ h da für alle µ h M h (0). C. Wieners: Einführung in das Wissenschaftliche Rechnen 8
5 Finite Volumen für die lineare Transportgleichung Zu gegebenem Fluss q : R D mit div q = 0 bestimme die Dichte ρ: [0, T ] R mit t ρ + div(ρq) = 0 in [0, T ], ρ(0) = ρ 0, und mit der Einfluss-Randbedingung ρ = ρ in auf Γ in = {x : q n < 0}. Sei Ψ(ρ) = ρq der Fluss und definiere M, A, b durch (Mρ, φ) = ρφdx, (Aρ, φ) = (div Ψ(ρ), φ) +(Ψ(ρ) n, φ) Γin, (b, φ) = (Ψ(ρ in ) n, φ) Γin. Dann gilt (M t ρ, φ) = (Aρ + b, φ) für alle φ L 2 () und t (0, T ). Definiere Q h = P 0 (finite Volumen) bzw. Q h = Pp (discontinuous Galerkin). Definiere M h, A h, b h durch (M h ρ h, φ h ) = (Mρ h, φ h ), (b h, φ h ) = (b, φ h ), und ( (A h ρ h, φ h ) = (div Ψ(ρ h ), φ h ) + ( (Ψ(ρ ) Ψ,F (ρ ) ) h)) n, φ h +(Ψ(ρ F h ) n, φ h ) Γin F \Γ in mit dem numerischen Fluss auf F = F Ψ,F (ρ h) = Ψ(ρ ) falls q n > 0, Ψ,F (ρ h) = Ψ(ρ F ) falls q n < 0 und Ψ,F (ρ h) = 0 für F \ Γ in. C. Wieners: Einführung in das Wissenschaftliche Rechnen 9
5 Lineare Transportgleichung: Zeitintegration Die M h t ρ h = A h ρ h wird von ρ h (t n+1 ) = exp( t M 1 h A h )ρ h (t n) gelöst (t n = n t). lassisches explizites Runge-utta-Verfahren ρ n+1 h = ρ n ( h + t M 1 h A h ρ n h + 1 ( t M 1 2 h A h ρ n + 1 3 Implizite Mittelpunktsregel ρ n+1 h = ρ n h + t ( M h t 2 A 1Ah h) ρ n h ( t M 1 h A h ρ n + 1 4 Polynomiale rylov-raum-methode ρ n+1 h = V m exp( t H m)v m M hρ n h mit Hm = V m A hv m R m m, m N Dazu berechne eine M-orthogonale Basis v j des rylov-raums span{ρ n h, M 1 h A h ρ n h,..., (M 1 h A h ) m 1 ρ n h }, t M 1 h A h ρ n ))) h d.h. für die Matrix V m = [v 1,..., v m] gilt V mm h Vm = Im. Die Galerkin-Approximation H m = Vm A h V m von A h ist eine Hessenbergmatrix. C. Wieners: Einführung in das Wissenschaftliche Rechnen 10
5 Die lineare Transportgleichung (5.1) Für die lineare Transportgleichung gilt die Massenbilanz t t ρ(t) dx = ρ 0 dx + ρ in q n dadt 0 Γ in 0 ρ q n dadt. Γ out (5.2) Für die finite-volumen-approximation ρ h P 0 ( ) mit upwind-flux gilt die Massenbilanz t t ρ h (t) dx = ρ 0 dx + ρ in q n dadt 0 Γ in 0 ρ h q n dadt. Γ out (5.3) Sei ρ 0 0 und ρ in 0. Dann gilt für die die FV-Approximation mit upwind-flux ρ h 0. (5.4) Für die lineare Transportgleichung gilt die Energiebilanz t t ρ(t) 2 dx = ρ 0 2 dx + ρ in 2 q n dad t 0 Γ in 0 ρ 2 q n dad t. Γ out (5.5) Für die dg-approximation ρ h P p( ) mit upwind-flux gilt t t ρ h (t) 2 dx = ρ 0 2 dx + ρ in 2 q n dad t ρ h 2 q n dad t 0 Γ in 0 Γ out t t ρ ρ F 2 q n dad t ρ in ρ h 2 q n dad t. F F h 0 F 0 F C. Wieners: Einführung in das Wissenschaftliche Rechnen 11
6 Die onvektions-diffusions-reaktionsgleichung Zu gegebenem Fluss q : R D mit div q = 0, Diffusionstensor κ c : R D D und Reaktionsrate r : [0, t] R R bestimme die onzentration c : [0, T ] R mit t c div(κ c c cq) = r(c) in [0, T ], c(0) = c 0, mit den Randbedingungen c = c D auf Γ D [0, T ], κ c c n = g N auf Γ N [0, T ], κ c c n +αc = g R auf Γ R [0, T ]. Definiere A und R durch (Ac, φ) = (R(c), φ) = ( κc c φ + q cφ ) dx + Γ R αcφ da, r(c)φ dx + g N φ da + g R φ da. Γ N Γ R (6.1) Dann gilt ( t c, φ) + (Ac, φ) = (R(c), φ) für alle φ mit φ ΓD = 0 und t (0, T ). (6.2) Sei q n 0 auf Γ N, α + 1 2 q n 0 auf Γ R, 3 r 0, und κ c uniform positiv definit. Dann ist für alle t n > 0 das diskrete Problem ( 1 ) ch n V h(c D (t n)): t (cn h cn 1 h ) + Ach n R(cn h ), φ h = 0, φ h V h (0) ( ) eindeutig lösbar und (Jh n(c h)v h, φ h ) = 1 t v h + Av h R (t n, c h )v h, φ h positiv definit. C. Wieners: Einführung in das Wissenschaftliche Rechnen 12
6 Die onvektions-diffusions-reaktionsgleichung Zu gegebenem c h V h definiere g n h (c h) V h (0) und J n h (c h): V h (0) V h (0) mit (g n h (c h), φ h ) = (J n h (c h)v h, φ h ) = ( 1 t (c h c n 1 h ) + Ac h R(t n, c h ), φ h ), ( 1 ) t v h + Av h R (t n, c h )v h, φ h, v h, φ h V h (0). S0) Wähle t > 0, ε, θ > 0, k max, l max N, setze c 0 h (z) = c 0(z), t 0 = 0 und n = 1 S1) setze t n = min{t, t n 1 + t}, k = 0 und wähle c n,0 h V h (c D (t n)) S2) berechne g n,0 h = gh n(cn,k h ) und ε n = max{ε, θ g n,0 h } S3) falls k = k max, setze t := 0.5 t und gehe zu S1) falls g n,k h ε n, setze ch n = cn,k h falls t n < T, wähle t > 0, setze n := n + 1, gehe zu S1) S4) berechne J n,k h = Jh n(cn,k h ) und löse J n,k h d n,k h = g n,k h S5) setze l = 0 und s n,k = 1 S6) setze c h = c n,k h + s n,k d n,k h und berechne g h = g n h (c h) S7) falls g h < g n,k h, setze c n,k+1 h = c h, g n,k+1 h = g h, k := k + 1 und gehe zu S3) S8) falls l = l max, setze t := 0.5 t und gehe zu S1) S9) setze l := l + 1, s n,k := 0.5s n,k, und gehe zu S6) C. Wieners: Einführung in das Wissenschaftliche Rechnen 13
6 Die stationäre onvektions-diffusions-gleichung Zu gegebenem Fluss q : R D mit div q = 0, Diffusionstensor κ c : R D D und Reaktionsrate / Quellterm r, f : R R bestimme die onzentration c : R mit div(κ c c cq) + rc = f mit den Randbedingungen c = c D auf Γ D = Γ in und κ c c n + q nc = 0 auf Γ R = Γ out. Definiere a und b durch ( a(c, φ) = κc c φ + q cφ + rcφ ) dx + q n cφ da, Γ R b(φ) = f φ dx und a h (c h, φ h ) = a(c h, φ h ) + ( δ div(κc c) + q c + rc ) q φ dx, b h (φ h ) = b(φ h ) + δ f q φ dx. (6.3) Sei κ cy y κ 0 y 2, κ 0 h q, r r 0 > 0. Dann gilt für φ h V h (0) a h (φ h, φ h ) φ h 2 SD mit φ h 2 SD = κ 0 2 φ h 2 + r 0 2 φ h 2 + δ 2 q φ 2 bei geeigneter Wahl δ = O(h). C. Wieners: Einführung in das Wissenschaftliche Rechnen 14
7 DG-Verfahren für die Diffusionsgleichung Betrachte eine Potentialströmung in R D, D = 2, 3 mit div q = 0 und q = κ u in, u = u D auf Γ D und q n = g N auf Γ N. Für unstetige Testfunktionen φ h Q h = P p( ) gilt κ u φ h dx κ u nφ h da = g N φ h da. \Γ N Γ N Setze {q} F = 1 2 (q + q F ) und [φ h ] F = n φ + n F φ F auf F = F. Es gilt q n F = q F n F = q n φ + q F n F φ F = {q} F [φ h ] F Auf F Γ D setze {q} F = q und [φ h ] F = φ h. Damit ergibt sich κ u φ h dx {κ u} F [φ h ] F da = F F F h \Γ N Γ N g N φ h da. Die DG-Approximation u h Q h wird durch a h (u h, φ h ) = b h (φ) mit a h (u h, φ h ) = κ u h φ h dx + γ F [u h ] [φ h ] F da F F h \Γ F N ( {κ u h } F [φ h ] F + [u h ] F {κ φ h } F da F F h \Γ F N b h (φ) = g N φ h da + u D κ φ h n da + u D φ h da Γ N Γ D F F F h Γ D γ F abhängig von γ F > 0 definiert. Die kontinuierliche Lösung erfüllt auch a h (u, φ h ) = b h (φ). C. Wieners: Einführung in das Wissenschaftliche Rechnen 15