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

Podobne dokumenty