Samoadaptacyjne siatki numeryczne
|
|
- Kazimierz Kalinowski
- 8 lat temu
- Przeglądów:
Transkrypt
1 Uniwersytet Marii Curie Skłodowskiej Wydział Matematyki, Fizyki i Informatyki Samoadaptacyjne siatki numeryczne Marcin Fatyga Praca magisterska napisana pod kierunkiem Prof. dr hab. Krzysztofa Murawskiego Lublin 2005
2 Spis treści Wstęp 3 Cel i zakres pracy 5 1 Samoadaptacyjne siatki numeryczne Dlaczego siatki samoadaptacyjne? Metoda Algorytm metody Postęp w czasie Zmiana hierarchii siatek w czasie Detekcja obszarów wymagających zagęszczenia Grupowanie komórek Implementacje AMRCLAW Metoda fal Problem Riemanna Metoda pierwszego rzędu dokładności Poprawka drugiego rzędu Struktura programu
3 2.2.1 Program główny i plik wejściowy Warunki początkowe Problem Riemanna Warunki brzegowe Zastosowania i testy Zastosowania Adwekcja Akustyka Hydrodynamika Pętle koronalne Testy Czas wykonywania obliczeń Dokładność obliczeń Podsumowanie 60 Bibliografia 61 2
4 Wtęp Fizyka jest nauką doświadczalną. Każda teoria fizyczna musi być zweryfikowana przez eksperyment. Niestety nie każdy eksperyment można łatwo przeprowadzić. W takich sytuacjach nieocenioną pomocą stają się symulacje numeryczne. Większość symulacji numerycznych wymaga znacznej ilości zasobów komputerowych, pamięci operacyjnej oraz czasu procesora, ponieważ symulacje te są realizowane za pomocą siatek numerycznych o olbrzymich rozdzielczościach. Jednak w wielu wypadkach znaczna część tych zasobów jest marnowana, ponieważ w obrębie domeny obliczeniowej istnieją obszary, które nie wymagają siatek o maksymalnych rozdzielczościach. Samoadaptacyjne siatki numeryczne (ang. Adaptive Mesh Refinement) pozwalają na rozwiązanie tego problemu. Stosuje się w niech nie jedną, ale całą hierarchię siatek o różnych rozmiarach komórek numerycznych. Gęstych siatek używa się tylko w tych obszarach, w których jest to niezbędne, podczas gdy pozostałe obszary, są obrazowane na odpowiednio rzadszych siatkach. Metoda samoadaptacyjnych siatek numerycznych jest rozwijana od ponad 20 lat 1. W ciągu tego czasu wymyślono wiele jej odmian. Powstały wersje, które służą do rozwiązywania układów równań różniczkowych hiperbo- 1 Pierwszymi pracami na ten temat były [1] i [2] 3
5 licznych, parabolicznych i eliptycznych. Samoadaptacyjne siatki numeryczne stosuje się obecnie z dużym powodzeniem w symulacjach zjawisk z wielu dziedzin fizyki, między innymi: dynamiki płynów, astrofizyki, elektromagnetyzmu, termodynamiki, oraz w wielu innych. Istnieje wiele elastycznych implementacji tej metody, w różnych językach programowania. Dzięki temu można łatwo wykorzystać siatki samoadaptacyjne do własnych potrzeb. 4
6 Cel i zakres pracy Niniejsza praca prezentuje metodę samoadaptacyjnych siatek numerycznych, zastosowaną do numerycznego rozwiązywania układów równań różniczkowych. W rozdziale pierwszym przedstawiłem algorytm samoadaptacyjnych siatek numerycznych opracowany przez M. Berger i jej współpracowników [2]. Opisałem główne kroki algorytmu. Rozdział drugi zawiera opis jednej z wielu implementacji tego algorytmu, pakiet AMRCLAW. Pakiet ten został napisany przez R.J. LeVeque a i M. Berger [19]. Opisałem również metodę fal, wykorzystywaną przez AMRCLAW do rozwiązywania układów równań różniczkowych. W trzecim rozdziale przedstawiłem wyniki przeprowadzonych przeze mnie symulacji numerycznych z wykorzystaniem siatek samoadaptacyjnych. Zaprezentowałem również wyniki przeprowadzonych przeze mnie testów, które miały na celu sprawdzenie efektywności metody samoadaptacyjnych siatek numerycznych. 5
7 Rozdział 1 Samoadaptacyjne siatki numeryczne 1.1 Dlaczego siatki samoadaptacyjne? Cząstkowe równania różniczkowe na ogół nie mogą być rozwiązane analitycznie. Dlatego rozwiązuje się je przy użyciu komputerów, z wykorzystaniem metod numerycznych 1. W tym celu wprowadzamy siatki numeryczne, czyli pewien skończony zbior punktów, za pomocą którego będziemy reprezentować przestrzeń fizyczną. W najprostszym przypadku siatkę numeryczną możemy wybrać w postaci sieci kubicznej Γ Z D. Wtedy każdy węzeł sieci i Γ reprezentuje element Ω = [ x 0 +( i 1 u)h, x 2 0+( i+ 1 u)h] D-wymiarowej 2 przestrzeni Ω, gdzie x 0 R D jest pewnym ustalonym punktem, h jest odległością między sąsiednimi węzłami siatki, a u Z D jest wektorem, którego wszystkie składowe są równe 1. 1 Z wyjątkiem nielicznych prostych równań, które mogą być rozwiązane analitycznie przy użyciu programów symbolicznych. 6
8 Widać stąd, że odległość między-węzłowa h determinuje nam błąd, jaki popełniamy przybliżając element przestrzeni Ω pojedynczym punktem. Im mniejsze będą rozmiary pojedynczej komórki numerycznej, czyli mały parametr h, tym dokładniejsze będzie nasze rozwiązanie. Z drugiej strony, jeżeli wybierzemy małe h, czyli zadamy małe odległości między węzłami siatki numerycznej, wtedy obszar obliczeń będzie reprezentowany przez dużą liczbę punktów. Oznacza to, że będziemy potrzebowali więcej zasobów komputera (pamięci operacyjnej i czasu procesora), aby wykonać obliczenia. Dlatego wybierając siatkę numeryczną należy odpowiednio dobrać parametr h. Wybór ten jest przeważnie bardzo trudny i wymaga wielu prób, chyba że zastosujemy siatkę samoadaptacyjną. Siatka ta sama adaptuje się do problemu w taki sposób, aby każdy element rozwiązania reprezentowany był na jak najrzadszej siatce, ale jednocześnie dokładność rozwiązania była nie gorsza niż zadana. Powszechnie stosuje się siatki jednorodne, czyli takie dla których odległości między węzłowe dla danego kierunku są stałe. Siatki te przeważnie dobrze spełniają swoje zadanie. Jednak nie jest to rozwiązanie optymalne. Istnieją problemy, których rozwiązanie trudniej jest przybliżyć (tzn. trzeba użyć gęstszej siatki) w pewnych obszarach (np. z powodu nieciągłości, dużych gradientów lub szoków) niż w innych. Można oczywiście w takich przypadkach wybrać taką siatkę, aby błąd popełniany przy reprezentacji tych trudnych obszarów był akceptowalny. Jednak takie rozwiązanie jest kosztowne, jako że marnuje zasoby komputera na reprezentację łatwych obszarów przy użyciu gęstej siatki. Dla obszarów tych można by użyć siatki rzadszej i to bez straty dokładności obliczeń. Poza tym dla problemów zależnych od czasu trudno 7
9 jest przewidzieć, czy zadana na początku siatka zapewni akceptowalne przybliżenie rozwiązania w późniejszych etapach obliczeń. W metodzie samoadaptacyjnych siatek numerycznych (ang. adaptive mesh refinement) zaczynamy obliczenia od zadanej grubej siatki. W trakcie ewolucji rozwiązania, wyszukujemy obszary, które wymagają większej rozdzielczości. Obszary te identyfikowane są na podstawie pewnej funkcji, lokalnie charakteryzującej dokładność rozwiązania, tzw. lokalnej funkcji błędu. Tam gdzie błąd przekracza dopuszczalny poziom, nakładamy dodatkowe gęstsze siatki. Coraz gęstsze siatki dodawane są rekursywnie, aż do osiągnięcia zadanego, maksymalnego poziomu zagęszczenia, albo aż wartość funkcji błędu będzie akceptowalna (Rys. 1.1). 1.2 Metoda Istnieje kilka algorytmów, które używają samoadaptacyjnych siatek numerycznych. W tym rozdziale przedstawię algorytm opisany w pracy [1]. Algorytm ten został pierwotnie opracowany do rozwiązywania układu równań Eulera, później jednak został uogólniony na dowolny układ równań hiperbolicznych. Podstawowym założeniem tego algorytmu jest zbudowanie takiej struktury siatek, aby osiągnąć zadaną dokładność obliczeń przy minimalnym nakładzie pracy. W tym celu dla każdej komórki obliczana jest lokalna funkcja błędu. Tam gdzie popełniany błąd przekracza zadany próg, tworzone są dodatkowe, gęstsze siatki. W ten sposób siatka zagęszcza się tylko tam, gdzie jest to potrzebne. Co więcej postępowanie to jest powtarzane rekurencyjnie, tzn. każda powstała siatka może zawierać siatki jeszcze gęstsze. Algorytm two- 8
10 Rysunek 1.1: Tylko siatka bazowa pokrywa cały obszar. Pozostałe siatki dodawane są rekurencyjnie tylko tam, gdzie jest to potrzebne. Każda siatka leży w obrębie jakiejś rzadszej siatki. rzy hierarchię siatek, która może być przedstawiona jako drzewo (Rys. 1.2). Drzewo siatek o różnych rozdzielczościach zastępuje tu pojedynczą, klasyczną siatkę numeryczną. Każda siatka (Rys. 1.2a) odpowiada węzłowi drzewa (Rys. 1.2b). Bazowa siatka stanowi korzeń drzewa. Każda siatka, z wyjątkiem siatki bazowej, jest zagnieżdżona w jakiejś rzadszej siatce. Wszystkie siatki leżące na tym samym poziomie w hierarchii mają tą samą rozdzielczość. Rozdzielczości dwóch sąsiednich poziomów różnią się o pewną liczbę naturalną zwaną współczynnikiem zagęszczenia r l. Oznaczmy odległości międzywęzłowe siatki i krok czasowy na poziomie l odpowiednio przez h i l i t i l, gdzie i = 1,..., D, a D jest wymiarem prze- 9
11 Rysunek 1.2: Siatki samoadaptacyjne (a) tworzą hierarchię drzewiastą (b). Korzeniem drzewa jest siatka bazowa S 0 1. S l i oznacza i-tą siatkę z poziomu l. strzeni. Wtedy dla każdego poziomu l = 0,..., l max spełniony jest warunek: h l h l+1 = t l t l+1 = r l. (1.1) Jak widać z powyższego wzoru wraz z zagęszczaniem siatki dokonujemy również odpowiedniego zagęszczenia kroku czasowego. Wartość współczynnika zagęszczenia r l wynosi zwykle od 2 do Algorytm metody Algorytm działania programu, w którym stosują się metodę samoadaptacyjnych siatek numerycznych, przedstawiony jest na poniższym wydruku. Wydruk 1.1: BEGIN t := 0; 10
12 n := K; WHILE t < t_max DO BEGIN Integrate(0); IF n = 0 THEN BEGIN Adaptuj_sie(); n = K; END n = n - 1; t = t + dt; END END Program działa w pętli, aż osiągnięty zostanie końcowy czas symulacji t_max. Procedura Integrate() wykonuje jeden krok w czasie o dt. Procedura ta będzie omówiona szerzej w kolejnym paragrafie. Co ustaloną liczbę kroków K wywoływana jest procedura Adaptuj_sie, której zadaniem jest dostosowanie hierarchii siatek do aktualnego kształtu rozwiązania. To właśnie ta procedura powoduje, że siatka zagęszcza się tylko tam, gdzie jest to potrzebne Postęp w czasie Procedura Integrate() wyznacza postać rozwiązania dla chwili czasu późniejszej o t l, czyli o wartość kroku czasowego dla siatki na poziomie l. Modyfikuje ona wartości siatek na wszystkich poziomach powyżej l. Jest to procedura rekursywna. Możemy ją zapisać w postaci następującego pseudokodu: Wydruk 1.2: PROCEDURE INTEGRATE(l: level) BEGIN IF l==0 THEN L_Kroków = 1; 11
13 ELSE L_Kroków = r_l; REPEAT L_Kroków TIMES BEGIN Advance(l); IF poziom l+1 istnieje THEN BEGIN Ustal_warunki_brzegowe(l+1); INTEGRATE(l+1); Rzutuj_na_niższy_poziom(l); END END END W powyższym kodzie r_l jest współczynnikiem zagęszczenia zdefiniowanym równaniem (1.1). Jeżeli siatka na poziomie l + 1 zagęszczana jest r l+1 razy względem siatek z poziomu l, to również r l+1 razy zagęszczany jest krok czasowy t l+1. Dlatego aby rozwiązanie osiągnęło na obu poziomach tą samą chwilę czasu, na poziomie l + 1 musi być wykonanych r l kroków w czasie. Rys. 1.3a ilu- Rysunek 1.3: Kolejność wykonywania kroków w czasie (a) dla przykładowej hierarchi siatek (b). Na gęstszych siatkach zagęszczany jest również krok czasowy. S l i oznacza i-tą siatkę z poziomu l. 12
14 struje wykonanie procedury Integrate() na przykładowej hierarchii siatek przedstawionej na Rys. 1.3b. Po wykonaniu procedury rozwiązania uzyskane na każdej z siatek odpowiadają tej samej chwili czasu równej t 0. Wyjaśnienia wymagają jeszcze dwa elementy algorytmu: Ustal_warunki_brzegowe(), Rzutuj_na_niższy_poziom(). Procedury te są wywoływane w podprogramie INTEGRATE(). Zostaną one omówione w następnych paragrafach. Warunki brzegowe. Metody numeryczne służące do rozwiązywania cząstkowych równań różniczkowych podają przepis na obliczenie wartości szukanej funkcji q n i na podstawie jej wartości q n i 1 i q n i+1 w sąsiednich komórkach oraz czasami w komórkach dalszych. Ponieważ obliczenia zawsze prowadzimy na jakimś ograniczonym obszarze, nie można takich metod stosować na brzegach, gdzie nie mamy potrzebnych danych. Można oczywiście, na brzegach odpowiednio zmodyfikować metodę numeryczną, ale prowadzi to do komplikacji obliczeń. Aby rozwiązać ten problem stosuje się metodę komórek duchów (ang. ghost cells). Siatkę, na której prowadzimy obliczenia, otacza się buforem dodatkowych komórek (Rys. 1.4). Ich wartości ustala się przed każdą iteracją na danej siatce. W ten sposób możemy stosować naszą metodę numeryczną w nie zmodyfikowanej formie dla całego obszaru obliczeń. Dla komórek leżących przy brzegu obszaru odpowiednie wartości zostaną wzięte z komórek duchów. Pozostaje jeszcze problem, jak ustalać wartości komórek duchów. W metodzie samoadaptacyjnych siatek numerycznych istnieją trzy 13
15 Rysunek 1.4: Implementacja warunków brzegowych. możliwości (Rys. 1.5): przez interpolację wartości komórek poziomu niższego (Rys. 1.5a), przez zwykłe kopiowanie wartości z komórek innej siatki leżącej na tym samym poziomie (Rys. 1.5b), na podstawie fizycznych warunków brzegowych (Rys. 1.5c). Bardzo często komórki duchy leżą w obszarze, który pokryty jest grubszą siatką (Rys. 1.5a). Wtedy wartość takiej komórki może być ustalona przez liniową interpolacją wartości komórek grubszej siatki. Oczywiście można tu również stosować interpolację wyższych rzędów. Najlepsza sytuacja jest wtedy, gdy dwie siatki leżące na tym samym poziomi hierarchii, przylegają do siebie (Rys. 1.5b). Wtedy warunki brzegowe 14
16 Rysunek 1.5: Źródła wartości dla komórek duchów : grubsza siatka (a), siatka sąsiednia (b), fizyczne warunki brzegowe (c). dla każdej z tych siatek można ustalić przez zwykłe kopiowanie wartości komórek z przyległej siatki do odpowiednich komórek obszaru buforowego. Pozostaje jeszcze przypadek, gdy komórka duch leży poza obszarem obliczeń (Rys. 1.5c). Wartości komórek z obszaru buforowego określa się wtedy na podstawie, ustalonych dla całego problemu numerycznego, fizycznych warunków brzegowych. Zależność poziomów hierarchii. Dokładność rozwiązania otrzymanego na gęstszej siatce jest lepsza niż rozwiązania otrzymanego na leżącej pod spodem siatce zgrubnej. Dlatego po każdym kroku wyniki z siatki na poziomie l są rzutowane do leżącej bezpośrednio pod nią siatki na poziomie l 1. 15
17 Rzutowanie może być zrealizowane na kilka sposobów, w zależności od tego jakiej wielkości fizycznej dotyczy: przez sumowanie, dla wielkości addytywnych (np. masy), przez uśrednianie, dla gęstości, ciśnienia, itp. Rysunek 1.6: Rzutowanie wartości komórek. Rzutowanie polega na zastąpieniu wartości funkcji w komórce przez sumę (lub średnią) wartości w tych komórkach gęstszej siatki, które leżą nad nią (Rys. 1.6). To właśnie tym zajmuje się procedura Rzutuj_na_niższy_poziom() Zmiana hierarchii siatek w czasie W miarę jak rozwiązanie ewoluuje w czasie, może się okazać, że aktualna hierarchia siatek nie jest odpowiednia do właściwego reprezentowania obszaru 16
18 obliczeń. Dlatego siatka musi stale dopasowywać się do bieżącej postaci rozwiązania. Za to dopasowywanie odpowiedzialna jest procedura Adaptuj_się. Poniżej przedstawiona jest ta procedura. Wydruk 1.3: PROCEDURA Adaptuj_się(level) level = level_max(t); WHILE level >= 0 DO Wykryj_obszary_do_zagęszczenia(level); IF Istnieje poziom level+1 THEN BEGIN Dodaj_wykryte_obszary_do_poziomu(level+1); Zachowaj_Wartości_z_poziomu(level+1); Usuń_poziom(level+1); END level = level-1; END level = 0; WHILE level <= levelmax(t) DO BEGIN Grupuj(level); Inicjuj(level); END END Algorytm startuje od siatki bazowej. Najpierw na podstawie pewnych kryteriów, które omówimy w następnym paragrafie, wybierane są te obszary siatki, które wymagają zagęszczenia. Jeżeli któraś z komórek zostanie wybrana, to na sąsiednim niższym poziomie zaznaczana jest też komórka leżąca pod nią. Postępujemy tak, żeby zapewnić prawidłowe zagnieżdżenie siatek, tzn. aby siatka z poziomu k leżała całkowicie w obrębie jakiejś siatki z poziomu k 1. W następnym kroku zaznaczone komórki są grupowane w prostokątne (lub prostopadłościenne w trzech wymiarach) regiony przy użyciu procedury Grupuj. Z tak powstałych regionów tworzone są następnie nowe gęstsze siatki. Procedura Inicjuj() ustala następnie wartości funkcji w węzłach no- 17
19 wej siatki. Nowa siatka z poziomu l jest inicjowana przez liniową interpolację wartości funkcji z siatki z poziomu l Detekcja obszarów wymagających zagęszczenia Jak wspomniano wcześniej hierarchia siatek może się zmieniać podczas ewolucji rozwiązania. Najczęściej zmiany tej dokonuje się co stały odstęp czasu, np. co K kroków czasowych wykonywanych na siatce bazowej. To właśnie procedura detekcji obszarów wymagających zagęszczenia jest najważniejszym elementem algorytmu AMR. Ten element algorytmu wskazuje te obszary siatki, które wymagają zagęszczenia. Kluczową sprawą jest znalezienie efektywnej a jednocześnie prostej metody, tak aby związane z nią obliczenia nie zajmowały zbyt dużo czasu. Istnieje kilka takich metod: metoda gradientów, metoda Richardsona, metody oparte na warunkach fizycznych. Pierwsze dwie wykorzystują tzw. lokalną funkcję błędu. Funkcja ta opisuje błąd, jakim obarczona jest wartość rozwiązania w danej komórce numerycznej. W kolejnych paragrafach krótko przedstawię te metody. Metoda Gradientów. W metodzie tej zakładamy, że lokalna funkcja błędu jest proporcjonalna do gradientu rozwiązania. Jeżeli w którejś z komórek wartość gradientu przekracza pewien założony próg, wtedy ta komórka jest 18
20 zaznaczana. Gradient obliczany jest w uproszczony sposób, według następujących wzorów (tu, dla dwóch wymiarów): g i = q(i + 1, j, m) q(i 1, j, m), g j = q(i, j + 1, m) q(i, j 1, m), gdzie q(i, j, m) jest m-tą składową rozwiązania w komórce (i, j). Komórka jest wybierana do zagęszczenia, jeżeli max(g i, g j ) przekracza ustalony próg. Metoda Richardsona. W pracy [1] autorzy zaproponowali, aby do detekcji komórek, które wymagają zagęszczenia, użyć metody wykorzystującej ekstrapolację Richardsona. W metodzie tej dla każdej komórki szacuje się błąd, jaki popełniamy używając bieżącej siatki. Komórki, w których błąd przekroczy akceptowalny próg, są zaznaczane. Rozważmy ewolucję pewnej funkcji q(x, t). Niech operator różnicowy L h przesuwa funkcję u(x, t) w czasie o t, na siatce o odległościach między węzłami h. Ewolucję funkcji q(x, t) możemy wtedy zapisać w postaci: q(x, t + t) = L x q(x, t) + ε( x, t), (1.2) gdzie q(x, t + t) jest rozwiązaniem dokładnym, a ε( x, t) jest lokalną funkcją błędu. Jeżeli wykonamy dwa kroki w czasie, otrzymamy: q(x, t + 2 t) = L 2 xq(x, t) + 2ε( x, t). (1.3) Możemy też zrobić to samo stosując operator różnicowy z przedziałem czasowym 2 t i przestrzennym 2 x. Otrzymamy wtedy: q(x, t + 2 t) = L 2 x q(x, t) + ε(2 x, 2 t). (1.4) 19
21 Z teorii ekstrapolacji Richardsona (stąd nazwa metody) wynika, że funkcja ε jest funkcją jednorodną rzędu n (n 2) 2. Dlatego odejmując stronami dwa ostatnie równania otrzymamy: ε( x, t) = L2 xq(x, t) L 2 x q(x, t). (1.5) 2 n 2 Takie oszacowanie błędu może być łatwo zaimplementowane na każdym poziomie hierarchii siatek. Wystarczy tylko utworzyć na bazie bieżącej siatki, siatkę o odległościach międzywęzłowych dwa razy większych (co jest operacją stosunkowo tanią obliczenowo) i wykonać na niej jeden krok czasowy 2 t, a następnie porównać tak otrzymane rozwiązanie z tym, które uzyskamy na bieżącej siatce po wykonaniu dwóch kroków czasowych t. Stosując równanie (1.5) obliczymy lokalny błąd. Jeżeli błąd okaże się za duży, należy zaznaczyć odpowiednią komórkę, jako wymagającą zagęszczenia. Metody fizyczne. Poza przedstawionymi wyżej metodami uwzględniającymi matematyczne właściwości funkcji, można również stosować metody oparte o fizyczne cechy rozwiązania. Kryterium zagęszczania siatki numerycznej może być jakaś wielkość fizyczna, opisująca symulowany układ. Jeżeli wielkość ta przekroczy w danej komórce ustalony próg, wtedy komórka ta jest zaznaczana. Jako przykład można podać zagadnienie przepływu płynu. Miejsca, w których przepływ jest turbulentny, powinny być symulowane na siatkach o większej rozdzielczości niż te, gdzie przepływ jest laminarny. Dobrym wskaźnikiem obszarów, w których dzieje się najwięcej, jest wartość rotacji wektora prędkości elementu objętości płynu. Można więc przyjąć, że komórki, w których 2 Pełny dowód można znaleźć w pracy [1] 20
22 wartość rotacji prędkości płynu przekracza ustalony próg, powinny być zaznaczane. Metody fizyczne mają tą zaletę, że są bardzo łatwe w implementacji. Często jednak nie dają zadowalających rezultatów, dlatego są rzadko stosowane Grupowanie komórek Komórki zaznaczone jako wymagające zagęszczenia w poprzednim kroku algorytmu muszą być pogrupowane w prostokątne (lub prostopadłościenne w trzech wymiarach) klastry. Dopuszczamy przy tym możliwość, że wewnątrz klastra znajdą się również komórki niezaznaczone. Na kolejnym poziomie zagęszczenia, z klastrów tych zostaną utworzone gęstsze siatki. Algorytm grupujący komórki musi dokonać takiego podziału, aby nie utworzyć kilku dużych klastrów (co zwykle oznacza konieczność zagęszczania wielu nie zaznaczonych komórek), ani wielu małych (iteracje po krótkich wierszach komórek są mało efektywne). Algorytm spełniający powyższe warunki został opracowany przez Berger i Rigoutsos [3]. Opiera się on na metodzie bisekcji. Najpierw wszystkie komórki są umieszczane w jednym klastrze. Jeżeli tak powstała siatka nie jest efektywna, wtedy klaster dzielony jest na dwie części cięciem równoległym do któregoś z kierunków układu współrzędnych. Efektywność siatki jest określona przez wzór: Efektywność siatki = Liczba komórek zaznaczonych Całkowita liczba komórek siatki. (1.6) Aby dokonać podziału w najlepszym miejscu, definiujemy funkcje: Σ i = j f(i, j), Σ j = i f(i, j), 21
23 gdzie 1, jeżeli komórka (i, j) jest zaznaczona, f(i, j) = 0, jeżeli komórka (i, j) nie jest zaznaczona. Jak widać z powyższych wzorów, funkcja ta po prostu zlicza zaznaczone komórki w kierunkach prostopadłych do osi układu współrzędnych. Jeżeli dla jakiegoś indeksu i lub j funkcja Σ zeruje się, oznacza to, że żadna z komórek (i, ) lub (, j) nie jest zaznaczona. Właśnie miejsca zerowe funkcji Σ są potencjalnymi miejscami, w których można dokonać podziału klastra. Jeżeli funkcje Σ mają wiele miejsc zerowych, wybiera się wtedy takie, które leży najbliżej środka klastra. Może się również zdarzyć tak, że funkcja Σ nie będzie miała żadnego miejsca zerowego. W takiej sytuacji stosuje się metodę podobną do metody wykrywania krawędzi w grafice komputerowej. Obliczamy drugą pochodną funkcji Σ 3, która w tym przypadku może być wyrażona jako: i = Σ i+1 2Σ i + Σ i 1, j = Σ j+1 2Σ j + Σ j 1. Jako miejsce podziału wybieramy indeks, dla którego funkcja zmienia znak (czyli indeks, w którym funkcja Σ ma miejsce przegięcia ). Ponieważ indeksów takich może być wiele, za miejsce podziału wybieramy ten, dla którego wyrażenie: Z i+1/2 = i+1 i osiąga wartość maksymalną. 3 Ściślej, ponieważ funkcja Σ jest funkcją dyskretną, należ obliczyć drugą różnicę. 22
24 Algorytm grupujący powtarzany jest rekurencyjnie, aż efektywność siatki zdefiniowana wzorem (1.6) będzie wynosiła co najmniej E, gdzie E jest z góry ustalonym progiem. Zwykle algorytm działa bardzo dobrze dla parametru E 70%. Rysunek 1.7 przedstawia działane opisanego wyżej algorytmu dla przykładowej siatki: 1. dane wejściowe: komórki wybrane do zagęszczenia oznaczone są jako kropki; 2. zgrupowanie komórek w jeden klaster: obliczenie sygnatur Σ; wybór miejsca podziału; 3. cięcie : utworzenie klastra R 1 z prawej części; kontynuujemy dla części lewej; 4. wyznaczenie miejsca podziału; utworzenie klastrów R 2 i R 3. W tym przykładzie z zadanego zbioru komórek utworzyliśmy trzy klastry R 1, R 2 i R 3. Algorytm zakończył dzielenie zadanego obszaru, ponieważ dla każdego klastra osiągnięto dobrą efektywność (1 dla R 1, dla R 2 i dla R 3 ). 23
25 Rysunek 1.7: Działanie algorytmu grupującego komórki. Kropki oznaczają komórki zaznaczone do zagęszczenia. Linią przerywaną oznaczono miejsca podziału klastrów. Linią ciągłą oznaczono nowe siatki, utworzone przez algorytm. Liczby obok paneli oznaczają wartości funkcji Σ i dla odpowiednich wierszy i kolumn. 24
26 1.3 Implementacje Od chwili wynalezienia algorytmu powstało wiele różnorodnych implementacji samoadaptacyjnych siatek numerycznych. Przedstawię tu w skrócie kilka z nich. AMRCLAW Jest to pierwsza implementacja samoadaptacyjnych siatek numerycznych. AMRCLAW powstał jako rozszerzenie pakietu CLAWPACK o algorytm siatek samoadaptacyjnych. Autorami tego programu są R. J. Le- Veque i M. Berger. AMRCLAW może być wykorzystywany do rozwiązywania hiperbolicznych układów równań różniczkowych. Pakiet ten zostanie szczegółowo opisany w następnym rozdziale tej pracy. CHOMBO Siatki samoadaptacyjne są bardzo złożonym algorytmem, wymagają też skomplikowanych struktur danych. Zaprogramowanie tego algorytmu w języku Fortran jest trudne. Z tego powodu twórcy pakietu CHOMBO wykorzystali język C++. Dzięki podejściu obiektowemu, jakie umożliwia C++, stworzono potężną biblioteką klas. W jej skład wchodzą: BoxTools zestaw klas umożliwiających reprezentację danych za pomocą prostopadłościennych siatek, wykonywanie operacji na nich operacji (np. suma, przecięcie), a także odwzorowywanie tych siatek w systemach z rozproszoną pamięcią; AMRTools i AMRTimeDependent implementacje operacji charakterystycznych dla siatek samoadaptacyjnych: zaznaczanie komórek, tworzenie nowych siatek, interpolacja danych między siatkami; 25
27 AMRElliptic zestaw klas umożliwiających rozwiązywanie układów równań eliptycznych. Wybierając biblioteką CHOMBO można tworzyć własne aplikacje i korzystać z zalet siatek samoadaptacyjnych. FLASH Jest to potężne narzędzie służące do symulowania układów astrofizycznych. Umożliwia użytkownikowi zdefiniowanie warunków początkowych, warunków brzegowych, oraz algorytmu ewolucji układu. FLASH wykorzystuje bibliotekę PARAMESH, która zawiera bardzo dobrą implementację algorytmu samoadaptacyjnych siatek numerycznych. FLASH używa także biblioteki MPI (ang. Message-Passing Interface), dzięki czemu może być uruchamiany na systemach wieloprocesorowych różnych typów. 26
28 Rozdział 2 AMRCLAW Jedną z wielu implementacji samoadaptacyjnych siatek numerycznych jest pakiet AMRCLAW. Jest to pakiet procedur napisanych w języku Fortran. Powstał jako rozszerzenie pakietu CLAWPACK (ang.: Conserwation LAWs PACKage) o kod umożliwiający prowadzenie obliczeń przy użyciu samoadaptacyjnych siatek numerycznych. Autorami tego pakietu są R. J. LeVeque i M. J. Berger. AMRCLAW jest oprogramowaniem wolnodostępnym. Najnowszą wersję można pobrać z internetowej strony autora: CLAWPACK i AMRCLAW zostały zaprojektowane do rozwiązywania układów hiperbolicznych równań różniczkowych, opisujących prawa zachowania 1, w postaci 2 : q t + f(q) x + g(q) y + h(q) z = 0, (2.1) 1 Prawem zachowania nazywamy tu równanie różniczkowe, którego rozwiązanie q(x, y, z, t) spełnia warunek q(x, y, z, t)dω = const, gdzie dω jest elementem przestrzeni. Ω 2 W niniejszej pracy przyjęto notację: q a q a 27
29 gdzie q = q(x, y, z, t) R m jest szukanym wektorem, funkcje f(q), g(q) i h(q) opisują strumienie, odpowiednio w kierunku x, y i z. Ogólność zastosowanych w AMRCLAW metod numerycznych umożliwia również rozwiązywanie układów równań, niemających postaci zachowawczej: κ(x, y, z)q t + A(q, x, y, z, t)q x + B(q, x, y, z, t)q y + C(q, x, y, z, t)q z = = Ψ(q, x, y, z, t). (2.2) gdzie A, B, C R m m są macierzami, κ(x, y, z) jest funkcją obciążenia (ang. capacity) a Ψ(q, x, y, z, t) oznacza człon źródłowy opisujący dopływ (lub ubytek) materii z układu. 2.1 Metoda fal AMRCLAW podobnie jak CLAWPACK wykorzystuje metodę fal (ang. wavepropagation method). Metoda ta została wynaleziona przez R. J. LeVeque a w 1997 roku dla równań jednowymiarowych, a następnie rozwinięta na układy równań o dowolnej liczbie wymiarów. Przedstawię tu metodę i jej wyprowadzenie dla przypadku jednowymiarowego. Dokładny opis metody znajduje się w [5]. Metoda fal jest jedną z metod objętości skończonych. Rozwiązanie przybliża się pewną funkcją stałą w komórkach siatki numerycznej. Ewolucję układu wyznacza się rozwiązując, w każdym kroku czasowym, lokalny problem Riemanna 3, na każdej granicy między sąsiednimi komórkami siatki nume- 3 B. Riemann ( ) niemiecki matematyk. Problem Riemanna polega na rozwiązaniu równania q t + Aq x = 0, przy warunku początkowym q(x, 0) =, gdzie q l, x 0 q r, x > 0 q(x, t) : R 2 R m, A R m m, a q l i q r stałymi. 28
30 rycznej. Rozwiązaniem problemu Riemanna jest grupa fal poruszających się w lewo, lub prawo od granicy. Następnie, fale te wykorzystywane są do zmodyfikowania wartości rozwiązania w komórkach sąsiednich. W tej postaci jest to metoda pierwszego rzędu dokładna. Aby uzyskać metodę drugiego rzędu dokładną, stosuje się odpowiednie poprawki i ograniczniki (ang. limiters), dzięki czemu można zmniejszyć dyspersję numeryczną oraz niefizyczne oscylacje, które pojawiają się w okolicy dużych gradientów i nieciągłości rozwiązania Problem Riemanna W tym paragrafie przedstawię jednowymiarowy problem Riemanna. Jest to podstawowy element metody fal. Rozważmy następujący liniowy układ równań: q t + Aq x = 0, (2.3) gdzie q(x, t) : R 2 R m R m, a A R m m jest stałą macierzą. Układ ten opisuje prawo zachowania, ze strumieniem f(q) = Aq. Problem Riemanna polega na rozwiązaniu równania (2.3), przy warunku początkowym (Rys. 2.1a): q l, x (, 0) q(x, 0) = q r, x [0, ) gdzie q l i q r są stałymi., (2.4) Ograniczymy się tu tylko do hiperbolicznych układów równań. Układ równań nazywamy hiperbolicznym, jeżeli macierz A posiada rzeczywiste wartości własne. Dzięki tej własności możemy zapisać, że A = RΛR 1, (2.5) 29
31 gdzie R = [r 1 r 2... r m ] jest macierzą wektorów własnych, Λ = diag(λ 1, λ 2,..., λ m ) jest macierzą diagonalną utworzoną z wartości własnych λ i macierzy A, i = 1... m. Rozwiązaniem problemu Riemanna dla układu (2.3) jest grupa m fal 4 W p, p = 1... m, poruszających się z prędkościami s p równymi wartościom własnym macierzy A. Każda z fal W p jest wielokrotnością wektora własnego macierzy A: W p = α p r p. (2.6) Ponadto fale te spełniają warunek: m q = q r q l = W p. (2.7) p=1 W ogólności dla każdego hiperbolicznego układu równań różniczkowych można rozwiązać problem Riemanna. Otrzymamy wtedy zestaw fal W p wraz z ich prędkościami s p (Rys. 2.1b). Fale W p rozprzestrzeniające się od nieciągłości generują zaburzenia F l i F r, zmieniające wartości komórek odpowiednio po lewej i prawej stronie nieciągłości. Przyjmijmy następujące oznaczenia: s + = max(0, s), ; s = min(0, s). Możemy teraz zapisać zaburzenie poruszające się w lewo oraz w prawo od nieciągłości jako: m F l = (s p ) W p = A (q r q l ) = A q, (2.8) p=1 m F r = (s p ) + W p = A + (q r q l ) = A + q, (2.9) p=1 gdzie A + = RΛ + R 1, A = RΛ R 1. 4 Tu mianem fala określamy nieciągłość (szok) poruszającą się ze stałą prędkością. 30
32 Rysunek 2.1: Problem Riemanna: warunek początkowy (a) i rozwiązanie (b). Rozwiązaniem problemu Riemanna są fale W p, poruszające się od miejsca nieciągłości funkcji początkowej (x = 0) z prędkościami s p Metoda pierwszego rzędu dokładności Rozważmy jednowymiarowe prawo zachowania: q t + f( q) x = 0. (2.10) Funkcja q oznacza tu rozwiązanie dokładne, f( q) jest strumieniem. Zdefiniujmy teraz siatką numeryczną o węzłach x i 1/2 = (i 1/2) x, t n = n t. Całkując równanie (2.10) po obszarze [x i 1/2, x i+1/2 ] [t n, t n+1 ], otrzymamy: xi+1/2 x i 1/2 q(x, t n+1 )dx = + [ tn+1 t n xi+1/2 x i 1/2 f ( q(x + 1/2, t)) dt q(x, t n )dx tn+1 t n ] f ( q(x 1/2, t)) dt. (2.11) 31
33 Z postaci powyższej całki można wywnioskować, że schemat numeryczny jakiego należy użyć do rozwiązania równania (2.10), powinien mieć postać: q n+1 i = q n i t x (F i+1 F i ), (2.12) gdzie q n i przybliża średnią z rozwiązania dokładnego liczoną na przedziale [x i 1/2, x i+1/2 ] w chwili t = t n, a F i przybliża średni strumień przepływający z komórki i 1 do i: qi n = 1 x F i = 1 t xi+1/2 x i 1/2 tn+1 t n q(x, t n )dx, f( q(x 1/2, t))dt. Funkcja q n i jest funkcją stałą w danej komórce numerycznej. Na granicy x i+1/2 każdej komórki numerycznej istnieje nieciągłość q = q i+1 q i (Rys. 2.2). Rysunek 2.2: Rozwiązanie numeryczne q i reprezentuje średnią z q w przedziale [x i 1/2, x i+1/2 ]. Widać więc, że lokalnie, na granicy x = x i+1/2 każdej komórki numerycznej, mamy do czynienia z problemem Riemanna. Oczywiście tylko w przybli- 32
34 żeniu, ponieważ w problemie Riemanna zakładaliśmy, że funkcja q określona jest na przedziałach nieskończonych: q l, dla x (, 0) q(x, t) = q r, dla x [0, ), (2.13) podczas gdy w tym przypadku funkcja wokół punktu x = x i+1/2 określona jest na przedziałach skończonych: q i, dla x [x i 1/2, x i+1/2 ) q(x, t) = q i+1, dla x [x i+1/2, x i+3/2 ). (2.14) Dlatego musimy przyjąć dodatkowe ograniczenie: krok czasowy t jest na tyle mały, że żadna z fal nie przebędzie drogi większej niż szerokość komórki numerycznej x. Warunek ten można przedstawić w następującej postaci: max{s p } t, p = 1... m, (2.15) p x gdzie s p oznacza prędkość fali z rozwiązania problemu Riemanna. Jeżeli powyższy warunek jest spełniony, wtedy mamy pewność, że na wartość funkcji w i-tej komórce mają wpływ wyłącznie fale rozprzestrzeniające się z komórek sąsiednich. Metoda fal polega na rozwiązaniu problemu Riemanna na każdej granicy między komórkami siatki numerycznej i wyznaczeniu struktury fal rozprzestrzeniających się od nieciągłości. Znając fale W p i oraz ich prędkości s p i możemy obliczyć strumienie F i+1 i F i według wzorów (2.8) i (2.9). Wstawiając wzory (2.8) i (2.9) do równania (2.12), otrzymujemy następujący schemat numeryczny: q n+1 i = q n i t x m p=1 ( (s p i+1) W p i+1 + (s p i ) + W p ) i. (2.16) Schemat ten jest schematem pierwszego rzędu. Jest to w zasadzie metoda Godunowa. 33
35 2.1.3 Poprawka drugiego rzędu Powyższy schemat jest schematem pierwszego rzędu. Aby wprowadzić poprawki drugiego rzędu, należy uzupełnić schemat (2.16) o dodatkowy człon: q n+1 i = q n i t x m p=1 ( (s p i+1) W p i+1 + (s p i ) + W p ) t ( i Fi+1 x F ) i. (2.17) gdzie F i jest strumieniem korekcyjnym. Postać tego strumienia wybieramy bazując na schemacie Laxa-Wendroffa 5 : F i = 1 ( 2 A 1 t ) x A q i = = 1 ( λ p 1 t ) 2 x λp W p i. (2.18) p Dokładne wyjaśnienie takiej postaci strumienia korekcyjnego można znaleźć w pracy [9]. Schemat w takiej postaci charakteryzuje się znaczną dyspersją numeryczną. Wokół nieciągłości i stromych zboczy pojawiają się niefizyczne oscylacje (Rys. 2.3a). W p i Aby pozbyć się tych nieporządanych efektów, zastępujemy w równaniu (2.18) = α p i r p przez falę ograniczoną: W p i = Φ(θ p i )W p i, (2.19) gdzie θ p i jest określone następująco: αi 1/α p p θ p i, λ p > 0 i = αi+1/α p p i, λ p < 0. (2.20) Funkcja θ mierzy gładkość rozwiązania. Przyjmuje ona wartości bliskie 1 w miejscach, w których rozwiązanie jest gładkie, oraz wartości dalekie od 1 5 Lax, Wendroffa
36 Rysunek 2.3: Ograniczniki strumienia: rozwiązanie bez zastosowania ograniczników (a), ogranicznik minmod (b), ogranicznik MC (c). Linią ciągłą oznaczono rozwiązanie dokładne a krzyżykami rozwiązanie numeryczne. Źródło: [8] w okolicach nieciągłości i stromych zboczy rozwiązania. Funkcja Φ, zwana ogranicznikiem strumienia, ma za zadanie wygładzać rozwiązanie w okolicach 35
37 nieciągłości. W AMRCLAW można stosować następujące ograniczniki: minmod: Φ(θ) = max(0, min(1, θ)) superbee: Φ(θ) = max(0, min(1, 2θ), min(2, θ)) van Leer: Φ(θ) = θ+ θ 1+θ monotoniczny centrowany (MC): Φ(θ) = max(0, min((1 + θ)/2, 2, 2θ)) brak ogranicznika: Φ(θ) = 1. Tak otrzymany schemat numeryczny jest schematem drugiego rzędu dokładnym. Dzięki zastosowaniu ograniczników nie powoduje on dyspersji numerycznej (Rys. 2.3b i 2.3c). Schemat ten zaimplementowany jest w programach CLAWPACK i AMRCLAW. 2.2 Struktura programu Program AMRCLAW jest bardzo elastycznym narzędziem. Został zaprojektowany w taki sposób, że można za jego pomocą rozwiązywać wiele różnorodnych zagadnień opisywanych przez hiperboliczne układy równań różniczkowych postaci (2.2). Jest to pakiet procedur napisanych w języku Fortran. Aby go zaadaptować do własnych potrzeb, należy uzupełnić kod o elementy specyficzne dla danego zadania, takie jak: warunki początkowe, warunki brzegowe, procedurę rozwiązującą problem Riemanna. Następnie trzeba skompilować cały program. Poniżej przedstawiłem opis najważniejszych procedur i plików, które musi dostarczyć użytkownik. 36
38 2.2.1 Program główny i plik wejściowy Program główny zawarty jest w pliku amr2ez.f (odpowiednio, amr3ez.f dla problemów trójwymiarowych). Podstawowym zadaniem procedury głównej jest pobranie parametrów z pliku wejściowego amr2ez.data (odpowiednio, amr3ez.data dla problemów trójwymiarowych). Plik wejściowy jest zwykłym plikiem tekstowym zawierającym szereg wartości parametrów programu. Najważniejszymi parametrami są: mx, my, mz: liczba komórek siatki numerycznej w każdym z kierunków, mxnest: maksymalny poziom zagęszczenia siatki numerycznej, inrat(1..mxnest): tablica współczynników zagęszczenia siatki na każdym poziomie hierarchii siatek samoadaptacyjnych, inrat(l) = r l (Rozdz. 1.2), t0: początkowy czas, xlower, xupper, ylower,... : współrzędne domeny obliczeniowej, mbc: szerokość bufora komórek duchów, mthbc(1:n): rodzaj warunków brzegowych na każdym z brzegów siatki numerycznej, N = 4 dla dwóch wymiarów, N = 6 dla trzech wymiarów, tol: tolerancja dla dla procedury wyznaczającej obszary do zagęszczenia metodą Richardsona (Rozdz ), tolsp: tolerancja dla procedury wyznaczającej obszary do zagęszczenia metodą gradientów (Rozdz ), 37
39 kchecks: liczba kroków czasowych po których siatka jest zagsęszczana, kchecks = K (Rozdz ), cutoff: wymagana efektywnosc siatki (Rozdz ). Poniższy wydruk przedstawia przykładowy plik konfiguracyjny amr2ez.data. Wydruk mx = cells in x direction 32 my = cells in y direction 3 mxnest = max number of grid levels inrat = refinement ratios (1..mxnest) 2 nout = number of output times to print results 2 outstyle = style of specifying output times tout = output times dtv(1) = initial dt (used in all steps if method(1)=0) 1.0d99 dtv(2) = max allowable dt 0.85d0 cflv(1) = max allowable Courant number 0.75d0 cflv(2) = desired Courant number nv(1) = max number of time steps per call to claw2 1 method(1) = 1 for variable dt 2 method(2) = order 2 method(3) = transverse order 3 method(4) = verbosity of output 0 method(5) = source term splitting 0 method(6) = mcapa 2 method(7) = maux (should agree with parameter in driver) "center" "center" 9 meqn (# variables - e.g. 4 for Euler) 8 mwaves (number of waves in soln to Riemann prob) (mthlim(mw), mw=1,mwaves) selects limiter 0.d0 t0 = initial time 0.d0 xlower = left edge of computational domain 1.d0 xupper = right edge of computational domain 0.d0 ylower = bottom edge of computational domain 1.d0 yupper = top edge of computational domain 5 mbc = number of ghost cells at each boundary 1 mthbc(1) = type of boundary conditions at left 38
40 1 mthbc(2) = type of boundary conditions at right 1 mthbc(3) = type of boundary conditions at bottom 1 mthbc(4) = type of boundary conditions at top F do a~restart (input from rest2d) 1000 iousr 26.0 tol (tolerance for Richardson estimator) 26.0 tolsp (spatial tolerance for refinement) 2 kcheck (how often to est. error - related to buffer size) 3 ibuff (buffer zone size - add # of flagged pts to add).70 cutoff (efficiency cutoff for grid generator) F PRINT option (if T prints soln. to out2d) F NCAR graphics T Matlab graphics Fdprint - verbose domain flags F eprint - error estimation - output the flags F edebug - even more error est. output F gprint - grid generation output (bisection, clustering,...) F nprint - proper nesting output F pprint - projectiong of tagged pts. output F rprint - verbose regridding - output new grid summary F sprint - space (memory) output T tprint - time step reporting - for each level F uprint - updating/upbnding reporting Warunki początkowe Stan początkowy (dla chwili czasu t = 0) ustalany jest za pomocą procedury qinit. Inicjuje ona tablicę q, przechowującą wartości rozwiązania. Procedurę qinit dostarcza użytkownik. Jeżeli wektor q ma p składowych, wtedy element tablicy q(i,m) powinien być zainicjowany wartością średnią m-tej składowej wektora q, w i-tej komórce siatki numerycznej. W szczególności, jeżeli dane początkowe zadane są funkcją gładką, tablica q może zostać zainicjowana przez wartość funkcji wyliczonej w centrum komórki numerycznej. 39
41 Rysunek 2.4: Dane w programie reprezentowane są za pomocą dwóch tablic ql i qr, które przechowują odpowiednio, wartości na lewym i prawym brzegu komórki numerycznej Problem Riemanna Najważniejszą procedurą, którą musi dostarczyć użytkownik, jest procedura rpn2 (odpowiednio, rpn3 dla problemów trójwymiarowych). Określa ona układ równań, który będzie rozwiązywany. Procedura przyjmuje jako swoje argumenty dwie tablice ql i qr. Wartość ql(i,:) jest wartością q L i na lewym brzegu i-tej komórki, natomiast qr(i,:) jest wartością q R i na prawym brzegu i-tej komórki. Taka reprezentacja danych daje większą elastyczność programu, ponieważ dane w komórce mogą być reprezentowane przez funkcją liniową a nie stałą (Rys. 2.4). Procedura rozwiązuje problem Riemanna, na granicy każdej komórki numerycznej. Problem Riemanna na granicy x i 1/2 pomiędzy komórkami i 1 a i jest tu zdefiniowany w następujący sposób (Rys. 2.4): lewy stan: prawy stan: q l = qr(i-1,:), q r = ql(i,:). 40
42 Procedura rozwiązuje problem Riemanna rpn2 dla każdego i a następnie zwraca w parametrach wyjściowych: Wektor W p i 1/2 zawierający zmianę q spowodowaną przez p-tą falę; Prędkości fal s p i 1/2 ; Zaburzenie rozchodzące się w lewo A q i 1/2 ; Zaburzenie rozchodzące się w prawo A + q i 1/2. Na podstawie tych danych inne procedury wyliczają ewolucję układu Warunki brzegowe Bardzo ważnym elementem obliczeń numerycznych są warunki brzegowe. W AMRCLAW warunki brzegowe zostały zaimplementowane za pomocą komórek duchów (Rozdz ). Przed każdym krokiem czasowym należy ustalić wartości komórek duchów. Zadanie to realizuje procedura bc2amr (odpowiednio, bc3amr dla problemów trójwymiarowych). Standardowa procedura zawarta w pakiecie AMRCLAW implementuje trzy rodzaje warunków brzegowych: periodyczne warunki brzegowe, stałe warunki brzegowe, otwarte warunki brzegowe. Oczywiście można również dodać własne, specyficzne dla rozwiązywanego problemu warunki brzegowe. 41
43 AMRCLAW umożliwia niezależne zdefiniowanie warunków brzegowych dla każdej granicy domeny obliczeniowej. Wyboru żądanego rodzaju warunków dokonuje się w pliku konfiguracyjnym, przez nadanie odpowiednich wartości składowym tablicy mthbc. 42
44 Rozdział 3 Zastosowania i testy 3.1 Zastosowania W tym rozdziale przedstawię kilka przykładów wykorzystania samoadaptacyjnych siatek numerycznych do rozwiązywania problemów z różnych dziedzin fizyki Adwekcja Pierwszym przykładem jest dwuwymiarowe równanie adwekcji: q t + uq x + vq y = 0. (3.1) Prędkości u i v wynosiły odpowiednio: u = 0.5, v = 1. Zaburzenie początkowe q(x, y, t = 0) zostało wybrane w sposób następujący: 1 dla (x, y) [0.1, 0.6] [0.1, 0.6] q(x, y, t) = 0.1 dla pozostałych wartości(x, y). Równanie rozwiązywałem w obszarze [0, 1] [0, 1]. W obu kierunkach zasto- 43
45 Rysunek 3.1: Rozwiązanie równania adwekcji. Na rysunkach zaznaczono krawędzie utworzonych przez algorytm klastrów siatek. sowałem poriodyczne warunki brzegowe. Bazowa siatka samoadptacyjna miała rozdzielczość 50 50, maksymalny poziom zagęszczenia wynosił 6. Na każdym poziomie siatka była zagęszczana dwukrotnie. Parametry kontrolujące zagęszczenie były równe: tol = 0.5, tolsp = 0.5, kcheck = 2. Rys. 3.1 przedstawia funkcję q(x, y, t) dla różnych momentów czasu. Zgodnie z oczekiwaniami klastry gęstrzych siatek tworzą się w miajscach, w których występują strome zbocza. Kolejne gęstrze siatki 44
46 pokrywają coraz mniejszy obszar (Rys. 3.1) Akustyka Drugim przykładem jest rozchodzenie się dwuwymiarowej fali sprężystej w niejednorodnym ośrodku. Problem ten charakteryzują równania akustyki, dla dwóch wymiarów. Opisują one zmiany ciśnienia p oraz składowych prędkości u i v, odpowiednio w kierunku osi OX i OY, w zależności od czasu. Równania akustyki są układem równań hiperbolicznych. Można je zapisać w następującej postaci: q t + Aq x + Bq y = 0 (3.2) gdzie q = p u v, A = 0 K 0 1/ρ , B = 0 0 K /ρ 0 0. Tutaj ρ = ρ(x, y) jest gęstością ośrodka, a K modułem sprężystości. W tym przykładzie gęstość ośrodka wynosiła: 1 dla x < 0.5 ρ(x, y) = 4 dla x 0.5. Moduł sprężystości K był stały dla całego obszaru i wynosił 1. Nieciągłość w gęstości powoduje, że prędkości fali po lewej i prawej stronie obszaru są różne i wynoszą zgodnie ze wzorem c = K/ρ odpowiednio: c l = 1, c r = 0.5. W chwili t = 0 w punkcie o współrzędnych (0.25, 0.4) generowana jest fala kulista (Rys. 3.2a). Ewolucję układu symulowałem przy użyciu siatki samoadaptacyjnej o bazowej rozdzielczości komórek i współczynniku 45
47 Rysunek 3.2: Propagacja fali akustycznej w niejednorodnym ośrodku. Wzdłóż prostej x = 0.5 skokowo zmienia się gęstość ośrodka. Dla przejrzystości rysunku nie narysowano siatek z poziomów 3 i 4, zaznaczone są tylko ich krawędzie. zagęszczenia równym 2 dla każdego poziomu. Maksymalny poziom zagęszczenia wynosił 4, dzięki czemu efektywna rozdzielczość siatki samoadaptacyjnej to W typ przykładzie zastosowałem otwarte warunki brzegowe. Rysunki 3.2 przedstawiają wykresy ciśnienia dla chwili t = 0, t = 0.2, t = 0.4, t = 0.5. Zgodnie z oczekiwaniami fala załamuje się na granicy ośrodków, 46
48 wzdłuż prostej x = 0.5. Wyraźnie widać falę załamaną i falę odbitą. Na Rys. 3.2 widać bardzo dobrze zaletę zastosowania siatek samoadaptacyjnych. Siatka zagęszczana jest tylko w obszarach, do których doterła fala. Czoło fali, czyli obszar najbardziej interesujący, reprezentowany jest na siatce najgęstrzej. Natomiast w obszarach do których zaburzenie jeszcze nie dotarło wykożystywana jest zgrubna siatka Hydrodynamika Trzecim przykładem, który zademonstruję, jest problem z zakresu hydrodynamiki. W chwili początkowej w układzie istnieją cztery obszary o różnych wartościach ciśnienia p i gęstości ρ, oddzielone od siebie przegrodami. Następnie szybko usuwamy przegrody i obserwujemy ruch płynu. Wartości parametrów początkowych zebrane są w Tabeli 3.1. Tabela 3.1: Wartości początkowe w obszarach z Rys Oznaczenia: p ciśnienie, ρ gęstość, u, v składowe prędkości. Wielkość Obszar NE Obszar NW Obszar SW Obszar SE p 1,5 0,3 0,03 0,3 ρ o,7 0,5 0,13 0,5 u v
49 Ewolucją tego układu fizycznego rządzą równania Eulera: p t + (ρ V ) = 0, (ρv ) + ((ρv t ) V ) = p, E t + (E V ) = p V, E = p γ 1 + ρv 2 2, γ = c p /c V. Powyższy układ równań można sprowadzić do postaci hiperbolicznej, a więc można go rozwiązać za pomocą programu AMRCLAW. W symulacji ustaliłem bazową rozdzielczość siatki samoadaptacyjnej na 50 50, maksymalny poziom zagęszczenia siatki na 3, współczynnik zagęszczenia na 2. Na Rys. 3.3 przedstawiłem wyniki symulacji. Wyniki te zależą od rozdzielczości siatek numerycznych. Na siatkach najniższego poziomu profile falowe są rozmyte (Rys. 3.3b), zaś na siatkach najgęstrzych profile te są wyostrzone (Rys. 3.3d). Siatki z wyższych poziomów uwydatniają nowe szczegóły rozwiązania, ale jednocześnie pokrywają coraz mniejszą część domeny obliczeniowej. 48
50 Rysunek 3.3: Rozwiązanie równań Eulera: (a) warunki początkowe (wartości funkcji podane są w Tabeli 3.1); (b) (d) rozwiązanie po 0,5 s otrzymane odpowiednio na siatce I, II i III poziomu. Panele przedstawiają wykresy gęstości płynu. 49
51 3.1.4 Pętle koronalne Pętle koronalne są obiektami istniejącymi na Słońcu, w obszarze korony słonecznej. Pętle te mają promień rzędu 10 8 m. Oba ich końce, tzw. stopy, zakotwiczone są w fotosferze Słońca (Rys. 3.4). Pętle koronalne są dobrze opisywane przez równania magnetohydrodynamiki. Teoria ta przewiduje, że pętle zachowują się jak falowody i mogę w nich propagować fale, tzw fale MHD 1. Przypuszczenia te zostały potwierdzone doświadczalnie przez obserwacje przeprowadzone przy użyciu sond kosmicznych TRACE 2 i SOHO 3. Bezpośrednich dowodów na istnienie radialnych oscylacji w pętlach koronalnych dostarczyły badania Wanga i Solanki [16]. Rys. 3.4 przedstawia obrazy uzyskane w tych obserwacjach. Jak wspomniałem wcześniej pętle koronalne mogą być opisane przez równania magnetohydrodynamiki (MHD). Teoria MHD opisuje płyny przeniknięte polem elektromagnetycznym (np. plazmę). Równania MHD są więc połączonymi równaniami Eulera i Maxwell a: p t + (ρ V ) = 0, (3.3) (ρv ) + (ρv ) V = p + 1 µ ( B) B, (3.4) t p t + (p V ) = p(γ 1) V, (3.5) B t = ( V B), (3.6) B = 0. (3.7) Powyższy układ równań może być sprowadzony do postaci zachowawczej, 1 Teoria fal MHD została opracowana przez Edwina i Robertsa ([11]), [12]) 2 Prace Aschwanden a [13] i Nakariakov a [14]. 3 Praca Wang a [15] 50
52 Rysunek 3.4: Wyniki obserwacji uzyskanych z obserwacji Wang i Solanki [16]. Obrazy z lewego panelu pochodzą bezpośrednio z obserwacji. Prawy panel przedstawia obraz komputerowy. (a)-(b) oscylacje poprzeczne, (c)-(d) oscylacje radialne. Jasna linia to granica fotosfery Słońca. Rysunki pochodzą z pracy [16] dzięki temu można go rozwiązać numerycznie za pomocą programu AMRCLAW. Symulacja. Przeprowadziłem symulację numeryczną drgań opisanej wyżej pętli. Zastosowałem model pętli zaproponowany w pracy [10]. Jest to model dwuwymiarowej pętli. Zakładamy, że pole magnetyczne wytwarzane jest przez prąd płynący w nieskończonym przewodniku leżącym wzdłuż prostej równoległej do osi OY i przechodzącej przez punkt o współrzędnych x = 0, z = a. Wektor indukcji magnetycznej ma więc składowe: [ ] a(z + a) B b (x, z) = B 0 x 2 + (z + a), ax. (3.8) 2 x 2 + (z + a) 2 Ciśnienie gazu jest stałe w całym układzie p b (x, z) = const. Gęstość pla- 51
Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.
Z5: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania zagadnienie brzegowe Dyskretne operatory różniczkowania Numeryczne obliczanie pochodnych oraz rozwiązywanie
Bardziej szczegółowoRozważmy nieustalony, adiabatyczny, jednowymiarowy ruch gazu nielepkiego i nieprzewodzącego ciepła. Mamy następujące równania rządzące tym ruchem:
WYKŁAD 13 DYNAMIKA MAŁYCH (AKUSTYCZNYCH) ZABURZEŃ W GAZIE Rozważmy nieustalony, adiabatyczny, jednowymiarowy ruch gazu nielepkiego i nieprzewodzącego ciepła. Mamy następujące równania rządzące tym ruchem:
Bardziej szczegółowoMetody numeryczne w przykładach
Metody numeryczne w przykładach Bartosz Ziemkiewicz Wydział Matematyki i Informatyki UMK, Toruń Regionalne Koło Matematyczne 8 kwietnia 2010 r. Bartosz Ziemkiewicz (WMiI UMK) Metody numeryczne w przykładach
Bardziej szczegółowoAproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą
Bardziej szczegółowo5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a
Bardziej szczegółowoSzukanie rozwiązań funkcji uwikłanych (równań nieliniowych)
Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Funkcja uwikłana (równanie nieliniowe) jest to funkcja, która nie jest przedstawiona jawnym przepisem, wzorem wyrażającym zależność wartości
Bardziej szczegółowoRozwiązywanie równań nieliniowych
Rozwiązywanie równań nieliniowych Marcin Orchel 1 Wstęp Przykłady wyznaczania miejsc zerowych funkcji f : f(ξ) = 0. Wyszukiwanie miejsc zerowych wielomianu n-tego stopnia. Wymiar tej przestrzeni wektorowej
Bardziej szczegółowoOptymalizacja ciągła
Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej
Bardziej szczegółowoKADD Minimalizacja funkcji
Minimalizacja funkcji Poszukiwanie minimum funkcji Foma kwadratowa Metody przybliżania minimum minimalizacja Minimalizacja w n wymiarach Metody poszukiwania minimum Otaczanie minimum Podział obszaru zawierającego
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowoKADD Minimalizacja funkcji
Minimalizacja funkcji n-wymiarowych Forma kwadratowa w n wymiarach Procedury minimalizacji Minimalizacja wzdłuż prostej w n-wymiarowej przestrzeni Metody minimalizacji wzdłuż osi współrzędnych wzdłuż kierunków
Bardziej szczegółowoNiezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.
Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą
Bardziej szczegółowoFUNKCJA LINIOWA - WYKRES
FUNKCJA LINIOWA - WYKRES Wzór funkcji liniowej (Postać kierunkowa) Funkcja liniowa jest podstawowym typem funkcji. Jest to funkcja o wzorze: y = ax + b a i b to współczynniki funkcji, które mają wartości
Bardziej szczegółowoFUNKCJA LINIOWA, RÓWNANIA I UKŁADY RÓWNAŃ LINIOWYCH
FUNKCJA LINIOWA, RÓWNANIA I UKŁADY RÓWNAŃ LINIOWYCH PROPORCJONALNOŚĆ PROSTA Proporcjonalnością prostą nazywamy zależność między dwoma wielkościami zmiennymi x i y, określoną wzorem: y = a x Gdzie a jest
Bardziej szczegółowo- prędkość masy wynikająca z innych procesów, np. adwekcji, naprężeń itd.
4. Równania dyfuzji 4.1. Prawo zachowania masy cd. Równanie dyfuzji jest prostą konsekwencją prawa zachowania masy, a właściwie to jest to prawo zachowania masy zapisane dla procesu dyfuzji i uwzględniające
Bardziej szczegółowow analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą
Bardziej szczegółowoMetoda rozdzielania zmiennych
Rozdział 12 Metoda rozdzielania zmiennych W tym rozdziale zajmiemy się metodą rozdzielania zmiennych, którą można zastosować, aby wyrazić jawnymi wzorami rozwiązania pewnych konkretnych równań różniczkowych
Bardziej szczegółowo- Strumień mocy, który wpływa do obszaru ograniczonego powierzchnią A ( z minusem wpływa z plusem wypływa)
37. Straty na histerezę. Sens fizyczny. Energia dostarczona do cewki ferromagnetykiem jest znacznie większa od energii otrzymanej. Energia ta jest tworzona w ferromagnetyku opisanym pętlą histerezy, stąd
Bardziej szczegółowoMetody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne
Metody numeryczne materiały do wykładu dla studentów 7. Całkowanie numeryczne 7.1. Całkowanie numeryczne 7.2. Metoda trapezów 7.3. Metoda Simpsona 7.4. Metoda 3/8 Newtona 7.5. Ogólna postać wzorów kwadratur
Bardziej szczegółowoModelowanie rynków finansowych z wykorzystaniem pakietu R
Modelowanie rynków finansowych z wykorzystaniem pakietu R Metody numeryczne i symulacje stochastyczne Mateusz Topolewski woland@mat.umk.pl Wydział Matematyki i Informatyki UMK Plan działania 1 Całkowanie
Bardziej szczegółowoFunkcja kwadratowa. f(x) = ax 2 + bx + c,
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax 2 + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax 2, a R \
Bardziej szczegółowoMetoda eliminacji Gaussa. Autorzy: Michał Góra
Metoda eliminacji Gaussa Autorzy: Michał Góra 9 Metoda eliminacji Gaussa Autor: Michał Góra Przedstawiony poniżej sposób rozwiązywania układów równań liniowych jest pewnym uproszczeniem algorytmu zwanego
Bardziej szczegółowoZajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów
Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów W ramach zajęć oprogramujemy jedną, wybraną metodę numeryczną: metodę bisekcji numerycznego rozwiązywania równania nieliniowego
Bardziej szczegółowo4.3 Wyznaczanie prędkości dźwięku w powietrzu metodą fali biegnącej(f2)
Wyznaczanie prędkości dźwięku w powietrzu metodą fali biegnącej(f2)185 4.3 Wyznaczanie prędkości dźwięku w powietrzu metodą fali biegnącej(f2) Celem ćwiczenia jest wyznaczenie prędkości dźwięku w powietrzu
Bardziej szczegółowoGeometria analityczna
Geometria analityczna Paweł Mleczko Teoria Informacja (o prostej). postać ogólna prostej: Ax + By + C = 0, A + B 0, postać kanoniczna (kierunkowa) prostej: y = ax + b. Współczynnik a nazywamy współczynnikiem
Bardziej szczegółowoMetoda eliminacji Gaussa
Metoda eliminacji Gaussa Rysunek 3. Rysunek 4. Rozpoczynamy od pierwszego wiersza macierzy opisującej nasz układ równań (patrz Rys.3). Zakładając, że element a 11 jest niezerowy (jeśli jest, to niezbędny
Bardziej szczegółowo3. Macierze i Układy Równań Liniowych
3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x
Bardziej szczegółowoSieci obliczeniowe poprawny dobór i modelowanie
Sieci obliczeniowe poprawny dobór i modelowanie 1. Wstęp. Jednym z pierwszych, a zarazem najważniejszym krokiem podczas tworzenia symulacji CFD jest poprawne określenie rozdzielczości, wymiarów oraz ilości
Bardziej szczegółowoFunkcja kwadratowa. f(x) = ax 2 + bx + c = a
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax, a R \ {0}.
Bardziej szczegółowoPrędkość fazowa i grupowa fali elektromagnetycznej w falowodzie
napisał Michał Wierzbicki Prędkość fazowa i grupowa fali elektromagnetycznej w falowodzie Prędkość grupowa paczki falowej Paczka falowa jest superpozycją fal o różnej częstości biegnących wzdłuż osi z.
Bardziej szczegółowoMetody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane
Bardziej szczegółowoProgramowanie celowe #1
Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem
Bardziej szczegółowo1 Układy równań liniowych
II Metoda Gaussa-Jordana Na wykładzie zajmujemy się układami równań liniowych, pojawi się też po raz pierwszy macierz Formalną (i porządną) teorią macierzy zajmiemy się na kolejnych wykładach Na razie
Bardziej szczegółowo13. Równania różniczkowe - portrety fazowe
13. Równania różniczkowe - portrety fazowe Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie rzegorz Kosiorowski (Uniwersytet Ekonomiczny 13. wrównania Krakowie) różniczkowe - portrety fazowe 1 /
Bardziej szczegółowoProjekt 6: Równanie Poissona - rozwiązanie metodą algebraiczną.
Projekt 6: Równanie Poissona - rozwiązanie metodą algebraiczną. Tomasz Chwiej 9 sierpnia 18 1 Wstęp 1.1 Dyskretyzacja n y V V 1 V 3 1 j= i= 1 V 4 n x Rysunek 1: Geometria układu i schemat siatki obliczeniowej
Bardziej szczegółowoInformatyka i komputerowe wspomaganie prac inżynierskich
Informatyka i komputerowe wspomaganie prac inżynierskich Dr Zbigniew Kozioł - wykład Dr Grzegorz Górski - laboratorium Wykład III Numeryczne rozwiązywanie równań różniczkowych. MES, Metoda Elementów Skończonych
Bardziej szczegółowoPodstawy MATLABA, cd.
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka Podstawy MATLABA, cd. 1. Wielomiany 1.1. Definiowanie
Bardziej szczegółowoMathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje
Bardziej szczegółowoROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH
Transport, studia I stopnia Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym
Bardziej szczegółowo5.1. Powstawanie i rozchodzenie się fal mechanicznych.
5. Fale mechaniczne 5.1. Powstawanie i rozchodzenie się fal mechanicznych. Ruch falowy jest zjawiskiem bardzo rozpowszechnionym w przyrodzie. Spotkałeś się z pewnością w życiu codziennym z takimi pojęciami
Bardziej szczegółowo1 Metody rozwiązywania równań nieliniowych. Postawienie problemu
1 Metody rozwiązywania równań nieliniowych. Postawienie problemu Dla danej funkcji ciągłej f znaleźć wartości x, dla których f(x) = 0. (1) 2 Przedział izolacji pierwiastka Będziemy zakładać, że równanie
Bardziej szczegółowoFunkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.
Funkcje wymierne Jerzy Rutkowski Teoria Przypomnijmy, że przez R[x] oznaczamy zbiór wszystkich wielomianów zmiennej x i o współczynnikach rzeczywistych Definicja Funkcją wymierną jednej zmiennej nazywamy
Bardziej szczegółowoMetody numeryczne I Równania nieliniowe
Metody numeryczne I Równania nieliniowe Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/66 Równania nieliniowe 1. Równania nieliniowe z pojedynczym pierwiastkiem
Bardziej szczegółowoRÓWNANIA NIELINIOWE Maciej Patan
RÓWNANIA NIELINIOWE Maciej Patan Uniwersytet Zielonogórski Przykład 1 Prędkość v spadającego spadochroniarza wyraża się zależnością v = mg ( 1 e c t) m c gdzie g = 9.81 m/s 2. Dla współczynnika oporu c
Bardziej szczegółowoEgzamin z Metod Numerycznych ZSI, Grupa: A
Egzamin z Metod Numerycznych ZSI, 06.2005. Grupa: A Nazwisko: Imię: Numer indeksu: Ćwiczenia z: Data: Część 1. Test wyboru, max 36 pkt Zaznacz prawidziwe odpowiedzi literą T, a fałszywe N. Każda prawidłowa
Bardziej szczegółowoMetody rozwiązania równania Schrödingera
Metody rozwiązania równania Schrödingera Równanie Schrödingera jako algebraiczne zagadnienie własne Rozwiązanie analityczne dla skończonej i nieskończonej studni potencjału Problem rozwiązania równania
Bardziej szczegółowo1 Równania różniczkowe zwyczajne o rozdzielonych zmiennych
Równania różniczkowe zwyczajne o rozdzielonych zmiennych Definicja. Równaniem różniczkowym o rozdzielonych zmiennych nazywamy równanie postaci p(y) = q() (.) rozwiązanie równania sprowadza się do postaci
Bardziej szczegółowo2. Układy równań liniowych
2. Układy równań liniowych Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2017/2018 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 2. Układy równań liniowych zima 2017/2018 1 /
Bardziej szczegółowoWykład FIZYKA I. 11. Fale mechaniczne. Dr hab. inż. Władysław Artur Woźniak
Wykład FIZYKA I 11. Fale mechaniczne Dr hab. inż. Władysław Artur Woźniak Instytut Fizyki Politechniki Wrocławskiej http://www.if.pwr.wroc.pl/~wozniak/fizyka1.html FALA Falą nazywamy każde rozprzestrzeniające
Bardziej szczegółowoEgzamin z Metod Numerycznych ZSI, Egzamin, Gr. A
Egzamin z Metod Numerycznych ZSI, 06.2007. Egzamin, Gr. A Imię i nazwisko: Nr indeksu: Section 1. Test wyboru, max 33 pkt Zaznacz prawidziwe odpowiedzi literą T, a fałszywe N. Każda prawidłowa odpowiedź
Bardziej szczegółowoTreść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.
. Metoda eliminacji. Treść wykładu i ich macierze... . Metoda eliminacji. Ogólna postać układu Układ m równań liniowych o n niewiadomych x 1, x 2,..., x n : a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21
Bardziej szczegółowoMetoda elementów skończonych
Metoda elementów skończonych Wraz z rozwojem elektronicznych maszyn obliczeniowych jakimi są komputery zaczęły pojawiać się różne numeryczne metody do obliczeń wytrzymałości różnych konstrukcji. Jedną
Bardziej szczegółowoCałkowanie numeryczne
Całkowanie numeryczne Poniżej omówione zostanie kilka metod przybliżania operacji całkowania i różniczkowania w szczególności uzależnieniu pochodnej od jej różnic skończonych gdy równanie różniczkowe mamy
Bardziej szczegółowoFunkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska
Funkcje liniowe i wieloliniowe w praktyce szkolnej Opracowanie : mgr inż. Renata Rzepińska . Wprowadzenie pojęcia funkcji liniowej w nauczaniu matematyki w gimnazjum. W programie nauczania matematyki w
Bardziej szczegółowoFunkcja liniowa - podsumowanie
Funkcja liniowa - podsumowanie 1. Funkcja - wprowadzenie Założenie wyjściowe: Rozpatrywana będzie funkcja opisana w dwuwymiarowym układzie współrzędnych X. Oś X nazywana jest osią odciętych (oś zmiennych
Bardziej szczegółowoZadania 1. Czas pracy przypadający na jednostkę wyrobu (w godz.) M 1. Wyroby
Zadania 1 Przedsiębiorstwo wytwarza cztery rodzaje wyrobów: A, B, C, D, które są obrabiane na dwóch maszynach M 1 i M 2. Czas pracy maszyn przypadający na obróbkę jednostki poszczególnych wyrobów podany
Bardziej szczegółowoĆwiczenia nr 7. TEMATYKA: Krzywe Bézier a
TEMATYKA: Krzywe Bézier a Ćwiczenia nr 7 DEFINICJE: Interpolacja: przybliżanie funkcji za pomocą innej funkcji, zwykle wielomianu, tak aby były sobie równe w zadanych punktach. Poniżej przykład interpolacji
Bardziej szczegółowoNumeryczne rozwiązywanie równań różniczkowych ( )
Numeryczne rozwiązywanie równań różniczkowych Równanie różniczkowe jest to równanie, w którym występuje pochodna (czyli różniczka). Przykładem najprostszego równania różniczkowego może być: y ' = 2x które
Bardziej szczegółowoWstęp do metod numerycznych Rozwiazywanie równań algebraicznych. P. F. Góra
Wstęp do metod numerycznych Rozwiazywanie równań algebraicznych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2010 Co to znaczy rozwiazać równanie? Przypuśmy, że postawiono przed nami problem rozwiazania
Bardziej szczegółowoTEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Bardziej szczegółowoPodstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują
Bardziej szczegółowo1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Bardziej szczegółowo1. PODSTAWY TEORETYCZNE
1. PODSTAWY TEORETYCZNE 1 1. 1. PODSTAWY TEORETYCZNE 1.1. Wprowadzenie W pierwszym wykładzie przypomnimy podstawowe działania na macierzach. Niektóre z nich zostały opisane bardziej szczegółowo w innych
Bardziej szczegółowox y
Przykłady pytań na egzamin końcowy: (Uwaga! Skreślone pytania nie obowiązują w tym roku.). Oblicz wartość interpolacji funkcjami sklejanymi (przypadek (case) a), dla danych i =[- 4 5], y i =[0 4 -]. Jaka
Bardziej szczegółowoMETODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska
METODY NUMERYCZNE Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą prof. dr hab.inż. Katarzyna Zakrzewska Met.Numer. Wykład 4 1 Rozwiązywanie równań nieliniowych z jedną niewiadomą
Bardziej szczegółowo1 Symulacja procesów cieplnych 1. 2 Algorytm MES 2. 3 Implementacja rozwiązania 2. 4 Całkowanie numeryczne w MES 3. k z (t) t ) k y (t) t )
pis treści ymulacja procesów cieplnych Algorytm ME 3 Implementacja rozwiązania 4 Całkowanie numeryczne w ME 3 ymulacja procesów cieplnych Procesy cieplne opisuje równanie różniczkowe w postaci: ( k x (t)
Bardziej szczegółowoRozdział 1 PROGRAMOWANIE LINIOWE
Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując
Bardziej szczegółowoII. RÓŻNICZKOWANIE I CAŁKOWANIE NUMERYCZNE Janusz Adamowski
II. RÓŻNICZKOWANIE I CAŁKOWANIE NUMERYCZNE Janusz Adamowski 1 1 Różniczkowanie numeryczne Rozważmy funkcję f(x) określoną na sieci równoodległyc węzłów. Funkcja f(x) może być dana za pomocą wzoru analitycznego
Bardziej szczegółowoLaboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych
Uniwersytet Zielonogórski Wydział Informatyki, Elektrotechniki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Elektrotechnika niestacjonarne-zaoczne pierwszego stopnia z tyt. inżyniera
Bardziej szczegółowoRozważania rozpoczniemy od fal elektromagnetycznych w próżni. Dla próżni równania Maxwella w tzw. postaci różniczkowej są następujące:
Rozważania rozpoczniemy od fal elektromagnetycznych w próżni Dla próżni równania Maxwella w tzw postaci różniczkowej są następujące:, gdzie E oznacza pole elektryczne, B indukcję pola magnetycznego a i
Bardziej szczegółowoRozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego
Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego WMS, 2019 1 Wstęp Niniejszy dokument ma na celu prezentację w teorii i na przykładach rozwiązywania szczególnych typów równań
Bardziej szczegółowoWidmo fal elektromagnetycznych
Czym są fale elektromagnetyczne? Widmo fal elektromagnetycznych dr inż. Romuald Kędzierski Podstawowe pojęcia związane z falami - przypomnienie pole falowe część przestrzeni objęta w danej chwili falą
Bardziej szczegółowo1. BILANSOWANIE WIELKOŚCI FIZYCZNYCH
1. BILANSOWANIE WIELKOŚCI FIZYCZNYCH Ośrodki materialne charakteryzują dwa rodzaje różniących się zasadniczo od siebie wielkości fizycznych: globalne (ekstensywne) przypisane obszarowi przestrzeni fizycznej,
Bardziej szczegółowoMetody numeryczne Wykład 4
Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania
Bardziej szczegółowoMetody rozwiązywania równań nieliniowych
Metody rozwiązywania równań nieliniowych Rozwiązywanie równań nieliniowych Ogólnie równanie o jednej niewiadomej x można przedstawić w postaci f ( x)=0, x R, (1) gdzie f jest wystarczająco regularną funkcją.
Bardziej szczegółowoSIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa
SIMR 06/07, Analiza, wykład, 07-0- Przestrzeń wektorowa Przestrzeń wektorowa (liniowa) - przestrzeń (zbiór) w której określone są działania (funkcje) dodawania elementów i mnożenia elementów przez liczbę
Bardziej szczegółowoMetody Obliczeniowe Mikrooptyki i Fotoniki
Metody Obliczeniowe Mikrooptyki i Fotoniki https://www.igf.fuw.edu.pl/pl/courses/lectures/metody-obliczen-95-021c/ Podstawy metody różnic skończonych (Basics of finite-difference methods) Podstawy metody
Bardziej szczegółowoAlgorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Bardziej szczegółowoFala jest zaburzeniem, rozchodzącym się w ośrodku, przy czym żadna część ośrodka nie wykonuje zbyt dużego ruchu
Ruch falowy Fala jest zaburzeniem, rozchodzącym się w ośrodku, przy czym żadna część ośrodka nie wykonuje zbyt dużego ruchu Fala rozchodzi się w przestrzeni niosąc ze sobą energię, ale niekoniecznie musi
Bardziej szczegółowoMETODY OBLICZENIOWE. Projekt nr 3.4. Dariusz Ostrowski, Wojciech Muła 2FD/L03
METODY OBLICZENIOWE Projekt nr 3.4 Dariusz Ostrowski, Wojciech Muła 2FD/L03 Zadanie Nasze zadanie składało się z dwóch części: 1. Sformułowanie, przy użyciu metody Lagrange a II rodzaju, równania różniczkowego
Bardziej szczegółowoRównania dla potencjałów zależnych od czasu
Równania dla potencjałów zależnych od czasu Potencjały wektorowy A( r, t i skalarny ϕ( r, t dla zależnych od czasu pola elektrycznego E( r, t i magnetycznego B( r, t definiujemy poprzez następujące zależności
Bardziej szczegółowoRÓWNANIA RÓŻNICZKOWE WYKŁAD 2
RÓWNANIA RÓŻNICZKOWE WYKŁAD 2 Równania różniczkowe o zmiennych rozdzielonych Równania sprowadzalne do równań o zmiennych rozdzielonych Niech f będzie funkcją ciągłą na przedziale (a, b), spełniającą na
Bardziej szczegółowoFunkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.
Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne. Funkcja homograficzna. Definicja. Funkcja homograficzna jest to funkcja określona wzorem f() = a + b c + d, () gdzie współczynniki
Bardziej szczegółowoMETODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski
METODA SYMPLEKS Maciej Patan Uniwersytet Zielonogórski WSTĘP Algorytm Sympleks najpotężniejsza metoda rozwiązywania programów liniowych Metoda generuje ciąg dopuszczalnych rozwiązań x k w taki sposób,
Bardziej szczegółowoZad. 3: Układ równań liniowych
1 Cel ćwiczenia Zad. 3: Układ równań liniowych Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich
Bardziej szczegółowoFale elektromagnetyczne
Fale elektromagnetyczne dr inż. Ireneusz Owczarek CMF PŁ ireneusz.owczarek@p.lodz.pl http://cmf.p.lodz.pl/iowczarek 2012/13 Plan wykładu Spis treści 1. Analiza pola 2 1.1. Rozkład pola...............................................
Bardziej szczegółowo1.1 Przegląd wybranych równań i modeli fizycznych. , u x1 x 2
Temat 1 Pojęcia podstawowe 1.1 Przegląd wybranych równań i modeli fizycznych Równaniem różniczkowym cząstkowym rzędu drugiego o n zmiennych niezależnych nazywamy równanie postaci gdzie u = u (x 1, x,...,
Bardziej szczegółowoFUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe
FUNKCJA LINIOWA - WYKRES Wzór funkcji liniowej (postać kierunkowa) Funkcja liniowa to funkcja o wzorze: y = ax + b a i b to współczynniki funkcji, które mają wartości liczbowe Szczególnie ważny w postaci
Bardziej szczegółowoMacierze. Rozdział Działania na macierzach
Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy
Bardziej szczegółowoW wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku.
W wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku. Nie wolno dzielić przez zero i należy sprawdzić, czy dzielna nie jest równa zeru. W dziedzinie liczb
Bardziej szczegółowoAnaliza stateczności zbocza
Przewodnik Inżyniera Nr 25 Aktualizacja: 06/2017 Analiza stateczności zbocza Program: MES Plik powiązany: Demo_manual_25.gmk Celem niniejszego przewodnika jest analiza stateczności zbocza (wyznaczenie
Bardziej szczegółowoMatematyka licea ogólnokształcące, technika
Matematyka licea ogólnokształcące, technika Opracowano m.in. na podstawie podręcznika MATEMATYKA w otaczającym nas świecie zakres podstawowy i rozszerzony Funkcja liniowa Funkcję f: R R określoną wzorem
Bardziej szczegółowoROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)
ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL 1. Problem Rozważmy układ dwóch równań z dwiema niewiadomymi (x 1, x 2 ): 1 x1 sin x2 x2 cos x1 (1) Nie jest
Bardziej szczegółowoUkłady VLSI Bramki 1.0
Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie
Bardziej szczegółowoZaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 4. Równania różniczkowe zwyczajne podstawy teoretyczne
Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 4. Równania różniczkowe zwyczajne podstawy teoretyczne P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Wstęp
Bardziej szczegółowoUKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH
Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać układu równań liniowych Układ liniowych równań algebraicznych
Bardziej szczegółowo4.2 Analiza fourierowska(f1)
Analiza fourierowska(f1) 179 4. Analiza fourierowska(f1) Celem doświadczenia jest wyznaczenie współczynników szeregu Fouriera dla sygnałów okresowych. Zagadnienia do przygotowania: szereg Fouriera; sygnał
Bardziej szczegółowoWykład 9: Fale cz. 1. dr inż. Zbigniew Szklarski
Wykład 9: Fale cz. 1 dr inż. Zbigniew Szklarski szkla@agh.edu.pl http://layer.uci.agh.edu.pl/z.szklarski/ Klasyfikacja fal fale mechaniczne zaburzenie przemieszczające się w ośrodku sprężystym, fale elektromagnetyczne
Bardziej szczegółowoPODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.
WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI Katedra Inżynierii Systemów Sterowania PODSTAWY AUTOMATYKI MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.
Bardziej szczegółowoSpacery losowe generowanie realizacji procesu losowego
Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z
Bardziej szczegółowo