Metoda elementów brzegowych Tomasz Chwiej, Alina Mreńca-Kolasińska 9 listopada 8 Wstęp Rysunek : a) Geometria układu z zaznaczonymi: elementami brzegu (czerwony), węzłami (niebieski). b) Numeracja: elementów (czerwony), lokalna węzłów (czarny) i globalna węzłów (niebieski) Na zajęciach rozwiążemy równanie Poissona dla ρ = u = ρ () używając metody elementów brzegowych. Geometria ukladu pokazana jest na rysunku (a). Obszar stanowi koło o promieniu R. Na brzegu (kolor czerwony) wprowadzamy węzły (niebieskie kropki), w których zadajemy warunek brzegowy (potencjał lub pochodne). Punktem startowym będzie podstawowe równanie M EB w D c i u( r i ) = Γ [ u( r, r i ) q( r) q( r, ] r i ) u( r) d Γ u( r, r i )ρ( r)dω () w którym ostatni wyraz skreślamy bo w układzie nie mamy gęstości. Dla ułatwienia wprowadźmy jeszcze oznaczenia: d Γ = ndγ (3) Ω q = u Γ q d Γ = q dγ (q = n u) (4) q = u Γ q d Γ = q dγ ( q = n u) (5) gdzie: n - wersor normalny do brzegu, dγ - element brzegu, q - gradient potencjału na brzegu, q - to gradient rozwiązania fundamentalnego (swobodna funkcja Greena u) na brzegu. Brzeg dzielimy na N elementów (n =,,..., N). Węzły wyznaczające ich krańce indeksujemy lokalnie k =, wewnątrz elementu, oraz globalnie (m =,,..., N ) m = [(n ) + k] mod N (6)
Wprowadzamy bazę funkcji {Φ k ( r)} na brzegu, by wyrazić u i q u( r) = q( r) = u n,k Φ( r) (7) n= k= n= k= q n,k Φ( r) (8) Równanie MEB możemy teraz zapisać przy użyciu nowych oznaczeń korzystając z elementów bazy c i u( r i ) = q n,k u( r, r i )Φ k ( r)dγ n u n,k q( r, r i )Φ k ( r)dγ n (9) n k n k = q n,k g n,k ( r i ) u n,k h n,k ( r i ) () n n k Z wykładu wiemy że jeśli za r i będziemy podstawiać kolejne położenia węzłów, to wygenerujemy układ równań liniowych H u = G q () gdzie: elementy wektorów u i q są wartościami potencjału i jego pochodnej w kolejnych węzłach. Aby rozwiązać problem, należy określić elementy macierzy H i G oraz narzucić warunek brzegowy, a następnie rozwiązać układ równań.. Wyznaczanie elementów macierzowych H i G Ustalając położenie źródła punktowego r i ustalamy wiersz macierzy i, natomiast para indeksów (n, k) m określa numer kolumny (wzór 6). Zatem mamy (uwzględniając przeniesienie elementów u n,k na lewą stronę oraz biorąc c i = /, δ i,m to delta Kroneckera) H i,m = k= Dla rozwiązania fundamentalnego w postaci h n,k ( r i ) + δ i,m oraz wersora normalnego do brzegu okręgu [ [ x n = r, y ] = r = k k= q( r, r i )Φ k ( r)dγ n + δ i,m u( r, r i ) = π ln r r i = π ln (x x i ) + (y y i ) (3) x x + y, ] y x + y () (4) mamy (patrz wzór 5) q( r, r i ) = (x x i ) x + (y y i ) y π r r r i (5) Całkowanie każdego elementu wykonamy po wycinku okręgu, który parametryzujemy przy użyciu kąta biegunowego φ x = R cosφ, y = R sinφ (6) Krańce każdego elementu wyznaczają kąty ( φ - odległość kątowa między węzłami) φ n, = (n ) φ (7) φ n, = n φ (8) więc całkowanie mozemy wykonać w przestrzeni referencyjnej, korzystając z transformacji i jakobianu φ = φ n, + φ n, J n = + φ n, φ n, rzeczywiste pole elementu pole elementu odniesienia = φ n, φ n, ξ, ξ [, ] (9) ()
co daje gdzie: h n,k ( r i ) = ( dξj n Φ k (ξ) π ) (x x i ) x + (y y i ) y r r r i () r = [x, y] () x = x(φ) = x (φ(ξ)) (3) a funkcje bazowe {Φ k } są liniowe y = y(φ) = y (φ(ξ)) (4) Φ (ξ) = ( ξ) (5) W podobny sposób otrzymujmey elementy G i,m Φ (ξ) = ( + ξ) (6) G i,m = g n,k ( r i ) = k= k= ( dξj n Φ k (ξ) ) π ln r r i (7). Warunki brzegowe Dirichleta Jeśli na całym brzegu tj. we wszystkich węzłach mamy określone wartości potencjału (wektor u) to wówczas pozostaje nam rozwiązać układ równań H u = b (8) G q = b (9) aby znaleźć wektor q. Mając wektory u i q możemy wyznaczyć wartość potencjału w dowolnym punkcie wewnątrz koła (patrz punkt.4)..3 Warunki Dirichleta i von Neumanna na brzegu Na brzegu możemy zadać WB Dirichleta w części węzłów, a dla pozostałych zastosować warunki von Neumanna. Oznacza to że znamy tylko część wektora u i część wektora q. Aby uwzględnić takie WB, w macierzy H zastępujemy kolumny odpowiadające nieznanym wartościom wektora u kolumnami (ze znakiem minus ) z macierzy G o znanych rozwiązaniach dla wekotra q i vice versa. Przestawienia kolumn macierzy oraz elementów wektorów dla WB, dla których znamy u oraz q, q,..., q N pokazano na rys.(b). W takim przypadku najpierw wyznaczamy wszystkie elementy H i G, następnie konstruujemy macierze (H i, to i-ta kolumna macierzy H) oraz wektor pomocniczy i liczymy oraz H = [H,, G,,..., G N, ] (3) G = [G,, H,,..., H N, ] (3) u = [u, q,..., q N ] T (3) H u = b (33) G q = b (34) Rozwiązanie układu (34) stanowi wektor q = [q, h,..., h N ] T. Znając u i q możemy odtworzyć u i q. 3
Rysunek : a) Zapis macierzowy równań MEB dla warunku Dirichleta we wszystkich węzłach brzegowych. b) Przestawienie kolumn macierzy oraz elementów wektorów u i q odpowiadające WB: Dirichleta w węźle m = oraz von Neumanna dla węzłów m =,,..., N..4 Wizualizacja rozwiązania Mając wektory u i q możemy narysować rozwiązanie (potencjał) wewnątrz okręgu ( r < R). Korzystamy z równania () kładąc c i = (źródło punktowe umieszczamy wewnątrz obszaru) u( r i ) = n= k= q n,k g n,k ( r i ) n= k= u n,k h n,k ( r i ) (35) Uwaga: Dla każdego położenia r i wewnątrz okręgu elementy g n,k ( r i ) oraz h n,k ( r i ) należy przeliczyć na nowo (wzory i 7). Można to robić na bieżąco podczas sumowania..5 Zadania do wykonania. Ustalamy wartości parametrów: R = 5, N =. Węzły rozmieszczamy równomiernie na obwodzie koła z φ = π/n.. Tworzymy tablice H i G i wypełniamy ich elementy zgodnie z wzorami () i (7). Całki liczymy numerycznie używając węzłowej kwadratury Gaussa-Legendre a. W GSL-u używamy funkcji: gsl integration glfixed table alloc oraz gsl integration glfixed point 3. WB Dirichleta a) Ustalamy warunki brzegowe Dirichleta dla wszystkich węzłów w postaci (wypełniamy wektor u) u(φ i ) = sin(φ i ), φ i = i φ, i =,,..., N (36) b) znajdujemy wektor b (wzór 8) i rozwiązujemy układ równań (wzór 9) 4
c) Sprawdzić działanie programu. Zgodnie z twierdzeniem Gaussa całkowity strumień przenikający powierzchnię zamkniętą musi być równy zero bo nie mamy ładunków w układzie. Czyli suma składowych q zeruje się co jest testem poprawności wyniku. N i= q i = (37) d) Zapisać do pliku składowe u i q. Sporządzić wykresy wartości potencjału ( u) i pochodnej ( q) w węzłach na jednym rysunku. (4 pkt.) e) Sporządzić wykres rozkładu potencjału w postaci kolorowej mapy (wzór 35) korzystając z zależności (6) dla x i i y i. (4 pkt.) 4. Warunki WB Dirichleta i von Neumana. a) Z poprzedniego zadania zachowujemy rozwiązania i zapisujemy jako u oraz q. b) Wprowadzamy warunek Dirichleta w węźle m = oraz von Neumanna w pozostałych m =,,..., N, czyli tworzymy wektor u w postaci (3) korzystając ze znanych rozwiązań u i q. Następnie wyznaczamy b (wzór 33) i rozwiązujemy układ (wzór 34). Z wektorów u i q utworzyć wektory u i q i zapisać do pliku. pkt..6 Przykładowe wyniki a) b).5.5 u(r,fi) q(r,fi) y 5 4 3.5 -.5 - - -.5 - -3-4 -.5-4 6 8 fi -5-5 -4-3 - - 3 4 5 x - Rysunek 3: a) Zmiany u i q, b) rozkład potencjału 5