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).