Adaptacyjne siatki numeryczne

Transkrypt

Adaptacyjne siatki numeryczne
Adaptacyjne siatki numeryczne
Grzegorz Olszanowski, Rafał Ogrodowczyk
Katedra Informatyki,
Państwowa Wyższa Szkoła Zawodowa w Chełmie,
22-100 Chełm, ul. Pocztowa 54
Streszczenie
W pracy tej został przestawiona idea adaptacyjnych siatek numerycznych z uwzględnieniem
algorytmów zagęszczenia/rozrzedzenia. Zamieszczone są również wyniki testów implementacji
AMR w pakiecie FLASH dla przykładu arkady w koronie słonecznej.
Abstract
In this papier we describe the idea of adaptive mesh refinement. We present numerical test
illustrating refinement/ derefinement of mesh.
1. Wstęp
Problemy ówczesnej nauki wymagają modelowania złożonych zjawisk fizycznych,
a jedynie proste zagadnienia o nieskomplikowanych właściwościach dają się rozwiązać
metodami analitycznymi. Do bardziej skomplikowanych przypadków używa się symulacji
komputerowych. Ich wykonanie z żądaną dokładnością implikuje zwiększeniem czasu
symulacji i złożoności obliczeniowej. Obecnie znane są metody powalające na znaczą
redukcję wymagań modelu numerycznego badanego problemu. Jedną z nich są adaptacyjne
siatki numeryczne (Adaptive Mesh Refinement), zapewniające zniwelowanie błędów
numerycznych w obszarach o dużej zmienności analizowanych wielkości. Doskonale
nadające się one do modelowania zagadnień związanych z fizyką Słońca, które to ze względu
na rozmiary rzeczywiste i złożoność zjawisk należy do jednych z najbardziej fascynujących
niekompletnie opisanych przez naukę.
Tworząc model zjawiska fizycznego definiujemy dyskretny obszar symulacji – siatkę
numeryczną. W nieadaptacyjnych siatkach punkty obliczeniowe ustalane są przed
rozpoczęciem obliczeń i ich położenia nie zmieniają się w czasie, mimo, iż wymagałaby tego
dokładność obliczeń. AMR umożliwia dokonywanie dynamicznego zagęszczenia/rozrzedzenia siatki numerycznej w zależności od zmian badanych wielkości fizycznych.
W punkcie drugim opisujemy historię i ideę adaptacyjnych siatek numerycznych
z uwzględnieniem kryterium zagęszczania. Punkt trzeci stanowi krótki opis modelu
numerycznego, który posłużył nam do testów. Wyniki testu i konkluzje zawarte są
w punktach czwartym i piątym.
2. Adaptive Mesh Refinement (AMR)
Historia adaptacyjnych siatek numerycznych rozpoczęła się w 1984 roku, kiedy to
M. Berger i J. Oliver przedstawili pracę dotyczącą użycia siatki o strukturze hierarchicznej do
rozwiązywania hiperbolicznych cząstkowych równań różniczkowych[1]. Siatki te zwane
są AMR.
Obecnie idea adaptacyjnych siatek numerycznych jest wykorzystywana w wielu
obszarach działalności naukowej, przytaczając tu chociażby niektóre z nich: opis dynamiki
gazów, rozwiązywanie równań Poissona, Helmholtz , przypadek ściśliwego i nieściśliwego
przepływu opisywanego zależnością Navier-Stokes’a czy symulacje numeryczne
rozchodzenia się fal w plazmie słonecznej. Została ona zaimplementowana w wielu pakietach
wspomagających modelowanie numeryczne takich jak CLAWPACK[2] czy FLASH Code[3].
2.1. Implementacja AMR we FLASH Code
W naszych badaniach naukowych wykorzystujemy moduł PARAMESH[4], który został
zaimplementowany we FLASH Code. Zawiera on zestaw procedur umożliwiających
zagęszczenie/rozrzedzenie siatek numerycznych oraz koordynację tego procesu w systemach
równoległych. Algorytmy wykorzystane w procedurach zostały zaadoptowane z prac
P. Löhnera [5] i bazują one na związku (1) warunkującym proces dynamicznych zmian
wygenerowanej siatki początkowej.
Kryterium zagęszczenia siatki numerycznej (Ei) zostało zdefiniowane jako druga
pochodna znormalizowana po średnim gradiencie wartości zmiennej testowej
w rozpatrywanym bloku. W przypadku jednowymiarowej siatki Ei jest opisywane:
u i +1 - 2u i + u i -1
Ei =
,
(1)
u i +1 - u i + u i - u i -1 + e u i +1 - 2 u i + u i -1
[
]
gdzie ui jest wartością zmiennej testową w i–tej komórce. Ostatni człon mianownika
zapobiega uwzględnianiu zmian ui, których wartość nie przekracza stałej ε określanej w pliku
konfiguracyjnym problemu. Z rozważań [3] analitycznych wynika, że wielkość Ei opisana
równaniem (1) jest dostatecznie czuła w wykrywaniu wszelkich nieciągłości i zmian kształtu
funkcji opisującej wielkość ui.
Uogólniając zależność (1) do trzech wymiarów otrzymujemy:
Ei1i2i3
ì
ï
ï
ï
=í
ï éæ ¶u
ï å êç
ïî pq êëçè ¶x p
2
ü
æ ¶ u
ö
ï
ç
Dx p Dx q ÷
å
ï
ç
÷
pq è ¶x p ¶x q
ï
ø
,
2 ý
2
ù
ö
ï
¶u
÷ Dx + e ¶ u Dx Dx ú ï
+
p
p
q
¶x p i -1 / 2 ÷
¶x p ¶x q
úû ï
ø
þ
2
i +1 / 2
2
(2)
gdzie sumowanie odbywa się po wszystkich współrzędnych kierunkowych, a pochodna
cząstkowa wyliczana jest z uwzględnieniem wartości zmiennej ui w komórce oznaczonej
indeksami i1 i2 i3.
W zestawie procedur PARAMESH zostały wykorzystane schematy zagęszczenia
siatki numerycznej opisywane w pracach [1],[6].W podejściu tym jako podstawową jednostką
siatki uważamy blok, rozumiany jako zbiór komórek, rozważanych w geometrii
kartezjańskiej. Każda komórka opisywana jest przez zestaw parametrów: numer procesora, na
którym wykonywane są związane z nią obliczenia, numer bloku w skład, którego wchodzi
oraz współrzędne określające położenie jednostki. Ze względu na hierarchiczną strukturę
adaptacyjnych siatek fizyczne rozmiary bloków są zróżnicowane (Rys 1). Utworzeniem
bloków potomnych kierują dwie podstawowe zasady: rozmiary nowotworzonego bloku
stanowią połowę przestrzennych wymiarów bloku rodzicielskiego w każdym z kierunków
oraz wypełniają one całkowicie objętość bloku rodzicielskiego nie nakładając się na siebie. W
ten sposób możemy otrzymać w przypadku d – wymiarów od 0 do 2d bloków potomnych.
Zgodnie z powyższym, w dwuwymiarowym przypadku, w każdym etapie zagęszczenia
możemy otrzymać od 0 do 4 bloków z każdego bloku rodzicielskiego, co zostało ilustrowane
na Rys 1.
Rys.1 Schemat hierarchicznej struktury drzewiastej adaptacyjnej siatki numerycznej wykorzystanej w module
PARAMESH pakietu FLASH z uwzględnieniem podział na bloki i poziomy zagęszczenia.
Liczbę komórek, we wszystkich rozpatrywanych kierunkach wchodzących w skład
bloku, definiuje użytkownik, przypisując wartości początkowe parametrom w pliku
konfiguracyjnym problemu. Dodatkowo każdy z bloków otoczony jest przez komórki
osłaniające1 zawierające informacje o wartości zmiennej testowej ui w subjednostkch
sąsiadujących bloków lub warunkach brzegowych rozpatrywanego procesu (rys. 2). Jeśli
komórki osłaniające znajdują się na tym samy poziomie zagęszczenia2, co blok sąsiedni ich
wartości są przepisywane z komórek przyległego bloku, gdy ich poziomy są różne ich
wartość jest interpolowana.
1
2
ang. guard cells
ang level of refinement
Rys 2. Schemat bloku adaptacyjnej siatki numerycznej z komórkami osłaniającymi. Szarym kolorem oznaczono
komórki bloku, a białym komórki osłaniające.
Zbiór bloków składających się na obszar symulacji dzielony jest pomiędzy
autonomiczne jednostki obliczeniowe wchodzące w skład równoległego systemu
komputerowego, przy czym pojedynczy blok nie może zostać podzielony. Jednostki te
podejmują niezależne decyzje o zwiększeniu/zmniejszeniu podległej im liczby bloków
zgodnie z zależnością (2). Zagęszczenie prowadzi do utworzenia od 0 do 2d bloków
potomnych, podczas gdy rozrzedzenie pociąga za sobą destrukcje bloku wraz z jego
rodzeństwem. Powyższe zmiany, często tymczasowe, umieszczane są w pamięci podręcznej,
po ich akceptacji tak utworzona bloki rozmieszczane są w strukturze przestrzennej badanego
problemu zgodnie z algorytmem wyznaczania krzywej Morton’a [7].
3. Model numeryczny
W celu uwidocznienia właściwości adaptacyjnych siatek numerycznych
przeprowadziliśmy test, w którym symulowaliśmy procesy falowe w koronie słonecznej.
W naszych rozważaniach badaliśmy przepływ plazmy opisany zestawem równań
magnetohydrodynamicznych (MHD)[8]:
¶r
+ Ñ × ( rV ) = 0,
(3)
¶t
¶V
1
r
+ r (V × Ñ )V = -Ñp + (Ñ ´ B ) ´ B,
(4)
¶t
m
¶p
+ Ñ × ( pV ) = -(g - 1) pÑ × V ,
(5)
¶t
¶B
= Ñ ´ (V ´ B ),
(6)
¶t
Ñ × B = 0,
(7)
gdzie ρ – gęstość, V jest wektorem prędkości plazmy, a p oznacza ciśnienie plazmy
W szczególności analizowaliśmy dwuwymiarowy model arkady, opisany w pracy [9],
którego stan równowagi opisany był zależnościami:
æxö
æ yö
æxö
æ yö
æ yö
B x = B0 cosç ÷ expç - ÷ , B y = - B0 sin ç ÷ expç - ÷ , r ( y ) = r 0 expç - ÷ .
(8)
èLø
èLø
è Lø
è Lø
è Lø
B0 oznacza wartość indukcji pola magnetycznego u podstawy arkady (y=0), Λ parametr
określający wysokość arkady, zaś ρ0 jest wartością początkową gęstości. Powyższy stan
równowagi został zaburzony impulsami w ciśnieniu i gęstości, które odpowiednio opisują
związki:
2
2
p( x, y , t = 0 ) = A p e -[( x - x0 ) / w ] e -[( y - y0 ) / w ] ,
(9)
r (x, y , t = 0 ) = Ar e -[( x- x0 ) / w ] e -[( y - y0 ) / w ] ,
2
2
(10)
gdzie Ap i Aρ oznaczają odpowiednie amplitudy impulsu, x0 jest miejscem wygenerowania
impulsu, zaś w jest szerokością impulsu.
4. Rezultaty
W powyższym zagadnieniu zmienną testową ui, jest gęstość ρ. Przeprowadzając
symulację numeryczną we FLASH-u otrzymaliśmy następujące wyniki, które przedstawia
poniższa tabela Tab. 1.
a)
b)
c)
d)
e)
Tab. 1 Diagramy przedstawiające kolejne etapy siatki numerycznej
Na poszczególnych diagramach w Tab1 przedstawione są kolejne etapy zagęszczanie siatki
numerycznej. W obszarach o dużym gradiencie gęstości ρ siatka ulega zagęszczeniu, zaś w
miejscach o zbliżonych wartościach gęstości pomiędzy sąsiednimi blokami ulega
rozrzedzeniu.
5. Podsumowanie
Adaptacyjne siatki numeryczne są narzędziem w znacznym stopniu poszerzającym
obszary badawcze. Ich zastosowanie umożliwia skrócenie czasu symulacji numerycznych,
zwiększenie dokładności obliczeń w obszarach o dużym gradiencie rozpatrywanych
wielkości, poszerzeniu obszaru symulacji, co zbliża badania numeryczne do rzeczywistych
zjawisk fizycznych obserwowanych w przyrodzie.
AMR doczekał się wielu implementacji w pakietach oprogramowania naukowego.
Koncepcja ta została zaadoptowana niemal do wszystkich subdziedzin fizyki.
Przeprowadzone testy modelujące zjawiska w koronie słonecznej potwierdziły opisane
w punktach 1-2 własności AMR. Stanowi to podstawę do dalszych badań i rozwoju tej
tematyki
"The software used in this work was in part developed by the DOE-supported ASCI/Alliance
Center for Astrophysical Thermonuclear Flashes at the University of Chicago."
Literatura
[1] M. Berger and J. Oliger. Adaptive mesh refinement for hyperbolic partial differential
equations. Journal of Computational Physics, 53:484--512, 1984.
[2] http://www.amath.washington.edu/~claw/
[3] http://flash.uchicago.edu/
[4] Peter MacNeice, Kevin M. Olson, Clark Mobarry, Rosalinda deFainchtein and Charles
Packer, "PARAMESH : A parallel adaptive mesh refinement community toolkit.",
Computer Physics Communications, vol. 126, p.330-354, (2000).
[5] R. Löhner - An Adaptive Finite Element Scheme for Transient Problems in CFD;
Comp.Meth.Appl.Mech.Eng. 61, 323-338 (1987).
[6] M. Berger and P. Colella. Local adaptive mesh refinement for shock hydrodynamics.
Journal of Computational Physics, 82(1):64--84, May 1989. Lawrence Livermore
Laboratory Report No. UCRL-97196.
[7] Warren M. S., Salmon J. K., Astrophysical N-body simulations using hierarchical tree
data structures, Proceedings of the 1992 ACM/IEEE conference on Supercomputing
[8] Murawski K., Analytical and numerical methods for wave propagation in fluids,
World Scientific, Singapore (2002)
[9] R. Oliver, K. Murawski, J. L. Ballester, Numerical simulations of impulsively
generated MHD waves in a potential coronal arcade, Astron. Astrophys. 330, 726
(1998).

Podobne dokumenty