Projekt 8 - Metoda Róznic Skończonych Cz_2
Transkrypt
Projekt 8 - Metoda Róznic Skończonych Cz_2
W Informatyka Podstawy Programowania 2016/2017 Projekt 8 8. METODA RÓŻNIC SKOŃCZONYCH CZĘŚĆ II 8.1 Rozwiązywanie równania dyfuzji MRS. Równanie dyfuzji pod względem klasyfikacji równań różniczkowych jest równaniem parabolicznym i opisuje się nim szereg procesów fizycznych, m.in. nieustalony przepływ filtracyjny oraz przepływ ciepła. Rozważmy na początek jednowymiarowe równanie przepływu filtracyjnego przez ośrodek jednorodny o postaci: ∂u ∂ 2u (8.1) =D 2, ∂t ∂x gdzie: u ( x, t ) oznacza wysokość piezometryczną cieczy, D jest współczynnikiem dyfuzji, który w równaniu filtracji jest zależny od współczynnika filtracji i porowatości efektywnej. Załóżmy ponadto, że wartość tego współczynnika jest stała. Do rozwiązania tego zagadnienia potrzebne jest zdefiniowanie warunków początkowych i brzegowych: u ( x, 0 ) = f ( x ) x ∈ x A , xB , u ( 0, t ) = u A ( t ) dla t ≥ 0, u ( l , t ) = u B ( t ) dla t ≥ 0. 8.1.1 Metoda jawna. Schemat jawny jest najprostszym sposobem zapisu równania (8.1) w postaci różnicowej: 1 (8.2) (8.3) Informatyka Podstawy Programowania W uin +1 − uin u n − 2uin + uin−1 , = D i +1 ∆t ∆x 2 2016/2017 (8.4) z błędem obcięcia pierwszego rzędu O ( ∆t + ∆x 2 ) . Schemat ten jest stabilny warunkowo, tzn. jeśli spełniony jest warunek: 1 0≤r ≤ , 2 (8.5) D∆t . ∆x 2 (8.6) gdzie: r= Należy zauważyć [Anderson, 1984], że tą metodą można wyznaczyć wartości u ( x, t ) dla t > 0 w punktach wewnątrz obszaru (rys.8.1) bez konieczności korzystania z warunków brzegowych. Świadczy to o słabej aproksymacji równania dyfuzji tą metodą, bowiem rozwiązanie dla każdego punktu obszaru powinno istotnie zależeć od warunków brzegowych. Rys. 8.1 Schemat obliczeń wartości funkcji w puncie P, wynikającej z warunku początkowego. W metodzie jawnej nie można także stosować aproksymacji pochodnej względem czasu za pomocą różnicy centralnej (metoda Richardsona), bowiem ten schemat jest bezwarunkowo niestabilny dla wszystkich ∆t . Dlatego do rozwiązania zagadnienia dyfuzji powszechnie stosowany jest schemat niejawny, stanowiący podstawię różnych metod obliczeniowych, z których kilka zostanie omówionych w następnym punkcie. 8.1.2 Metody niejawne. W prostym sformułowaniu metody niejawnej prawa strona równania (8.4) zależeć będzie od wartości a priori nieznanych w kroku czasowym n + 1 : uin +1 − uin u n +1 − 2uin +1 + uin−+11 . = D i +1 ∆t ∆x 2 2 (8.7) Informatyka Podstawy Programowania W 2016/2017 Schemat ten prowadzi do utworzenia układu równań algebraicznych względem nieznanych wartości funkcji u ( x, t ) w węzłach siatki na danym poziomie czasowym n + 1 . Metoda ta jest bezwarunkowo stabilna z błędem obcięcia pierwszego rzędu O ( ∆t + ∆x 2 ) . Macierz układu jest trójdiagonalna i stąd może być rozwiązywana za pomocą szybkich algorytmów, np. metodą rozkładu na macierz trójkątną górną i dolną lub metodą iteracyjną, np. Gaussa-Seidela [Fortuna, 2005]. Zaletą tej metody jest możliwość stosowania stosunkowo dużych kroków czasowych, bez utraty zbieżności rozwiązania. Odmienny algorytm metody niejawnej został zaproponowany przez Cranka i Nicolsona w 1947 roku. W ich metodzie został zastosowany następujący schemat różnicowy: uin +1 − uin uin++11 − 2uin +1 + uin−+11 + uin+1 − 2uin + uin−1 , =D ∆t 2 ∆x 2 (8.8) którego prawa strona wyraża średnią arytmetyczną drugiej pochodnej względem współrzędnej x z poziomów czasowych n i n + 1 . Schemat ten jest bezwarunkowo stabilny, a jego zaletą jest wyższa dokładność wynikająca z błędu oszacowania O ( ∆t 2 + ∆x 2 ) . Z pośród wielu metod różnic skończonych do rozwiązania jednowymiarowego równania dyfuzji wartą odnotowania jest metoda Richtmyer’a i Mortona, w której pochodna względem czasu jest aproksymowana na trzech poziomach czasowych: uin +1 − uin u n − uin −1 u n +1 − 2uin +1 + uin−+11 , (8.9) −θ i = D i +1 ∆t ∆t ∆x 2 z błędem obcięcia wynoszącym O ( ∆t + ∆x 2 ) , poza dwoma wartościami θ dla których (1 + θ ) dokładność jest wyższa, a mianowicie: • • θ = , dla której błąd obcięcia jest równy O ( ∆t 2 + ∆x 2 ) , 1 2 1 ∆x 2 , dla której błąd obcięcia jest równy O ( ∆t 2 + ∆x 4 ) . θ= + 2 12 D∆t 8.1.3 Rozwiązywanie dwuwymiarowego równania dyfuzji MRS. Równanie dwuwymiarowe jest dane wzorem: ∂ 2 u ∂ 2u ∂u = D 2 + 2 , ∂t ∂x ∂y 3 (8.10) Informatyka Podstawy Programowania W 2016/2017 Zastosowanie metody jawnej wymagać będzie spełnienia warunku zbieżności danego wzorem (8.4) równocześnie dla obu składowych x i y . Dla siatki 1 kwadratowej oznacza to, że 0 ≤ r ≤ , co wymuszać będzie bardzo mały krok 4 czasowy i obliczenia tą metodą stają się mało praktyczne. Prosty schemat niejawny dany jest wzorem: uin, +j 1 − uin, j ∆t uin++1,1 j − 2uin, +j 1 + uin−+1,1 j uin, +j 1+1 − 2uin, +j 1 + uin, +j 1−1 = D + , ∆x 2 ∆y 2 (8.11) który można przekształcić dla siatki kwadratowej ∆x = ∆y = h do postaci: Cuin, j = ( C + 4 ) uin, +j 1 − uin++1,1 j − uin−+1,1 j − uin, +j 1+1 − uin, +j −11 , gdzie: C= h2 D∆t (8.12) (8.13) jest odwrotnością tzw. dyfuzyjnej liczby Couranta. Schemat ten jest stabilny i prowadzi do powstania układu równań algebraicznych z macierzą pasmową. Szerokość pasma jest zależna od geometrii obszaru i sposobu numerowania węzłów. Schemat Cranka i Nicolsona jest jak w przypadku równania jednowymiarowego bezwarunkowo stabilny i dany jest wzorem: uin, +j 1 − uin, j = ∆t (8.14) n +1 n +1 n +1 n n n n +1 n +1 n +1 n n n D ui +1, j − 2ui , j + ui −1, j + ui +1, j − 2ui , j + ui −1, j ui , j +1 − 2ui , j + ui , j −1 + ui , j +1 − 2ui , j + ui , j −1 = + . 2 2 ∆x 2 2 ∆y 2 Wzór ten można zmodyfikować następująco: −uin, +j −11 − uin−+1,1 j + auin, +j 1 − uin++1,1 j − uin, +j +11 = bin, j , gdzie: a = C + 4 = (8.15) h2 n h2 + 4 , bin, j = uin+1, j + uin−1, j + uin, j +1 + uin, j −1 − 4 1 + ui , j . D ∆t D∆t Dzięki takiej postaci można w prosty sposób konstruować układ równań algebraicznych. Przyjmijmy obszar rozwiązania w postaci kwadratu o bokach 6x6, jak na rysunku 9.11, z warunkami brzegowymi Dirichleta w postaci: 4 Informatyka Podstawy Programowania W u ( x, y, t ) = u ( x, y, t ) dla 2016/2017 x, y ∈ ∂Ω, t ≥ 0 (8.16) Rys. 8.2 Obszar obliczeniowy do równania (8.15) Zapisując po kolei wierszami równania dla każdego węzła wewnętrznego otrzymamy układ równań z 16 niewiadomymi, którego macierz została przedstawiona poniżej: a −1 0 0 −1 0 0 0 0 0 0 0 0 0 0 0 −1 0 0 −1 0 0 0 0 0 a −1 0 0 −1 a −1 0 0 −1 a 0 0 0 0 a −1 0 0 −1 0 −1 0 0 0 0 −1 0 0 0 0 −1 0 0 0 0 −1 0 0 0 0 −1 0 0 0 0 −1 0 −1 0 0 −1 a −1 0 0 −1 a −1 0 0 −1 a 0 0 0 0 a −1 0 0 −1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 −1 0 0 0 0 −1 0 0 0 0 −1 0 −1 0 0 −1 a −1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 −1 0 0 n +1 n b2,2 0 u2,2 + u2,1 + u1,2 n +1 n 0 0 0 0 0 0 u3,2 b3,2 + u3,1 n +1 n b4,2 0 0 0 0 0 0 u4,2 + u4,1 n +1 n 0 0 0 0 0 0 u5,2 b5,2 + u5,1 + u6,2 n +1 b n + u 0 0 0 0 0 0 u2,3 2,3 1,3 n +1 n 0 0 0 0 0 0 u3,3 b3,3 n +1 n −1 0 0 0 0 0 u b 4,n +31 4,3 n 0 −1 0 0 0 0 u5,3 b5,3 + u6,3 ⋅ n +1 = n 0 0 −1 0 0 0 u2,4 b2,4 + u1,4 n +1 n b3,4 −1 0 0 −1 0 0 u3,4 n +1 n a −1 0 0 −1 0 u4,4 b4,4 n +1 b n + u −1 a 0 0 0 −1 u5,4 6,4 n +1 5,4 n 0 0 a −1 0 0 u2,5 b2,5 + u1,5 + u2,6 n n +1 0 0 −1 a −1 0 u3,5 b3,5 + u3,6 n +1 n b4,5 −1 0 0 −1 a −1 u4,5 + u4,6 n +1 n 0 −1 0 0 −1 a u5,5 b5,6 + u6,5 + u5,6 0 0 0 0 0 Otrzymana macierz jest pasmowa, z szerokością pasma składającego się z 9 elementów. Układ ten można rozwiązać dowolną metodą, jednakże w rzeczywistych obliczeniach przy dużych macierzach zwykle stosuje się metodę iteracyjną. Peaceman, Rachford i Douglas opracowali w 1955 roku metodę dla zadań dwuwymiarowych, która ma zaletę metody jednowymiarowej, t.j trójdiagonlaną macierz i jest bezwarunkowo stabilna. Metodą tą rozwiązuje się zagadnienie dyfuzji 1 w dwóch krokach – w pierwszym, na poziomie czasowym n, n + , rozwiązanie 2 5 W Informatyka Podstawy Programowania 2016/2017 odbywa się wzdłuż jednej współrzędnej przestrzennej, np. wzdłuż y , aby w kroku 1 drugim, na poziomie czasowym n + , n + 1 , rozwiązać to samo zagadnienie, ale w 2 kierunku drugiej współrzędnej, w tym przypadku x . Algorytm ten został nazwany w skrócie ADI (alternating-direction implicite) i przedstawia się następująco: Krok 1: Krok 2: uin, +j 1 − uin, j uin++1,1 j2 − 2uin, +j 1 2 + uin−+1,1 j2 uin, j +1 − 2uin, j + uin, j −1 = D + . 2 2 ∆t / 2 ∆ ∆ x y n +1 n n +1 2 n +1 2 n +1 2 n +1 n +1 n +1 ui +1, j − 2ui , j + ui −1, j ui , j +1 − 2ui , j + ui , j −1 ui , j − ui , j = D + . 2 2 ∆t / 2 ∆ x ∆ y (8.17) (8.18) Procedurę obliczeniową przedstawiono na rysunku 8.3. Rys. 8.3 Schemat obliczeń w metodzie ADI. Metoda ADI ma dokładność drugiego rzędu z błędem obcięcia O ( ∆t 2 + ∆x 2 + ∆y 2 ) . Można ją rozciągnąć na zagadnienia 3D ([Anderson, 1984]), a wówczas rozwiązanie przebiegałoby w trzech krokach, na następujących poziomach czasowych 1 2 n, n + , n + , n + 1 . 3 3 8.2 Zagadnienia stabilności schematów różnicowych. Rozwiązanie równań różniczkowych metodą numeryczną zawsze będzie różnić się od rozwiązania dokładnego o błąd wynikający z zaokrągleń numerycznych przy operacjach arytmetycznych oraz, w przypadku metody różnic skończonych, błąd obcięcia wynikający z pominięcia wyższych członów rozwinięcia Taylora przy aproksymowaniu pochodnej. Posługując się metodą numeryczną oczekujemy, że okaże się ona zbieżna, co oznacza, że różnica w każdym punkcie obszaru pomiędzy rozwiązaniem dokładnym a przybliżonym będzie malała wraz ze zmniejszaniem się kroku czasowego i przestrzennego. 6 W Informatyka Podstawy Programowania 2016/2017 Warunki zbieżności rozwiązania metodą różnic skończonych zostały sformułowane przez Laxa [Szymkiewicz, 2003], [Willis, 1987] w postaci stwierdzenia, że warunkiem koniecznym i wystarczającym zbieżności jest, aby zagadnienie początkowobrzegowe było poprawnie postawione oraz zachowana była zgodność i stabilność schematu różnicowego. Problem poprawności zagadnienia początkowego-brzegowego można w sposób bardzo ogólny określić jako niewrażliwość rozwiązania równania różniczkowego na niewielkie zaburzenie danych wejściowych. Zgodność jest rozumiana jako przejście schematu różnicowego w równanie różniczkowe w granicy przy ∆t , ∆x → 0 [Szymkiewicz, 2003]. Rozważmy to na przykładzie równania dyfuzji (8.1) danego schematem różnicowym jawnym (8.4): uin +1 − uin u n − 2uin + uin−1 . = D i +1 ∆t ∆x 2 Rozwijając w szereg Taylora wyrażenia na uin +1 , uin+1 , uin−1 i podstawiając je następnie do schematu różnicowego (8.4) otrzymujemy: n ∂u ∆t 2 ∂ 2u u + ∆t + + ... − uin ∂t i 2 ∂t 2 i n n i ∆t = n n n ∂u ∆x 2 ∂ 2u ∆x3 ∂ 3u ∆x 4 ∂ 4u u + ∆x + + + + ... ∂x i 2 ∂x 2 i 6 ∂x3 i 24 ∂x 4 i n n i D ∆x 2 +D n (8.19) n ∂u ∆x ∂ u ∆x ∂ u ∆x ∂ u + − + + ... 2 3 ∂x i 2 ∂x i 6 ∂x i 24 ∂x 4 i n −2uin + uin − ∆x n + 2 2 3 3 ∆x 2 4 4 = n n ∂ 2u n ∆x 2 ∂ 4u n ∂u ∆t 2 ∂ 2u , + + = D + ... ... + ∂x 2 i 12 ∂x 4 i ∂t i 2 ∂t 2 i co przy przejściu do granicy przy ∆t , ∆x → 0 , prowadzi do poprawnej postaci równania różniczkowego dyfuzji dla każdego węzła obszaru i poziomu czasowego, a zatem schemat ten jest zgodny. Zagadnienie stabilności metody jest analizą wzrostu lub zmniejszania się błędów w procesie rozwiązywania metodą różnic skończonych. Najczęściej do badania stabilności stosuje się analizę Neumana [Szymkiewicz, 2000, 2003], [Gryboś,1989], [Anderson, 1984], [Willis, 1987], która polega na przedstawieniu błędu obcięcia w postaci rozwinięcia w szereg Fouriera, a następnie podstawienia go do schematu różnicowego. Procedurę tę możemy prześledzić również na przykładzie jednowymiarowego równania dyfuzji (8.1). 7 W Informatyka Podstawy Programowania 2016/2017 Jeśli założyć, że wartość obliczona uin, j różni się od wartości dokładnej U in, j o ε in, j to możemy równanie (8.4) zapisać następująco: U in +1 + ε in +1 − U in − ε in U n + ε n − 2U in − 2ε in + U in−1 + ε in−1 . = D i +1 i +1 ∆t ∆x 2 (8.20) Ponieważ rozwiązanie dokładne musi spełniać powyższe równanie to schemat różnicowy musi być również prawdziwy dla błędu: ε in +1 − ε in ε n − 2ε in + ε in−1 . (8.21) = D i +1 ∆t ∆x 2 Przedstawmy błąd jako szereg Fouriera: ε nj = ∑ Amn ei m k j ∆x , (8.22) m gdzie: i = −1 , k jest liczbą falową daną wzorem: k = 2π λ , M jest liczbą przedziałów ∆x zawierających się w długości fali λ , Amn jest amplitudą fali dla m -tego członu szeregu i poziomu czasowego n . Ponieważ równanie (8.21) jest liniowe i obowiązuje zasada superpozycji, możemy analizować zachowanie pojedynczego członu szeregu opisanego równaniem (8.22). Dla członu pierwszego m = 1 otrzymamy: ε nj = An eiϕ j , gdzie: ϕ = k ∆x = (8.23) 2π . M Po podstawieniu (8.23) do równania (8.21) otrzymamy: An +1eiϕ j = An eiϕ j + r ( An eiϕ j +1 − 2 An eiϕ j + An eiϕ j −1 ) , (8.24) D ∆t , a po podzieleniu obu stron przez An eiϕ j i uwzględnieniu, że 2 ∆x iϕ e + e− iϕ : cos ϕ = 2 gdzie: r = An +1 ϕ = 1 + r ( ε iϕ − 2 + ε − iϕ ) = 1 + 2r ( cos ϕ − 1) = 1 − 4r sin 2 . n A 2 (8.25) Wyraz po lewej stronie równania określa się jako współczynnik wzmocnienia amplitudy An +1 G = n dla przejścia z poziomu czasowego n na n + 1 . Z zapisu tego wynika, że A 8 W Informatyka Podstawy Programowania 2016/2017 stabilność rozwiązania jest zapewniona, jeśli dla każdego czynnika szeregu Fouriera G ≤ 1. Można więc warunek stabilności zapisać następująco: ° 1 2 ϕ 1 − 4r sin ≤1⇒ 2 2° 4r sin 2 4r sin 2 ϕ 2 ϕ 2 >0 (8.26) − 1 ≤ 1. Pierwszy warunek jest spełniony zawsze gdyż r > 0 , drugi spełniony będzie tylko gdy 1 D∆t 1 r ≤ , co oznacza że ≤ i jest to ograniczenie długości kroku czasowego przy 2 ∆x 2 2 zadanej wartości przedziału siatki ∆x . Jeżeli wykonamy podobną analizę, ale dla schematu niejawnego, danego wzorem (8.11): 1= An An ϕ iϕ − iϕ + r ε − 2 + ε = − 4r sin 2 . ( ) n +1 n +1 A A 2 (8.27) to otrzymamy następujący warunek: 1 ϕ ϕ = 1 + 4r sin 2 ⇒ 1 + 4r sin 2 ≥ 1 , G 2 2 (8.28) który jest zawsze spełniony niezależnie od stosunku kroku czasowego do przestrzennego. W przedstawionych rozważaniach nie uwzględnialiśmy warunków początkowych i brzegowych, ale zakłada się, że one są zawsze dokładne, a zatem błąd ich jest równy zeru. Powyższe analizy można przeprowadzić dla innych rodzajów równań różniczkowych, równań dwu i trzywymiarowych oraz układów równań. Istnieją także inne metody badania stabilności schematów różnicowych, których szczegółowy opis można znaleźć w literaturze [Fortuna, 2005], [Szymkiewicz 2000, 2003], [Anderson, 1984], [Collatz, 1960]. 8.3 Schematy różnicowe do równań cieczy lepkiej nieściśliwej. 8.3.1 Rozwiązanie zagadnienia Stokes`a. W wielu zagadnieniach przepływu wykorzystuje się równanie Stokes`a, opisujące przepływ lepki z pominięciem sił bezwładności. Równanie Stokes`a wykorzystywane są do rozwiązywania zagadnień przepływów "pełzających”, kiedy liczba Reynoldsa jest relatywnie mała i siły bezwładności można pominąć wobec przewagi sił lepkości. Równania te stosuje się także w modelowaniu przepływów przez ośrodki porowate przy wykorzystywaniu teorii homogenizacji, jak to zostało opisane w roz. VI. Rozpatruje się 9 W Informatyka Podstawy Programowania 2016/2017 wówczas zagadnienie brzegowe ośrodka wypełnionego cieczą w skali jego porów, opisane równaniami: − µ∇ 2u + 1 ρ ∇p = f ∇⋅u = 0 w Ω w µ >0 , i (8.29) Ω, (8.30) u = u na brzegu ΓS , warunek periodyczności u, p x = 0 = u, p x = l 1 u, p y = 0 = u, p y = l na brzegu (8.31) ΓF , (8.32) 2 gdzie: u = ( u, v ) współczynnikiem - w R2, kinematycznej, ΓS prędkość lepkości cieczy p oznacza oznacza ciśnienie, brzeg nieprzepuszczalny (np. należący do szkieletu gruntowego), Γ F należącym do cieczy, f jest wektorem sił masowych. µ jest stacjonarny i jest brzegiem Rozwiązania zagadnienia przepływu ustalonego przez komórkę w skali mikro powodują trudności obliczeniowe wynikające z periodyczności warunków brzegowych i założenia o nieściśliwości cieczy. Można powyższy układ rozwiązywać iteracyjnie, aż do osiągnięcia zadanej wielkości błędu rozwiązania, albo założyć, że rozwiązujemy zagadnienie przepływu niestacjonarnego: ∂u = −∇p + µ ∇ 2u + f , ∂t (8.33) z warunkiem początkowym : u = u 0 dla t = 0 w Ω, (8.34) gdzie u 0 jest początkowym rozkładem prędkości w chwili t0 = 0 . Pozostałe warunki brzegowe i równanie ciągłości przepływu pozostają w mocy. Ta komplikacja równania okazuje się być korzystna z punktu widzenia stabilności rozwiązania. Zauważmy, że dla odpowiednio dużych wartości t rozwiązanie zbliżać się będzie do poszukiwanego rozwiązania przepływu stacjonarnego. 10 W Informatyka Podstawy Programowania 2016/2017 Jedna z procedur opartych na metodzie rożnic skończonych, którymi można rozwiązać to zagadnienie, została opisana w pracy [Hirta, 1975], i polega na prowadzeniu obliczeń na dwóch przesuniętych siatkach, osobno do prędkości i osobno do ciśnienia. Elementarną komórkę takiej siatki przedstawiono na rys.8.4, na którym w celu przejrzystości zapisano indeksy zmiennych na siatce przesuniętej w postaci ułamkowej: Rys. 8.4 Rozmieszczenie zmiennych w pojedynczej komórce. Składowe prędkości poziomej i pionowej można wyliczyć z następujących formuł różnicowych: 1 n +1 n n n u i +1 2, j = u i +1 2, j + ∆t ( P i , j − P i +1, j ) + f x + ∆ x 1 1 n n n + µ 2 ( uin+3 2, j − 2uin+1 2, j + uin−1 2, j ) + u − 2 u + u ( ) , i + 1 2, j + 1 i + 1 2, j i + 1 2, j − 1 2 ∆y ∆x 1 n +1 n n n v i , j +1 2 = v i , j +1 2 + ∆t ( P i , j − P i , j +1) + f y + ∆ y 1 1 n n n + µ 2 ( vin+1, j +1 2 − 2vin, j +1 2 + vin−1, j +1 2 ) + v − 2 v + v ( ) i , j + 3 2 i , j + 1 2 i , j − 1 2 ∆ y2 ∆x . (8.35) (8.36) Równanie ciągłości (8.30) w postaci dyskretnej: 1 n +1 n +1 1 n +1 n +1 ui , j − ui −1, j ) + ( ( vi, j − vi , j −1 ) = 0 . ∆x ∆y (8.37) W równaniach tych wprowadzono kinematyczną postać ciśnienia cieczy P = p ρ .Prędkość obliczona z równań (8.35)-(8.36) nie będzie spełniać warunku zanikania dywergencji prędkości (8.37). W prezentowanej metodzie warunek ciągłości 11 W Informatyka Podstawy Programowania 2016/2017 zostanie wprowadzany przez korekcję ciśnienia w każdej komórce. Na przykład gdy dywergencja komórki jest ujemna co oznacza przyrost strumienia masy, ciśnienie ulega zwiększaniu, aby zapobiec temu przyrostowi. Ponieważ w każdej komórce jest jedna wartość ciśnienia, to dywergencja dla każdej komórki może być w ten sposób sprowadzona do zera. Proces ten musi być iteracyjny, bowiem zmiana w jednej komórce oddziaływuje na sąsiednie. Obliczenia prędkości z wzoru (8.35)-(8.36) można wykonywać, przebiegając po całym obszarze na przykład rzędami, zaczynając od skrajnej lewej komórki w najniższym rzędzie. Algorytm przewiduje następnie obliczenie dywergencji całego obszaru z równania (8.37), którą tutaj oznaczymy przez Di , j : Di , j = 1 n +1 1 n +1 ui +1 2, j − uin−+112, j ) + ( ( vi, j +1 2 − vin, +j 1−1 2 ) . ∆x ∆y (8.38) Korekcja ciśnienia, wymagana w celu spełnienia równania ciągłości, będzie równa Pi , j + ∆P , gdzie: ∆P = − Di , j 1 1 2∆t 2 + 2 ∆x ∆ y (8.39) i nowe wartości prędkości dla każdej komórki wynikające z tej korelacji przedstawiają się następująco: ∆t ∆P , ∆x ∆t ∆P → ui −1 2, j − , ∆x ∆t ∆P → vi , j +1 2 + , ∆x ∆t ∆P → vi , j −1 2 − . ∆x ui +1 2, j → ui +1 2, j + ui −1 2, j vi , j +1 2 vi , j −1 2 (8.40) Obliczenia kończą się, gdy wartość dywergencji spełnia warunek dla wszystkich i, j : D i, j ≤ ε (8.41) gdzie ε - jest założoną wartością błędu, którą zwykle przyjmuje się mniejszą niż 10-3. 12 W Informatyka Podstawy Programowania 2016/2017 Warunek brzegowy (8.31) wprowadza się w każdym kroku obliczeniowym. Na brzegach stacjonarnych i nieprzepuszczalnych będzie to zwykle warunek adhezji zerowania składowych prędkości stycznej i normalnej. Wówczas wartości prędkości na tym brzegu należy przyjmować zgodnie z rys. 8.5 i wprowadzać je do programu w każym kroku obliczeniowym. Rys. 8.5 Warunek prędkości na brzegu stacjonarnym. Warunek periodyczności (8.32), np. dla brzegu lewego i prawego, realizuje się przez podstawienie w każdym kroku obliczeniowym: u−1 2, j = uN +1 2, j , u+1 2, j = u N −1 2, j , p1, j = pN , j , v1, j +1 2 = vN , j +1 2 . Stabilność rozwiązania opisanej wyżej procedury obliczeniowej wynika z zastosowanego schematu różnicowego i jest zapewniona, gdy spełnione są następujące warunki nałożone na krok czasowy: ∆x ∆y ∆t < min , , | u | | v | µ∆t < ( ∆ x 2∆ y 2 2 ∆ x2 + ∆ y2 ) . Warunki te zapewniają, iż zarówno zmiana prędkości, jak i intensywność procesu dyfuzji nie będą obejmowały więcej niż 1 komórkę w 1 kroku czasowym. 13 W Informatyka Podstawy Programowania 2016/2017 8.3.2 Rozwiązanie równania Naviera-Stokes`a. W zgadnieniach numerycznej hydrogeologii, a w szczególności w teorii homogenizacji, może zajść konieczność modelowania przepływu cieczy newtonowskiej, który opisany jest równaniem Naviera-Stokes`a oraz równaniem zachowania masy. Dla potrzeb niniejszych rozważań załóżmy, że ciecz jest nieściśliwa i będziemy rozważać przepływ płaski w obszarze Ω ∈ R 2 ograniczonym brzegiem Γ : ∂u 1 + u ⋅ ( ∇u ) = − ∇p + µ∇ 2u w Ω , ∂t ρ (8.42) ∇ ⋅u = 0 . (8.43) Ogólne sformułowanie problemu brzegowo-początkowego przedstawia się jako: u = u na brzegu Γ D , (8.44) ∂u = q na brzegu Γ , N ∂n (8.44) u = u 0 dla t = 0 , (8.45) gdzie: u jest wektorem prędkości, P – ciśnieniem kinematycznym tzn. podzielonym przez gęstość cieczy, µ - współczynnikiem lepkości kinematycznej, Γ D i Γ N są odcinkami brzegu, na których spełniony jest warunek Dirichleta i Neumana i Γ = Γ D ∪ Γ N oraz Γ D ∩ Γ N = ∅ . Równanie gradientu ciśnienia może być wyprowadzone na podstawie przekształcenie równania Naviera-Stokes`a, jednakże taka postać równania jest niedogodna ze względu na trudności w osiągnięciu zbieżności rozwiązania. Bardzo często zamiast tego, wykorzystuje się równanie Poissona dla ciśnienia, które można wyprowadzić przez zastosowanie operatora dywergencji do równania (8.42): ∂u ∇ 2 P = −∇ ⋅ + u ⋅∇u − µ∇ 2u . ∂t (8.46) Zauważmy, że jeżeli skorzystamy z tożsamości matematycznej: 2 ∇ u = ∇ ( ∇ ⋅ u ) − ∇ × ∇ × u , równania (8.43) oraz faktu, że dywergencja rotacji dowolnego pola wektorowego zanika, to pierwszy i ostatni człon po prawej stronie równania (8.47) będzie równy zeru: ∇⋅ ∂u = 0 oraz µ∇ ⋅ ( ∇ 2u ) = 0 ∂t i równanie (8.47) ulegnie znacznemu uproszczeniu: 14 (8.47) W Informatyka Podstawy Programowania ∇ 2 P = −∇ ⋅ ( u ⋅∇u ) . 2016/2017 (8.48) Równanie (8.48) razem z równaniem (8.42) stanowią układ równań, który bywa często stosowany do rozwiązania zagadnienia przepływu cieczy lepkiej. Jednakże, jak podaje [Gresho, 1987], w rozwiązaniach numerycznych takie podejście obarczone jest większym błędem obliczeniowym, niż gdy rozwiązywany jest układ składający się równań: (8.42), (8.43) i (8.47). W związku z tym przyjmiemy układ tych trzech równań do zbudowania odpowiednich analogów różnicowych. Równanie Poissona musi być dla brzegu stacjonarnego uzupełnione warunkiem brzegowym adhezji (brzeg nie jest śliski), który w tym przypadku stanowi zagadnienie Neumana dla ciśnienia: −P + µ ∂un +n⋅ f = 0 ∂n na Γ N , (8.49) gdzie: n jest wektorem normalnym do brzegu skierowany na zewnątrz [Ni, 1995, 1998], [Matyka, 2002]. Jeśli znane są wartości ciśnienia w obszarze (np. na wlocie rozkład hydrostatyczny ciśnienia, ciśnienie atmosferyczne dla zwierciadła swobodnego) to należy przyjąć dodatkowy warunek Dirichleta. Według innych autorów [Gresho, 1987], [Petersson, 2001] należy stosować bardziej złożone formuły warunków brzegowych, których tu nie przytaczamy, a które wynikają wprost z równania Naviera-Stokes`a. Podstawą do wyprowadzenia schematu różnicowego jest zachowawcza postać równania różniczkowego. W równaniu Naviera-Stokes`a występuje człon nieliniowy, związany z konwekcją pędu, który należy przekształcić tak, aby wektor prędkości występował pod znakiem pochodnej. W tym celu można skorzystać z tożsamości : ∂u ∂ u 2 u (8.50) ≡ . ∂x ∂x 2 oraz równania (8.43), uzyskując następującą różniczkową postać tych równań: ∂ 2u ∂ 2u ∂u ∂u 2 ∂uv ∂P =− − − + µ 2 + 2 + fx , ∂t ∂x ∂y ∂x ∂y ∂x ∂ 2v ∂ 2v ∂v ∂v 2 ∂uv ∂P =− − − + µ 2 + 2 + fy. ∂t ∂y ∂x ∂y ∂x ∂y (8.51) Zależności te należy uzupełnić równaniem zachowania masy i równaniem Poissona: ∂u ∂v + =0, ∂x ∂y 15 (8.52) W Informatyka Podstawy Programowania 2016/2017 2 2 ∂ 2u ∂ 2 v ∂2P ∂2P ∂ ∂u ∂v ∂u ∂u ∂v ∂v + = − + − + 2 + − µ ∇ ⋅ 2 + 2 . (8.53) ∂x 2 ∂y 2 ∂t ∂x ∂y ∂x ∂y ∂x ∂y ∂y ∂x Przyjmując schemat siatki różnicowej jak na rysunku 8.6 i oznaczając D = ∇ ⋅ u można powyższy układ równań zastąpić różnicami skończonymi [Matyka, 2002]: u i +1 2, j = u i +1 2, j − n +1 n 2 ∆t n 2 ∆t n n ui +1, j ) − ( uin, j ) + uv )i +1 2, j −1 2 − ( uv )i +1 2, j +1 2 + ( ( ∆y ∆x − ∆t n +1 1 n n n n +1 ( P i +1, j − P i , j ) + µ∆t 2 ( ui +3 2, j − 2ui +1 2, j + ui −1 2, j ) ∆x ∆ x + 1 un − 2uin+1 2, j + uin+1 2, j −1 ) + f x , 2 ( i +1 2, j +1 ∆y v i , j +1 2 = v i , j +1 2 − n +1 n (8.54) 2 ∆t n 2 ∆t n n vi , j +1 ) − ( vin, j ) + uv )i −1 2, j +1 2 − ( uv )i +1 2, j +1 2 + ( ( ∆x ∆y − ∆t n +1 1 n n n n +1 ( P i , j +1 − P i , j ) + µ∆t 2 ( vi +1, j +1 2 − 2vi , j +1 2 + vi −1, j +1 2 ) ∆y ∆x + 1 vn − 2vin, j +1 2 + vin, j −1 2 ) + f y . 2 ( i , j +3 2 ∆y (8.55) Równanie ciągłości (8.30) w postaci różnicowej wyraża się jako: 1 n +1 n +1 1 n +1 n +1 ui , j − ui −1, j ) + ( ( vi, j − vi , j −1 ) = 0 . ∆x ∆y (8.56) Schemat różnicowy dla równania Poissona ma postać: Pi +n1,+1j − 2 Pi ,nj+1 + Pi −n1,+1j ∆ x2 − + Pi ,nj++11 − 2 Pi ,nj+1 + Pi ,nj+−11 ∆y 2 =− Din, j ∆t − 2 1 n 2 n 2 n + 1 ( v n ) 2 − 2 ( v n ) 2 + ( v n ) 2 + u u u − 2 + ( ) ( ) ( ) i + 1, j i , j i − 1, j i, j i , j −1 ∆ y 2 i , j +1 ∆ x 2 2 n n n n ( uv )i +1 2, j +1 2 + ( uv )i −1 2, j −1 2 − ( uv )i +1 2, j −1 2 − ( uv )i −1 2, j +1 2 + ∆x∆y 1 1 D n − 2 Din, j + Din−1, j ) + D n − 2 Din, j + Din, j −1 ) . 2 ( i , j +1 2 ( i +1, j ∆y ∆x µ Warunek brzegowy na ciśnienie dla komórek w kierunku osi x [Matyka, 2002]: 16 (8.57) W Informatyka Podstawy Programowania Pi +1, j = Pi , j + 2µ ( ui −1, j − ui, j ) + ∆x f x , ∆x 2016/2017 (8.58) gdzie: Di , j oznacza dywergencję wektora prędkości w postaci dyskretnej z wzoru (8.38). Wyznaczenie ciśnienia według podanych w tym punkcie wzorów wymaga zastosowania procedury iteracyjnej, bowiem po lewej stronie wyrażenia (8.58), ze względu na operator Laplace’a, ciśnienie nie występuje w sposób jawny. Iteracje stosuje się obliczając kolejno wartości ciśnienia dla wszystkich węzłów siatki, przy zadanych warunkach brzegowych oraz wyliczonych wartościach prędkości z poprzedniego kroku czasowego. Procedurę powtarza się, do uzyskania zadanej dokładność wyznaczenia ciśnienia w każdym węźle obszaru. Rozwiązania równań Naviera-Stokes`a można dokonywać dla innych niż prędkość i ciśnienie zmiennych, a mianowicie poprzez odpowiednie przekształcenia otrzymuje się układ równań Helmholza dla zmiennych wirowości i funkcji prądu. Szersze omówienie wykorzystania tych równań do analizy przepływu metodą różnic skończonych można znaleźć m.in. w pracy [Gryboś, 1989]. 17