równania różniczkowe cząstkowe...

39
Równania różniczkowe cząstkowe (RRCz) → równanie eliptyczne → równanie Poissona 1. Klasyfikacja RRCz, przykłady 2. Metody numerycznego rozwiązywania równania Poissona a) FFT (met. bezpośrednia) b) metoda różnic skończonych c) układ równań z jawnie zdefiniowaną macierzą d) metody iteracyjne bez konstrukcji macierzy: - metoda Jakobiego, Gaussa-Seidla, zbieżność - całka działania - relaksacja, nadrelaksacja - metoda zagęszczania siatki - relaksacja wielosiatkowa

Upload: others

Post on 05-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

Równania różniczkowe cząstkowe (RRCz)

→ równanie eliptyczne → równanie Poissona

1. Klasyfikacja RRCz, przykłady

2. Metody numerycznego rozwiązywania równania Poissona

a) FFT (met. bezpośrednia)

b) metoda różnic skończonych

c) układ równań z jawnie zdefiniowaną macierzą

d) metody iteracyjne bez konstrukcji macierzy: - metoda Jakobiego, Gaussa-Seidla, zbieżność - całka działania - relaksacja, nadrelaksacja - metoda zagęszczania siatki

- relaksacja wielosiatkowa

Page 2: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

2

Równania różniczkowe cząstkowe – klasyfikacja równań

Ogólna postać RRCz 2 rzędu zależnego od n zmiennych

i zakładamy

Zakładając, że: wówczas RRCz jest:

● eliptyczne jeśli (A jest dodatniookreślona)

● paraboliczne jeśli:

● hiperboliczne jeśli wartości własne A:

Page 3: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

3

Przykłady RRCz

Eliptyczne - równanie Poissona

Opisuje rozwiązania stacjonarne. Gdzie się pojawia?

● Rozkład potencjału elektrycznego (grawitacyjnego)

ε - „stała” dielektryczna (w określonych podobszarach Ω), f -gęstość ładunku (masy)

● stacjonarne rozwiązania równania dyfuzji (s – źródło ciepła)

● Jedno z równań Naviera-Stokesa (stacjonarny przepływ cieczy lepkiej)

ΩΓ

ε1 ε2

to równaniem Poissona nie jest

Page 4: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

4

Paraboliczne – równanie dyfuzji ciepła (k – wsp. przewodności cieplnej, S – źródło ciepła )

Hiperboliczne – równanie falowe

Opisują drgania mechaniczne np. membrany w 2D (f – wymuszenie, β - tłumienie )

lub rozchodzenie się fal elektromagnetycznych np. w światłowodzie

T1 T2

S4 zmienne niezależne - ale mamy tylko 3 pochodne 2 rzędu w równaniu

Page 5: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

5

Eliptyczne RRCz na przykładzie równania Poissona

Aby rozwiązanie równania eliptycznego było jednoznaczne musi ono spełniać określone warunki na brzegu obszaru – rozwiązujemy tzw. problem brzegowy RRCz.

Typy warunków brzegowych (Г - brzeg):

1. Dirichleta

● jednorodne

● niejednorodne

2. Neumanna

3. mieszane (Robina)

Page 6: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

6

Metoda różnic skończonych w 1D/2D

Wprowadzamy siatkę przestrzenną z równoodległymi węzłami

Rozwiązania u(x) poszukujemy w położeniach węzłowych.

Dyskretyzujemy rów. Poissona zastępując pochodne ciągłe ilorazami różnicowymi (np. 2 pochodna → iloraz trójpunktowy symetryczny)

1D

2D

Page 7: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

7

Rozwiązywanie równania Poissona przy użyciu FFT (fast Poisson solver)

Przypomnienie → FFT w 1D:

- wartości potencjału w węzłach sieci prostej

-wartości potencjału w węzłach sieci odwrotnej (transformata)

Page 8: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

8

Po wstawieniu transformat odwrotnych do zdyskretyzowanego równania Poissona:

dla otrzymujemy

korzystając z relacji

otrzymamy

→ rozwiązanie uzyskamy wykonując transformację odwrotną (poprzedni slajd)→ jest ono periodyczne

→ czy istnieje problem dla m=n=0? (zero w mianowniku) – nie ponieważ przyczynek od k

m=k

n=0 pochodzi od funkcji stałej,

którą możemy dodać do naszego rozwiązania (tak aby spełniało np. WB)

Page 9: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

9

Warunki brzegowe:

→ jednorodne WB Dirichleta wówczas stosujemy transformację sinusową

Stosując zdyskretyzowaną postać rów. Poissona korzystamy z relacji

co prowadzi do wyrażenia

Po obliczeniu wszystkich dokonujemy transformacji odwrotnej potencjału

Page 10: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

10

Warunki brzegowe cd.: → niejednorodne Dirichleta np. i jednorodne w pozostałejczęści brzegu

Rozwiązanie można zapisać w postaci (zasada superpozycji)

Z warunkami

Page 11: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

11

Po wstawieniu u do zdyskretyzowanego r. Poissona dostaniemy

Wkład od ub pochodzi tylko od węzłów i=N-1 leżących na prawym brzegu

(zakładamy że poza brzegiem ub=0)

Czyli modyfikujemy tylko prawą stronę równania (gęstość) – dalej postępujemy jak w przypadku warunków jednorodnych Dirichleta.

Page 12: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

12

Warunki brzegowe cd.:

→ warunki von Neumanna

→ dla jednorodnych warunków v.N. stosujemy transformację kosinusową, która automatycznie spełnia WB

Page 13: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

13

→ niejednorodne WB. Neumana

np. na prawym brzegu

Znowu zakładamy postać rozwiązania na brzegu

z warunkami:

niezerowy wkład do wartości + znikanie pochodnej = jednorodne WB v. Neumanna= transformacja kosinusowa

Znika wartość na brzegu, ale daje wkład do pochodnej

Page 14: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

14

Do równania różnicowego

wstawiamy dla l=N-1 (pozostałe wyrazy =0)

I otrzymujemy równanie ze zmodyfikowaną prawą stroną dla transformacji kosinusowej:

Page 15: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

15

Zalety:

→ metoda szybka (jedynie FMG może być szybsza) i bezpośrednia (daje wynik po skończonej liczbie operacji)

→ dobrze działa na siatce prostokątnej → transformacje wykonywane na jednej tablicy potencjału (potrzebujemy jeszcze 2 tablicę dla prawej strony RRCz)

Wady:

→ zastosowanie tylko do obszarów o regularnych kształtach: prostopadłościan, sfera, cylinder → nie uwzględnia powierzchni brzegowej w środku np. elektrody włożone do obszaru, w którym szukamy potencjału

Biblioteki: Math Kernel Library (Fortran, C/C++) → Fast Poisson Solver (wykorzystuje pakiet FFTW)

Page 16: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

16

Jeszcze o metodzie bezpośredniej rozwiązywania r. Poissona.

Skorzystajmy ze zdyskretyzowanej postaci równania w 1D

→ generuje ono jedno równanie dla ustalonej wartości l.

Zapisując je dla l=0,2,3,...,N-1 otrzymamy układ równań

przykład

→ Jak wprowadzić warunki brzegowe?

Page 17: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

17

Uwzględniamy warunki brzegowe:

→ Dirichleta (3 kroki)

→ von Neumanna

np.: na prawym brzegu

Page 18: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

18

Postać macierzowa operatora Laplace'a w 2D i 3D

2D

reindeksacja węzłów

5 przekątnych:

3D (analogicznie )

7 przekątnych:

Page 19: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

19

Kiedy opłaca się rozwiązywać rów. Poissona znajdując rozwiązanie Ax=b?

→ tylko wtedy gdy używamy algorytmów dla macierzy rzadkich

→ w 1D UARL rozwiążemy przy użyciu LU dla macierzy trójdiagonalnych z nakładem ~O(n)

→ w 2D UARL też rozwiążemy stosując LU ale dla macierzy pięcioprzekatniowych

→ w 3D można stosować

i) LU jeśli liczba węzłów jest mała

ii) iLU jako preconditioner dla metod iteracyjnych (BiCGStab,GMRES, TFQMR itp.)

Page 20: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

20

Metody iteracyjne

Punktem wyjścia jest układ równań (jeszcze w postaci macierzowej)

Który rozwiązywać będziemy iteracyjnie

M jest macierzą iteracji, która posiada wartości i wektory własne

Metoda iteracyjna jest zbieżna wtedy i tylko wtedy, gdy promień spektralny spełnia warunek

Co dają metody iteracyjne:

→ jeśli M jest macierzą rzadką to koszt jednej iteracji jest rzędu O(n), dla pełnej macierzy O(n2) → jeśli rozwiązanie startowe jest „bliskie” dokładnemu to ilość iteracji może być mała (rel. wielosiatkowe)

→ zazwyczaj prosta konstrukcja macierzy M, a w przypadku rów. Poissona nie trzeba jej nawet tworzyć (zysk w postaci ograniczenia zajętej pamięci)

→ jak w każdej procedurze iteracyjnej mogą jednak wystąpić problemy ze zbieżnością, zbieżność silnie zależy od postaci macierzy iterującej/schematu relaksacyjnego

Page 21: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

21

Zbieżność metody iteracyjnej

Dla przepisu iteracyjnego mamy

Mamy dostępną bazę w postaci wektorów własnych M:

Założenia:

Metoda powinna być zbieżna, ale jaka będzie szybkość zbieżności do rozwiązania dokładnego? → zależy od postaci M

błąd w k-tej iteracji

Page 22: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

22

Konstrukcja macierzy iterującej

Założenia: 1) 2) zbieżność:

3) tempo zbieżności

Metoda Jakobiego:

diagonala macierztrójkątna dolna

macierztrójkątna górna

Page 23: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

23

Metoda Jakobiego cd. (warunki brzegowe Dirichleta → niejawne)

Przepis iteracyjny (macierzowy):

Przepis dla pojedynczego węzła siatki → to wzór relaksacyjny:

Page 24: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

24

Otrzymaliśmy wzór relaksacyjny dla metody Jakobiego

→ nie musimy już konstruować macierzy (ta ma prostą konstrukcję, a jej współczynniki są zawarte w równaniu)

→ w obliczeniach musimy użyć dwóch tablic/wektorów, dla starego i nowego rozwiązania, metoda Jakobiego to relaksacja globalna

→ jaka jest zbieżność tej metody?

-1-0.8-0.6-0.4-0.2

00.20.40.60.8

1

0 2 4 6 8 10 12 14 16 18 20

l

i

nr

eigenvalues - Jakobi

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0 2 4 6 8 10 12 14 16 18 20

nodes

vec1

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0 2 4 6 8 10 12 14 16 18 20

nodes

vec10

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0 2 4 6 8 10 12 14 16 18 20

nodes

vec20

Przykład:

20 węzłów, i=1,2,...,20

zanika wolno

zanika wolno

zanika szybko

i) metoda Jakobiego jest zbieżnaii) są wartości własne o modułach bliskich 1 → metoda jest wolno zbieżna

Page 25: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

25

Zbieżność metody Jakobiego

Tempo zbieżności (eliminacji błędu)

zależy od promienia spektralnego M

→ im więcej węzłów N tym bardziej promień spektralny zbliża się do 1

→ zagęszczanie siatki spowoduje spowolnienie działania metody Jakobiego

Algorytm

Page 26: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

26

Metoda Gaussa-Seidla

Średnia arytmetyczna: sąsiada z prawej strony (k)oraz z lewej strony (k+1)

Dla laplasjanu (po wymnożeniu przez D-1) otrzymamy:

Page 27: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

27

→ Ze względu na jednoprzekątniową postać L i U wzór działa jak podstawienie. Pozbywając się macierzy, dostaniemy wzór relaksacyjny.

→ wyliczając nową wartość w węźle i-tym korzystamy z wartości w węźle (i-1) już zmienionym w bieżącej Iteracji

→ metoda GS to relaksacja lokalna (rozwiązanie znajdziemy dysponując tylko jednym wektorem rozwiązań)

Wzór iteracyjny w metodzie GS

Przykład. Macierz iteracji w metodzie GS

Algorytm GS

Jakie ma wartości i wektory własne?

Page 28: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

28

Wartości i wektory własne macierzy iteracji M w metodzie Guassa-Seidla (dla laplasjanu w 1D), n=20

00.10.20.30.40.50.60.70.80.9

1

0 2 4 6 8 10 12 14 16 18 20

| l

i |

nr

eigenvalues - GS-Jakobi

GSJakobi

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0 2 4 6 8 10 12 14 16 18 20

nodes

vec1

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0 2 4 6 8 10 12 14 16 18 20

nodes

vec2

-0.2

0

0.2

0.4

0.6

0.8

1

0 2 4 6 8 10 12 14 16 18 20

nodes

vec8

→ wartości własne są nieujemne

→ wektory własne odpowiadające najwyższym wartościom własnym są wolnozmienne (w m. Jakobiego wektory te były szybko- i wolno-zmienne)

→ m. Gaussa-Seidla ma własności wygładzające błąd (cechę tę wykorzystujemy w relaksacji wielosiatkowej)

→ promień spektralny M w metodzie GS jest nieznacznie mniejszy niż w m. Jakobiego, ale dla k=1000 .........

Page 29: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

29

Co oznacza zwrot: „własności wygładzające” w praktyce?

Przykład. Porównanie szybkości tłumienia błędu w metodach GS i Jakobiego w przypadku równania Laplace'a (brak niejednorodności).Generujemy wektor szybko-zmienny (najmniejsza wartość własna macierzy iterującej Jakobiego), które stanowi rozwiązanie początkowe

-0.1

-0.08

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

0.08

0.1

0 50 100 150 200

1-st iteration

JakobiGS

-0.1

-0.08

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

0.08

0.1

0 50 100 150 200

2-nd iteration

JakobiGS

-0.1

-0.08

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

0.08

0.1

0 50 100 150 200

10-th iteration

JakobiGS

→ widać że m. GS bardzo szybko tłumi wysokozmienny błąd

→ M Jakobiego tej własności nie posiada

Page 30: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

30

Tempo zbieżności relaksacji GS możemy kontrolować dodając do równania

parametr zbieżności

Inaczej: mieszamy stare i nowe rozwiązanie

→ w<1 podrelaksacja (obniżamy tempo zbieżności)

→ w=1 zwykła relaksacja

→ w>1 nadrelaksacja (tu powinniśmy uzyskać przyśpieszenie obliczeń)

(dowód zbieżności metody GS dla pokazany na wykładzie z Metod Numerycznych dla układu równań liniowych)

Pytanie: kiedy zatrzymać relaksację?

Page 31: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

31

Kiedy zatrzymać relaksację?

Jakość rozwiązania równania Poissona możemy sprawdzić na dwa sposoby:

1) badając normę euklidesową wektora reszt

2) licząc całkę działania dla pola elektrycznego

→ całka działania osiąga minimum dla rozwiązania dokładnego (zasada wariacyjna Rayleigha-Ritza)

Przykład. Rozwiązujemy metodą relaksacji (Jakobi,GS, nadrelaksacja) równanie Poissona w 1D

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

u(x)

x

u(it=0)=0

u(x)gest/15

Page 32: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

32

0

0.5

1

1.5

2

2.5

3

3.5

0*10 0 1*10 4 2*10 4 3*10 4

||b-A

x||

2

iterations

u(it=0)=0

JakobiGS - w=1.0GS - w=1.5GS - w=1.9

1*10 -12

1*10 -10

1*10 -8

1*10 -6

1*10 -4

1*10 -2

1*10 0

1*10 2

0*10 0 1*10 4 2*10 4 3*10 4

||b-A

x||

2iterations

u(it=0)=0

JakobiGS - w=1.0GS - w=1.5GS - w=1.9

-8*10 -3

-7*10 -3

-6*10 -3

-5*10 -3

-4*10 -3

-3*10 -3

-2*10 -3

-1*10 -3

0*10 0

0*10 0 1*10 4 2*10 4 3*10 4

S

iterations

u(it=0)=0

JakobiGS - w=1.0GS - w=1.5GS - w=1.9

→ m. Jakobiego najwolniejsza

→ nadrelaksacja tym szybsza im większa wartość parametru zbieżności (ale nie jest to regułą – zależy często od WB)

→ co lepsze do warunku zakończenia?: ||r||2 czy całka działania?

Jeśli całka działania osiąga minimum to w kolejnych iteracjach już się nie zmieni

→ to wygodny warunek zatrzymania relaksacji.

Dla normy wektora reszt pojawia się problem, który jest wynikiem dokładności rozwiązania numerycznego i precyzji obliczeń → trudno określić warunek zakończenia relaksacji

Page 33: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

33

Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?Np. stosując:

1) metodę zagęszczania siatki

2) relaksację wielosiatkową

Zagęszczanie siatki – najprostsze.

1) Znajdujemy rozwiązanie na najrzadszej siatce (czerwone węzły, krok na siatce k=4)

stosując wzór relaksacyjny

oraz uśredniając gęstość w komórce otaczającej aktualny węzeł (żółty obszar)

Page 34: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

34

2) Przechodzimy na siatkę o dwukrotnie mniejszym oczku siatki, wartości w nowych węzłach (niebieskie) interpolujemy liniowo wartościami z węzłów sąsiednich

Siatka rzadka: czerwone węzły Siatka gęsta: niebieskie węzły

węzeł środkowy:

Page 35: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

35

3) na rzadszej siatce relaksujemy równanie

4) powtarzamy operacje (2) i (3) na kolejnych gęstszych siatkach

Przykład.

-0.1

-0.08

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

1 10 100 1000

S

iteration

overrelaxation - multigrid

k=16k=8k=4k=2k=1

k=16

10 20 30 40 50 60 70 80 90100110120

x

102030405060708090

100110120

y

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

k=8

0 20 40 60 80 100 120

x

0

20

40

60

80

100

120

y

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

k=4

0 20 40 60 80 100 120 140

x

0

20

40

60

80

100

120

140

y

-0.25-0.2-0.15-0.1-0.0500.050.10.150.20.25

k=2

0 20 40 60 80 100 120 140

x

0

20

40

60

80

100

120

140

y

-0.25-0.2-0.15-0.1-0.0500.050.10.150.20.25

-0.1

-0.05

0

0.05

0.1

0.15

0.2

0.25

0.3

1 10 100 1000 10000

S

iteration

Overrelaxation

w=1.1w=1.2w=1.3w=1.4w=1.5w=1.6w=1.7w=1.8w=1.9

gestosc

0 20 40 60 80 100 120 140

x

0

20

40

60

80

100

120

140

y

-80

-60

-40

-20

0

20

40

60

80

k=1

0 20 40 60 80 100 120 140

x

0

20

40

60

80

100

120

140

y

-0.25-0.2-0.15-0.1-0.0500.050.10.150.20.25

Page 36: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

36

schemat prostego zagęszczania siatki

start

koniec

na każdej siatce iteracja do pełnej zbieżności

ten czynnik spowalnia metodę

Zamiast jednokierunkowego zagęszczania siatki możemy użyć schematu wielosiatkowego (multigrid method)

np. najprostszego dwusiatkowego

tu szukamy rozwiązania

tu szacujemy błąd(wolnozmienny)

na każdej siatce wykonujemy tylkokilka iteracji

Relaksacja wielosiatkowa

Page 37: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

37

Procedura iteracji dwusiatkowej dla równania

1. na siatce (Δx) wykonujemy n1 iteracji, dostajemy:

2. liczymy wektor reszt (Δx):

Uwaga: wektor błędu e(Δx) zawiera składowe wolnozmienne - znajdźmy go na siatce (2dx)

3. rzutujemy wektor reszt na rzadszą siatkę używając (macierzowego) operatora restrykcji

4. teraz znajdujemy przybliżone rozwiązanie dla e(2Δx) tj. eliminujemy wpływ błędu wolnozmiennego

- wykonujemy tylko n2 iteracji

5. Wektor błędu e(2Δx) rzutujemy na siatkę gęstszą używając (macierzowego) operatora prolongacji

6. poprawiamy przybliżone rozwiązanie na siatce (Δx)

Uwaga: wektory x(Δx) oraz e(Δx) stanowią tylko przybliżenia ich dokładnych odpowiedników dlatego procedurę (kroki 1-6) powtarzamy aż do uzyskania zbieżności np. funkcjonału dla pola elektrycznego

Page 38: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

38

Operator restrykcji/prolongacji – jak je skonstruować?

Najpierw zobaczmy co chcemy uzyskać

restrykcja:

zostawiamy tylko węzły niebieskie

prolongacja:

generujemy węzły czerwone x3 , x

5 i x

7

(węzły brzegowe x1 i x

9 – bez zmian

np. ze względu na WB Dirichleta)

Przykład dla siatki 1D

Page 39: Równania różniczkowe cząstkowe (RRCz)home.agh.edu.pl/~chwiej/imn/imn1/18/wyk/5_rownanie_poissona.pdf · Jak jeszcze można przyśpieszyć (zoptymalizować) proces relaksacji?

39

W relaksacji wielosiatkowej możmy stosować różne schematy

4-siatkowa relaksacja typu V-cycle

Pełna relaksacja wielosiatkowa

- szukamy rozwiązania na siatce (Δx*k) [1]- rozwiązania rzutujemy je na siatkę (Δx*k/2) [2] i wykonujemy N(k/2) iteracji- szukamy błedu na siatce (Δx*k) [3]- poprawiamy rozwiązanie na siatce (Δx*k/2) [4]- rzutujemy rozwiązanie na siatkę (Δx*k/4) [5] i wykonujemy N(k/4) iteracji- szukamy błędu na siatce (Δx*k/2) [6] oraz (Δx*k) [7]- poprawiamy błąd na siatce (Δx*k/2) [8] oraz rozwiązanie na siatce (Δx*k/4) [9]- rzutujemy rozwiązanie na siatkę (Δx*k/8) [10] i relaksujemy je N(k/8) razy- wykonujemy jeden do kilku pełnych V-cykli