ˇRešen´ı Navierových-Stokesových rovnic metodou tlakových korekc´ı

Transkript

ˇRešen´ı Navierových-Stokesových rovnic metodou tlakových korekc´ı
Řešenı́ Navierových-Stokesových rovnic metodou
tlakových korekcı́
Libor Čermák
prosinec 2007
Abstrakt
Jedny z nejpopulárnějšı́ch metod pro výpočet nestlačitelného prouděnı́ jsou metody tlakových korekcı́: jde o iteračnı́ postup, v němž se v každé iteraci postupně
z jednotlivých Navierových-Stokesových rovnic počı́tajı́ předběžné složky vektoru
rychlosti a ty se pak korigujı́ pomocı́ tlakové změny určené tak, aby byla splněna
rovnice kontinuity. Nejznámějšı́m představitelem metod tohoto typu je algoritmus
SIMPLE, navržený Patankarem a Spaldingem [4]. O značnou oblibu algoritmu SIMPLE se zasloužila skvělá Patankarova kniha [3]. Původně byl algoritmus SIMPLE
navržen pro tzv. přesazené sı́tě“ (angl. staggered grids“), v němž jsou složky
”
”
rychlosti a tlak definovány v různých bodech. Toto omezenı́ bylo později překonáno
kolokovaným uspořádánı́m proměnných“, viz např. [1], [2]. Učebnı́ text vysvětluje
”
základnı́ strategii algoritmu SIMPLE, nejdřı́ve na tzv. přesazených sı́tı́ch (staggered
grids) a potom také pro tzv. kolokované uspořádánı́ proměnných.
1. Formulace
Diferenciálnı́ rovnice. Dvourozměrné nestacionárnı́ laminárnı́ prouděnı́ nestlačitelné
viskóznı́ tekutiny v rovinné oblasti Ω popisuje rovnice kontinuity
∂u ∂v
+
=0
∂x ∂y
(1)
a dvě pohybové Navierovy-Stokesovy rovnice
∂u ∂(uu) ∂(vu)
1 ∂p
+
+
=−
+ ν∆u + f u ,
∂t
∂x
∂y
̺ ∂x
(2)
∂v ∂(uv) ∂(vv)
1 ∂p
+
+
=−
+ ν∆v + f v .
∂t
∂x
∂y
̺ ∂y
(3)
Neznámé jsou rychlosti u, v a tlak p. Předpokládáme, že hustota ̺ a kinematická viskozita
ν jsou konstantnı́. f u a f v jsou měrné objemové sı́ly.
Okrajové podmı́nky. Označme Γi tu část hranice, kterou tekutina do oblasti Ω vtéká, Γo
část hranice, kterou tekutina z oblasti vytéká, a necht’ Γw je zbývajı́cı́ část hranice, kterou
1
tekutina neprotéká. Necht’ v = (u, v)T je vektor rychlosti a n = (nx , ny )T jednotkový
vektor vnějšı́ normály hranice Γ = ∂Ω. Pak na Γi je v · n < 0, na Γo je v · n > 0 a na Γw
je v · n = 0. Uvažujme okrajové podmı́nky
u = û, v = v̂
na Γi ,
(4)
∂v
∂u
=
=0
∂n
∂n
na Γo ,
(5)
u=v=0
na Γw ,
(6)
kde û, v̂ jsou zadané rychlosti a
∂u
∂u
∂u
= nx
+ ny
,
∂n
∂x
∂y
∂v
∂v
∂v
= nx
+ ny
∂n
∂x
∂y
jsou derivace ve směru vnějšı́ normály. Na výtoku Γo se také někdy předepisuje tlak p̂.
Počátečnı́ podmı́nky. V čase t = 0 je v oblasti Ω předepsána rychlost v i tlak p.
2. Metoda přesazených sı́tı́
Tı́mto termı́nem se označuje technika, která zajištuje splněnı́ každé z rovnic (1) - (3)
na jiném kontrolnı́m objemu: kontrolnı́ objemy jsou vůči sobě navzájem posunuté, proto
se hovořı́ o přesazených diskretizačnı́ch sı́tı́ch (v angličtině staggered grids“).
”
2.1 Kontrolnı́ objemy
Diskretizaci v proměnných x a y provedeme za zjednodušujı́cı́ho předpokladu, že
oblast, v nı́ž hledáme řešenı́, je obdélnı́k Ω = h0, ai × h0, bi. Předpokládejme, že kladný
směr osy x mı́řı́ doprava a kladný směr osy y mı́řı́ nahoru. Na obdélnı́ku zvolı́me rovnoměrné dělenı́: strany rovnoběžné s osou x rozdělı́me na N stejných dı́lků délky ∆x = a/N
a strany rovnoběžné s osou y rozdělı́me na M stejných dı́lků délky ∆y = b/M. Tak
dostaneme základnı́ sı́t’ s uzly [xi , yj ], kde xi = i∆x, i = 0, 1, . . . , N a yj = j∆y,
j = 0, 1, . . . , M. Obdélnı́k Ω je tedy sjednocenı́m N × M kontrolnı́ch objemů
Vijp = hxi−1 , xi i × hyj−1, yj i ,
i = 1, 2, . . . , N,
j = 1, 2, . . . , M.
Hornı́ index p naznačuje, že tyto kontrolnı́ objemy použijeme k výpočtu tlaku p. Přibližné
hodnoty tlaku budeme počı́tat ve středech [xi−1/2 , yj−1/2 ] kontrolnı́ch objemů Vijp , kde
xi−1/2 = xi − 12 ∆x, yj−1/2 = yj − 12 ∆y.
Pro výpočet rychlosti u použijeme posunutou sı́t’ (anglicky staggered grid, tj. doslovně
’
sı́t přesazených uzlů“), kterou dostaneme posunem základnı́ sı́tě o 21 ∆x ve směru osy x.
”
Budeme použı́vat kontrolnı́ objemy


hx , x i × hyj−1, yj i ,
i = 0,


 0 1/2

u
hxi−1/2 , xi+1/2 i × hyj−1, yj i , i = 1, 2, . . . , N − 1,
j = 1, 2, . . . , M .
Vij =




hxN −1/2 , xN i × hyj−1, yj i
i = N,
2
y4
y3
p
V23
v
V43
y2
u
V32
y1
u
V51
v
V10
x1
x2
x3
x4
x5
Obr. 1: Přesazená sı́t’ (staggered grid), kolečko odpovı́dá tlaku p, vodorovná šipka rychlosti u
a svislá šipka rychlosti v.
Kontrolnı́ objemy V0ju při levé straně obdélnı́ka Ω a kontrolnı́ objemy VNuj při pravé straně
obdélnı́ka Ω majı́ ve směru osy x délku 21 ∆x, řı́kejme jim proto půlené kontrolnı́ objemy.
Zbývajı́cı́ kontrolnı́ objemy Viju , i = 1, 2, . . . , N − 1, j = 1, 2, . . . , M, nazývejme úplné.
Přibližné hodnoty rychlosti u budeme počı́tat ve středech [xi , yj−1/2] úplných kontrolnı́ch
objemů Viju a dále ve středech [x0 , yj−1/2] levých stran půlených kontrolnı́ch objemů V0ju
a ve středech [xN , yj−1/2] pravých stran půlených kontrolnı́ch objemů VNuj .
Také rychlosti v počı́táme na přesazené (staggered) sı́ti, kterou tentokrát dostaneme
posunem základnı́ sı́tě o 12 ∆y ve směru osy y. Budeme tedy použı́vat kontrolnı́ objemy


hxi−1 , xi i × hy0 , y1/2 i
j = 0,




v
hxi−1 , xi i × hyj−1/2 , yj+1/2i j = 1, 2, . . . , M − 1,
Vij =
i = 1, 2, . . . , N .




hxi−1 , xi i × hyM −1/2 , yM i
j = M,
v
Kontrolnı́ objemy Vi0v při dolnı́ straně obdélnı́ka Ω a kontrolnı́ objemy ViM
při hornı́
1
straně obdélnı́ka Ω majı́ délku 2 ∆y ve směru osy y, řı́kejme jim proto půlené kontrolnı́
objemy. Zbývajı́cı́ kontrolnı́ objemy Vijv , 1 ≤ j ≤ M − 1, nazývejme úplné. Přibližné hodnoty rychlosti v budeme počı́tat ve středech [xi−1/2 , yj ] vnitřnı́ch kontrolnı́ch objemů Vijv
a dále v středech [xi−1/2 , y0 ] dolnı́ch stran půlených kontrolnı́ch objemů Vi0v a ve středech
v
[xi−1/2 , yM ] hornı́ch stran půlených kontrolnı́ch objemů ViM
.
Časová diskretizace. Diskretizaci v čase provedeme pomocı́ implicitnı́ Eulerovy metody.
Pro jednoduchost předpokládejme, že budeme pracovat s konstantnı́m časovým krokem
3
∆t, tj. výpočet provádı́me v časech tk = k∆t, k = 1, 2, . . . . Hodnoty v čase t = 0 jsou
známy z počátečnı́ podmı́nky.
Přibližné řešenı́ v čase tk budeme značit takto:
pki−1/2,j−1/2 ≈ p(xi−1/2 , yj−1/2, tk ) ,
i = 1, 2, . . . , N,
j = 1, 2, . . . , M,
uki,j−1/2 ≈ u(xi , yj−1/2 , tk ) ,
i = 0, 1, . . . , N,
j = 1, 2, . . . , M,
k
vi−1/2,j
i = 1, 2, . . . , N,
j = 0, 1, . . . , M.
≈ v(xi−1/2 , yj , tk ) ,
Předpokládejme, že přibližné řešenı́ v čase tk−1 už známe. Našı́m úkolem je popsat, jak
vypočı́tat přibližné řešenı́ v čase tk . Zavedeme zjednodušené značenı́: u hodnot přibližného
řešenı́ v čase tk hornı́ index k vypustı́me a hodnoty přibližného řešenı́ v předchozı́m čase
tk−1 označı́me hornı́m indexem 0. Tedy např. ui,j−1/2 ≡ uki,j−1/2 a u0i,j−1/2 ≡ uk−1
i,j−1/2 .
Nelinearita a iteračnı́ řešenı́. Navierovy-Stokesovy rovnice jsou nelineárnı́. Přibližné
řešenı́ je proto nutné počı́tat iteračně. Jako počátečnı́ aproximaci lze vzı́t hodnoty vypočtené v čase tk−1 . Přibližné řešenı́ v s−té iteraci budeme značit hornı́m indexem s v závorce,
(s)
(s)
(s)
tj. pi−1/2,j−1/2 , ui,j−1/2, vi−1/2,j . Při popisu akcı́ prováděných v s−té iteraci vystačı́me vždy
jen s hodnotami přibližného řešenı́ z aktuálnı́ iterace s, z předchozı́ iterace s − 1 a s hodnotami v čase tk−1 . Abychom zjednodušili zápis, budeme index s vynechávat a mı́sto
k,(s)
indexu s − 1 opatřı́me přı́slušnou proměnnou pruhem. Takže např. ui−1/2,j ≡ ui−1/2,j
k,(s−1)
a ūi−1/2,j ≡ ui−1/2,j .
Lokálnı́ označenı́. Uvažujme nejdřı́ve vnitřnı́ kontrolnı́ objemy Vijℓ , kde ℓ = p, u, v,
vyznačujı́cı́ se tı́m, že žádná jejich strana neležı́ na hranici obdélnı́ka Ω. Abychom zjednodušili naše vyjadřovánı́, zavedeme si lokálnı́ značenı́: indexem P označı́me střed konℓ
trolnı́ho objemu. Střed východnı́ho souseda Vi+1,j
označı́me indexem E (podle anglického
ℓ
east), střed západnı́ho souseda Vi−1,j označı́me indexem W (podle anglického west), střed
ℓ
severnı́ho souseda Vi,j+1
označı́me indexem N (podle anglického north) a střed jižnı́ho
ℓ
souseda Vi,j−1 označı́me pı́smenem S (podle anglického south). Podobně označı́me inℓ
dexem NE střed severovýchodnı́ho souseda Vi+1,j+1
, indexem NW střed severozápadnı́ho
ℓ
ℓ
souseda Vi−1,j+1
, indexem SE střed jihovýchodnı́ho souseda Vi+1,j−1
a indexem SW střed
ℓ
jihozápadnı́ho souseda Vi−1,j−1.
V přı́padě hraničnı́ho kontrolnı́ho objemu Vijℓ , tj. kontrolnı́ho objemu, který má alespoň
jednu stranu na hranici obdélnı́ka Ω, zavedeme obdobné značenı́. Existujı́ dvě odlišnosti.
V přı́padě půleného kontrolnı́ho objemu označı́me přı́slušným indexem střed strany ležı́cı́
na hranici obdélnı́ka Ω, a pokud jde o sousedy, pak lokálnı́ značenı́ přiřadı́me jen těm
sousedům, které existujı́. Tak třeba pro V01u existuje jen východnı́, severnı́ a severovýchodnı́
soused a indexy P , E, N a NW postupně označujı́ body o souřadnicı́ch [x0 , y1/2 ], [x1 , y1/2 ],
[x0 , y3/2 ] a [x1 , y3/2 ] .
Zaved’me si ještě označenı́ stran kontrolnı́ch objemů: Seℓ je východnı́ strana, Swℓ strana
západnı́, Snℓ severnı́ strana a Ssℓ strana jižnı́. Tak třeba pro úplný kontrolnı́ objem Viju je Seu
úsečka spojujı́cı́ body [xi+1/2 , yj−1] a [xi+1/2 , yj ] a Snu je úsečka spojujı́cı́ body [xi−1/2 , yj ]
a [xi+1/2 , yj ].
4
V p ≡ Vijp
yj
NW
N
NE
V u ≡ Viju
yj
NW
N
V v ≡ Vijv
NE
W
P
E
W
P
E
SW
S
SE
SW
S
SE
xi
xi
yj
NW
N
NE
W
P
E
SW
S
SE
xi
Obr. 2: Lokálnı́ značenı́.
2.2 Diskretizace prvnı́ pohybové rovnice
Vnitřnı́ kontrolnı́ objemy. Integracı́ rovnice (2) přes kontrolnı́ objem V u dostaneme
po linearizaci
Z
Z
Z
Z
Z
∂u
dxdy +
ū u dy −
ū u dy +
v̄ u dx −
v̄ u dx−
u
u
V u ∂t
Seu
Sw
Sn
Ssu
Z
Z
Z
Z
∂u
∂u
∂u
∂u
dy + ν
dy − ν
dx + ν
dx =
−ν
(7)
u ∂x
u ∂y
Seu ∂x
Sw
Sn
Ssu ∂y
Z
Z
Z
1
1
=−
p̄ dy +
p̄ dy +
(f¯0u − f¯1u u) dxdy .
̺ Seu
̺ Swu
u
V
Linearizace spočı́vá v tom, že ū, v̄ a p̄ jsou již známé hodnoty rychlostı́ a tlaku z předchozı́
iterace. Linearizace objemové sı́ly vycházı́ z předpokladu, že f u lze vyjádřit ve tvaru
f u = f0u − f1u u ,
kde f1u ≥ 0
(to je jistě vždy možné, triviálnı́ volba je f0u = f u , f1u = 0). Přitom f¯0u resp. f¯1u jsou
linearizované hodnoty funkcı́ f0u resp. f1u (za u, v, p v nich dosadı́me ū, v̄, p̄).
V dalšı́m se věnujme aproximaci jednotlivých členů v rovnici (7). Člen s časovou
derivacı́ nahradı́me zpětnou diferencı́,
Z
∂u
uP − u0P
dxdy ≈ ∆x∆y
.
(8)
∆t
V u ∂t
V konvekčnı́ch členech nahradı́me rychlosti ū a v̄ jejich interpolanty (vypočtenými z hodnot v sousednı́ch uzlech) a rychlost u nahradı́me jednostrannou diferencı́ způsobem, který
je označován jako upwind aproximace (aproximace proti větru“). Tak konkrétně na
”
východnı́ straně Seu dostaneme

ūP + ūE
ūP + ūE

Z
uP pro
≥ 0,
 ∆y
2
2
ū u dy ≈
(9)

Seu
 ∆y ūP + ūE u pro ūP + ūE < 0.
E
2
2
5
uN
vP
vE
Vu
pP
pE
uW
uP
vS
uE
vSE
uS
Obr. 3: Lokálnı́ značenı́ proměnných použitých při diskretizaci prvnı́ pohybové rovnice.
Označme
ūP + ūE
2
interpolovanou hodnotu rychlosti ū na straně Seu . Upwind aproximace rychlosti u na straně
Seu je tedy rychlost v uzlu, který ležı́ vzhledem k této straně proti větru“, tj. v uzlu P ,
”
když ūue ≥ 0 ( vı́tr fouká zleva doprava“), popřı́padě v uzlu E, když ūue > 0 ( vı́tr fouká
”
”
zprava do leva“). Označı́me-li
ūue =
a+ = max(a, 0) ,
a− = min(a, 0) ,
můžeme aproximaci (9) zapsat stručně ve tvaru
Z
ūP + ūE
ū u dy ≈ ∆y([ūue ]+ uP + [ūue ]− uE ) ,
kde ūue =
.
2
Seu
Na ostatnı́ch stranách dostaneme podobně
Z
ū u dy ≈ ∆y([ūuw ]+ uW + [ūuw ]− uP ) ,
u
Sw
(10)
kde ūuw =
ūP + ūW
,
2
(11)
Z
v̄ u dx ≈ ∆x([v̄nu ]+ uP + [v̄nu ]− uN ) ,
kde v̄nu =
v̄P + v̄E
,
2
(12)
Z
v̄ u dx ≈ ∆x([v̄su ]+ uS + [v̄su ]− uP ) ,
kde v̄su =
v̄S + v̄SE
.
2
(13)
u
Sn
Ssu
6
Ve viskóznı́ch členech aproximujeme derivaci pomocı́ centrálnı́ diference:
Z
Z
uP − uE
∂u
uP − uW
∂u
dy ≈ ν
∆y , ν
dy ≈ ν
∆y ,
−ν
∂x
∆x
∂x
∆x
u
Sw
Seu
−ν
Z
∂u
uP − uN
dx ≈ ν
∆x , ν
∂y
∆y
u
Sn
Z
∂u
uP − uS
dx ≈ ν
∆x .
∂y
∆y
Ssu
Členy obsahujı́cı́ tlak p̄ aproximujeme výrazem
Z
Z
1
∆y
1
−
p̄ dy +
p̄ dy ≈
(p̄P − p̄E )
̺ Seu
̺ Swu
̺
(15)
a člen obsahujı́cı́ objemovou sı́lu aproximujeme výrazem
Z
(f¯u − f¯u u) dxdy ≈ ∆x∆y [f¯u ] − [f¯u ] uP .
Vu
0
(14)
1
0 P
1 P
(16)
Dřı́ve než napı́šeme výslednou aproximaci rovnice (7), upravı́me ještě aproximaci konvekčnı́ch členů. Prozatı́m jsme podle (10) – (13) odvodili
Z
Z
Z
Z
ū u dy −
ū u dy +
v̄ u dx −
v̄ u dx ≈
Seu
u
Sw
u
Sn
Ssu
∆y [ūue ]+ − [ūuw ]− + ∆x [v̄nu ]+ − [v̄su ]− uP +
+ ∆y [ūue ]− uE − [ūuw ]+ uW + ∆x [v̄nu ]− uN − [v̄su ]+ uS .
(17)
Našı́m cı́lem je změnit aproximaci (17) tak, aby součet koeficientů u proměnných uP ,
uE , uW , uN a uS byl roven nule, ale znaménka těchto koeficientů aby zůstala zachována.
K tomu účelu využijeme rovnici kontinuity.
Vyjdeme z předpokladu, že rychlosti ū, v̄ rovnici kontinuity splňujı́. Integracı́ rovnice
(1) přes V u dostaneme
Z
Z
Z
Z
ū dy −
ū dy +
v̄ dx −
v̄ dx = 0 ,
Seu
u
Sw
u
Sn
Ssu
a následnou aproximacı́ integrálů pak obdržı́me rovnici
∆y(ūue − ūuw ) + ∆x(v̄nu − v̄su ) = 0 .
Protože
a = a+ + a− ,
a− = −[−a]+ ,
(18)
platı́ také
∆y [ūue ]+ − [ūuw ]− + ∆x [v̄nu ]+ − [v̄su ]− =
∆y [−ūue ]+ + [ūuw ]+ + ∆x [−v̄nu ]+ + [v̄su ]+ .
7
(19)
Koeficient při uP v aproximaci (17) nahradı́me pravou stranou rovnice (19), a dále využijeme
toho, že podle druhé rovnosti v (18) platı́ [ūue ]− = −[−ūue ]+ a [v̄nu ]− = −[−v̄nn ]+ . Tak ze (17)
dostaneme požadovaný tvar aproximace
Z
Z
Z
Z
ū u dy +
v̄ u dx −
v̄ u dx ≈
ū u dy −
Seu
u
Sw
Ssu
u
Sn
∆y [−ūue ]+ + [ūuw ]+ + ∆x [−v̄nu ]+ + [v̄su ]+ uP −
− ∆y [−ūue ]+ uE + [ūuw ]+ uW − ∆x [−v̄nu ]+ uN + [v̄su ]+ uS .
(20)
Všimněte si: koeficient u proměnné uP je kladný, koeficienty u zbývajı́cı́ch proměnných
uE , uW , uN a uS jsou záporné (stejně jako v (17)), součet všech koeficientů je však nynı́
roven nule.
Dosadı́me-li do (7) aproximace (8), (20) a (14) – (16), dostaneme rovnici
AuP uP = AuE uE + AuW uW + AuN uN + AuS uS + buP +
∆y
(p̄P − p̄E ) ,
̺
(21u )
kde
∆y
,
∆x
∆y
AuW = ∆y[ūuw ]+ + ν
,
∆x
∆x
,
AuN = ∆x[−v̄nu ]+ + ν
∆y
ūP + ūE
,
2
ūP + ūW
ūuw =
,
2
v̄P + v̄E
v̄nu =
,
2
AuE = ∆y[−ūue ]+ + ν
ūue =
∆x
AuS = ∆x[v̄su ]+ + ν
,
∆y
v̄S + v̄SE
v̄su =
,
2
AuP = AuE + AuW + AuN + AuS + ∆x∆y[f¯1u ]P +
buP =
(22u )
∆x∆y
,
∆t
∆x∆y 0
u + ∆x∆y[f¯0u ]P .
∆t P
Všimněte si, že
AuE > 0 , AuW > 0 , AuN > 0 , AuS > 0 a že AuP > AuE + AuW + AuN + AuS .
Dirichletovy okrajové podmı́nky. Omezı́me se na podmı́nky (4), nebot’ podmı́nky (6)
jsou jejich speciálnı́m přı́padem.
Předpokládejme, že rychlosti jsou předepsány na západnı́ straně x = 0 (nebo na jejı́
části). Půlené hraničnı́ kontrolnı́ objemy V0ju nepoužijeme a okrajovou podmı́nku uplatnı́me na kontrolnı́ch objemech V1ju , pro které jsou předepsány rychlosti ûW , v̂W . V rovnici
(21u ) stačı́ položit uW = ûW .
Pokud jsou rychlosti předepsány na východnı́ straně x = a, postupujeme obdobně:
jestliže je v uzlu E nějakého kontrolnı́ho objemu VNu−1,j předepsána rychlost ûE , v rovnici
(21u ) položı́me uE = ûE .
8
Uvažujme přı́pad, když jsou rychlosti předepsány na jižnı́ straně y = 0. Necht’ Vi1u je
úplný hraničnı́ kontrolnı́ objem. Pak ve středu s jeho jižnı́ strany jsou předepsány rychlosti
ûs , v̂s . Derivaci ve viskóznı́m členu na jižnı́ straně aproximujeme nynı́ pomocı́ jednostranné
diference
Z
uP − ûs
∂u
dx ≈ ν 1
∆x .
ν
∆y
Ssu ∂y
2
Při zpracovánı́ konvekčnı́ho členu na jižnı́ straně položı́me v̄su = v̂s a využijeme toho, že
v̂s ≥ 0 (pokud jižnı́ stranou tekutina do Ω vtéká, musı́ být v̂ > 0, a na stěně v̂ = 0).
Rovnice (21u ) opět platı́, jen je třeba v nı́ zvolit
AuS = ∆xv̂s + 2ν
∆x
,
∆y
uS = ûs .
u
Jsou-li rychlosti předepsány na severnı́ straně y = b, uvažujeme kontrolnı́ objemy ViM
.
u
Pomocı́ předepsaných hodnot ûn , v̂n ≤ 0 dostaneme opět rovnici (21 ), ve které
AuN = −∆xv̂n + 2ν
∆x
,
∆y
uN = ûn .
Neumannovy okrajové podmı́nky. Na západnı́ straně oblasti Ω dostaneme z (5)
podmı́nku ∂x u = 0, kterou přibližně splnı́me tak, že položı́me uW = uP pro kontrolnı́
objem V1ju , jehož západnı́ uzel W ležı́ na výtoku Γo . V rovnici (21u ) proto stačı́ zvolit
AuW = 0. Při výtoku východnı́ stranou y = b postupujeme podobně: pro přı́slušný kontrolnı́ objem VNu−1,j položı́me uE = uP a do rovnice (21u ) dosadı́me AuE = 0.
Při výtoku jižnı́ stranou y = 0 podle (5) platı́ ∂y u = 0. Proto viskoznı́ tok jižnı́
stranou Ssu aproximujeme nulou, takže podle (22u ) je AuS = ∆x [v̄su ]+ = 0, nebot’ v̄su < 0
(jde o výtok). Pro přı́slušný kontrolnı́ objem Vi1u proto stačı́ do (21u ) dosadit AuS = 0. Při
výtoku severnı́ stranou y = b postupujeme podobně a zjistı́me, že pro přı́slušný kontrolnı́
u
objem ViM
stačı́ do (21u ) dosadit AuN = 0.
Řešenı́ soustavy lineárnı́ch rovnic. Soustavu rovnic (21u ), doplněnou o vliv okrajových podmı́nek, zapišme ve tvaru
Au u∗ = bu .
(23u )
Matice Au řádu (N − 1)M je ostře diagonálně dominantnı́, s kladnými prvky na hlavnı́
diagonále (AuP > 0) a s nekladnými prvky mimo hlavnı́ diagonálu (koeficienty −AuE , −AuW ,
−AuN a −AuS jsou záporné, zbývajı́cı́ koeficienty této rovnice jsou nulové). To znamená, že
Au je regulárnı́ M-matice. Teoretická analýza i praktické experimenty potvrzujı́, že výše
uvedené vlastnosti matice Au majı́ zásadnı́ význam pro konvergenci přibližného řešenı́
k řešenı́ přesnému.
Rovnice (23u ) stačı́ řešit jen přibližně, nebot’ určenı́ u∗ je součástı́ s-té iterace výpočtu
přibližného řešenı́ v čase tk , takže počı́tat u∗ přesně je zbytečné. Přibližné řešenı́ soustavy
lineárnı́ch rovnic (23u ) lze zı́skat pomocı́ několika málo kroků vhodné iteračnı́ metody.
Řı́kejme jı́ vnitřnı́ iterace, zatı́mco pod vnějšı́ iteracı́ budeme rozumět výpočet přibližného
řešenı́ v čase tk (pomocı́ u(s) , v(s) a p(s) , s = 0, 1, . . . ).
9
Jako počátečnı́ aproximaci pro vnitřnı́ iterace zvolı́me vektor rychlostı́ ū vypočtený
v předchozı́ (s − 1)−vé vnějšı́ iteraci. Položı́me tedy φ0 = ū a počı́táme
Mu (φk − φk−1 ) = bu − Au φk−1 , k = 1, 2, . . . .
(24u )
Výpočet ukončı́me a položı́me u∗ = φk , jakmile se velikost rezidua rk−1 = bu − Au φk−1
dostatečně zmenšı́, tj. platı́-li krk−1 k < εi kr0 k, kde εi je zadaná tolerance vnitřnı́ch iteracı́.
Iteračnı́ matice Mu určuje použitou metodu. V úvahu připadá třeba Gaussova-Seidelova
metoda. V tom přı́padě má Mu na hlavnı́ diagonále a pod nı́ stejné prvky jako matice
Au , zatı́mco nad hlavnı́ diagonálou má Mu všechny prvky nulové. Toleranci εi nevolı́me
přı́liš malou, stačı́ třeba εi = 0,1, což zaručı́ pokles velikosti rezidua pod jednu desetinu
jeho počátečnı́ velikosti.
Pro zajištěnı́ konvergence vnějšı́ch iteracı́ se osvědčil postup označovaný jako dolnı́
relaxace. Ten spočı́vá v tom, že do rovnice (21u ) dosadı́me mı́sto uP výraz
1 − αu
1
uP −
ūP ,
αu
αu
(25u )
kde 0 < αu ≤ 1 je relaxačnı́ parametr. Pro αu = 1 dostaneme nerelaxovanou metodu. Vliv
.
relaxačnı́ho faktoru vymizı́, když nastane konvergence vnějšı́ch iteracı́, tj. když uP = ūP .
Pro velmi malé αu však dojde v modifikované rovnici (21u ), která je tvaru
1 u
∆y
1 − αu u
AP uP = AuE uE + AuW uW + AuN uN + AuS uS + buP +
(p̄P − p̄E ) +
AP ūP , (26u )
αu
̺
au
k výraznému potlačenı́ vlivu všech koeficientů neobsahujı́cı́ch faktor 1/αu , takže rovnice
(26u ) se chová jako podobně jako rovnice uP = ūP . Volı́me-li však αu přiměřeně malé“,
”
jen tı́m zabránı́me vzniku pronikavých změn mezi hodnotami uP a ūP ve dvou po sobě
jdoucı́ch vnějšı́ch iteracı́ch, což má stabilizujı́cı́ účinek a napomáhá to konvergenci vnějšı́ch
iteracı́. Praktické zkušenosti tuto skutečnost potvrzujı́. Vhodná volba parametru αu je tak
trochu alchymiı́, vyžaduje kromě zkušenostı́ také nezbytné experimentovánı́.
Poznamenejme, že matice Au přı́slušná modifikovaným rovnicı́m (26u ) je opět M-matice, jejı́ž diagonálnı́ dominantnost s klesajı́cı́m αu roste.
2.3 Diskretizace druhé pohybové rovnice
Vnitřnı́ kontrolnı́ objemy. Postupujeme podobně jako u prvé pohybové rovnice. Tak
dostaneme soustavu rovnic
∆x
1 − αv v
1 v
AP vP = AvE vE + AvW vW + AvN vN + AvS vS + bvP +
(p̄P − p̄N ) +
AP v̄P , (26v )
αv
̺
av
v nı́ž
∆y
,
∆x
∆y
AvW = ∆y[ūvw ]+ + ν
,
∆x
∆x
AvN = ∆x[−v̄nv ]+ + ν
,
∆y
AvE = ∆y[−ūve ]+ + ν
ūP + ūN
,
2
ūW + ūN W
ūvw =
,
2
v̄P + v̄N
v̄nv =
,
2
ūve =
10
(22v )
AvS = ∆x[v̄sv ]+ + ν
∆x
,
∆y
v̄sv =
v̄P + v̄S
,
2
∆x∆y
AvP = AvE + AvW + AvN + AvS + ∆x∆y[f¯1v ]P +
,
∆t
∆x∆y 0
bvP =
v + ∆x∆y[f¯0v ]P .
∆t P
(22v )
vN
pN
uN W
vW
uN
vP
vE
Vv
pP
uW
uP
vS
Obr. 4: Lokálnı́ značenı́ proměnných použitých při diskretizaci druhé pohybové rovnice.
Přitom
f v = f0v − f1v v ,
kde f1v ≥ 0,
f¯0v , f¯1v jsou odpovı́dajı́cı́ linearizace a αv je relaxačnı́ parametr.
Dirichletovy okrajové podmı́nky. U západnı́ strany x = 0 obdélnı́ka Ω zvolı́me na
kontrolnı́ch objemech V1jv
AvW = ∆y ûw + 2ν
∆y
,
∆x
vW = v̂w ,
u východnı́ strany x = a zvolı́me na kontrolnı́ch objemech VNv j
AvE = −∆y ûe + 2ν
∆y
,
∆x
vE = v̂e ,
11
u jižnı́ strany y = 0 položı́me vS = v̂S na kontrolnı́ch objemech Vi1v a u severnı́ strany
y = b položı́me vN = v̂N na kontrolnı́ch objemech VMv −1,1 .
Neumannovy okrajové podmı́nky. U západnı́ strany x = 0 obdélnı́ka Ω položı́me
AvW = 0 na kontrolnı́ch objemech V1jv , u východnı́ strany x = a položı́me AvE = 0 na
kontrolnı́ch objemech VNv j , u jižnı́ strany y = 0 zvolı́me AvS = 0, vS = vP na kontrolnı́ch
objemech Vi1v a u severnı́ strany y = b položı́me AvN = vP , vN = vP na kontrolnı́ch
v
objemech Vi,M
−1 .
Řešenı́ soustavy lineárnı́ch rovnic. Soustavu rovnic (26v ), upravenou zahrnutı́m vlivu
okrajových podmı́nek, zapı́šeme formálně ve tvaru
Av v∗ = bv .
(23v )
Soustavu řešı́me zcela analogicky jako soustavu (23u ), viz (24u ).
2.4 Diskretizace rovnice kontinuity
Integracı́ rovnice (1) přes kontrolnı́ objem V p dostaneme
Z
Z
Z
Z
u dy −
u dy +
v dx −
v dx = 0 ,
Sep
p
Sw
p
Sn
Ssp
a odtud diskretizovaná rovnice kontinuity
∆y(upe − upw ) + ∆x(vnp − vsp ) = 0 .
(27)
Protože však
upe = uP ,
upw = uW ,
vnp = vP ,
ups = vS ,
(28)
máme
∆y(uP − uW ) + ∆x(vP − vS ) = 0 .
(29)
Pokud do rovnice (29) dosadı́me u∗ mı́sto u a v ∗ mı́sto v, nemáme žádný důvod očekávat, že
taková rovnost bude platit. Rychlosti u∗ , v ∗ , a s nimi také tlak p̄, proto musı́me korigovat.
Korekce rychlostı́ a tlaku. Podle (26u ), (26v ) rychlosti u∗P a vP∗ splňujı́
u∗P = û∗P + de (p̄P − p̄E ) ,
vP∗ = v̂P∗ + dn (p̄P − p̄N ) ,
(30∗ )
kde
û∗P =
v̂P∗
αu
(AuE u∗E + AuW u∗W + AuN u∗N + AuS u∗S + buP ) + (1 − αu )ūP ,
AuP
αv
∗
∗
= v (AvE vE∗ + AvW vW
+ AvN vN
+ AvS vS∗ + bvP ) + (1 − αv )v̄P
AP
12
(31∗ )
vN
pN
uN W
uN
vE
vP
vW
Vp
pW
pP
uW W
uE
uP
uW
vSW
pE
vSE
vS
pS
uSW
uS
vSS
Obr. 5: Lokálnı́ značenı́ proměnných použitých při diskretizaci rovnice kontinuity.
a
de =
∆y αu
,
̺ AuP
dn =
∆x αv
.
̺ AvP
(32)
Jestliže rovnici (26u ) zapı́šeme pro sousednı́ západnı́ kontrolnı́ objem (s rychlostı́ uW v jeho
středu) a rovnici (26v ) zapı́šeme pro sousednı́ jižnı́ kontrolnı́ objem (s rychlostı́ vS v jeho
středu), dostaneme analogicky
u∗W = û∗W + dw (p̄W − p̄P ) ,
vS∗ = v̂S∗ + ds (p̄S − p̄P ) ,
(33∗ )
kde
αu
([AuE ]W u∗P + [AuW ]W u∗W W + [AuN ]W u∗N W + [AuS ]W u∗SW + [buP ]W ) + (1 − αu )ūW ,
u
[AP ]W
(34∗ )
αv
∗
∗
∗
v̂S∗ = v ([AvE ]S vSE
+ [AvW ]S vSW
+ [AvN ]S vP∗ + [AvS ]S vSS
+ [bvP ]S ) + (1 − αv )v̄S ,
[AP ]S
û∗W =
a
dw =
∆y αu
,
̺ [AuP ]W
ds =
∆x αv
.
̺ [AvP ]S
13
(35)
Index W vpravo dole u hranatých závorek okolo koeficientů Au přitom vyznačuje, že
tyto koeficienty přı́slušı́ západnı́mu sousednı́mu kontrolnı́mu objemu. Podobně index S
u koeficientů Av vyznačuje jejich přı́slušnost k jižnı́mu sousednı́mu kontrolnı́mu objemu.
Předpokládejme, že hledané rychlosti u, v a tlak p splňujı́ diskretizované pohybové
rovnice. To ale znamená, že platı́ rovnice (30∗ ) a (33∗ ), v nichž dosadı́me u, v a p mı́sto
u∗ , v ∗ a p̄, tj. platı́
a
uP = ûP + de (pP − pE ) ,
vP = v̂P + dn (pP − pN )
(30)
uW = ûW + dw (pW − pP ) ,
vS = v̂S + ds (pS − pP ) .
(33)
Přitom výrazy ûP , v̂P jsou tvaru (31∗ ) a výrazy ûW , v̂S jsou tvaru (34∗ ), pokud v nich
dosadı́me u mı́sto u∗ a v mı́sto v ∗ .
Označme
a
u = u∗ + u′ ,
v = v∗ + v′ ,
(36)
p = p̄ + p′ ,
(37)
tj. u′ , v ′ a p′ jsou hledané korekce. Odečtenı́m rovnic (30∗ ) od (30) a (33∗ ) od (33)
dostaneme
u′P = û′P + de (p′P − p′E ) ,
vP′ = v̂P′ + dn (p′P − p′N ) ,
u′W = û′W + dw (p′W − p′P ) ,
vS′ = v̂S′ + ds (p′S − p′P ) .
(38)
Když v rovnicı́ch (38) vypustı́me členy opatřené střı́škou, dostaneme aproximace korigovaných rychlostı́
u′P = de (p′P − p′E ) ,
vP′ = dn (p′P − p′N ) ,
u′W = dw (p′W − p′P )
vS′ = ds (p′S − p′P ) .
(39)
Do diskretizované rovnice kontinuity (29) ted’ dosadı́me rychlosti (36),
∆y(u′P − u′W ) + ∆x(vP′ − vS′ ) = −[∆y(u∗P − u∗W ) + ∆x(vP∗ − vS∗ )] ,
a za korekce rychlostı́ dosadı́me z (39). Tak dostaneme rovnici pro výpočet tlakových
korekcı́ rovnici
ApP p′P = ApE p′E + ApW p′W + ApN p′N + ApS p′S + bpP ,
(40)
kde
ApE = ∆y de =
[∆y]2 αu
,
̺ AuP
ApW = ∆y dw =
[∆y]2 αu
,
̺ [AuP ]W
ApN = ∆xdn =
[∆x]2 αv
,
̺ AvP
(41)
14
ApS = ∆xds =
[∆x]2 αv
,
̺ [AvP ]S
(41)
ApP = ApE + ApW + ApN + ApS ,
bpP = −[∆y(u∗P − u∗W ) + ∆x(vP∗ − vS∗ )] .
V rovnici (40) vyjadřuje člen bpP mı́ru nesplněnı́ diskrétnı́ rovnice kontinuity (29) rychlostmi
u∗ a v ∗ . Je-li na všech kontrolnı́ch objemech bpP = 0, je p′P = 0 a u∗P = uP , vP∗ = vP . Vidı́me
tedy, že i když aproximace (39) použitá k odvozenı́ rovnic (40) je velmi hrubá, je asymptoticky správná.
Okrajové podmı́nky na vtoku a na pevné stěně. Jestliže jsou na některé ze stran Sℓp
hraničnı́ho kontrolnı́ho objemu V p předepsány rychlosti û, v̂, dosadı́me je přı́mo do rovnice
(29). Je-li rychlost předepsána napřı́klad na východnı́ straně Sep kontrolnı́ho objemu VNp j ,
upravı́me přı́slušnou rovnici (40) tak, že v bpP za u∗P dosadı́me ûP a položı́me ApE = 0. Na
ostatnı́ch stranách postupujeme podobně: jsou-li rychlosti předepsány na západnı́ straně,
klademe u∗W = ûW , ApW = 0, jsou-li předepsány na severnı́ straně, položı́me vP∗ = v̂P ,
ApN = 0, a jsou-li předepsány na jižnı́ straně, položı́me vS∗ = v̂S , ApS = 0.
Okrajové podmı́nky na výtoku. Jestliže tlak na výtoku předepsán nenı́, pak je přirozené očekávat, že tlakové korekce na přı́slušných hraničnı́ch kontrolnı́ch objemech nejsou
vnějšı́m tlakem ovlivněny. To lze zohlednit tak, že v rovnici (40) pro stranu Sℓp ležı́cı́ na
výtoku položı́me Apℓ = 0.
Jiná situace nastane v přı́padě, když na výtoku tlak předepsán je. Pak postupujeme
tak, jako kdyby byl tlak předepsán ve středech přı́slušných hraničnı́ch kontrolnı́ch objemů.
To znamená, že pP = p̂P je dané a mı́sto rovnice (40) bereme triviálnı́ rovnici p′P = 0.
Řešenı́ soustavy lineárnı́ch rovnic. Soustavu rovnic (40), upravenou zahrnutı́m vlivu
okrajových podmı́nek, zapı́šeme formálně ve tvaru
Ap p′ = bp .
(42)
Pokud nenı́ alespoň na části hranice předepsán tlak p̂, je matice Ap singulárnı́. V tom
přı́padě se postupuje tak, že libovolnou rovnici nahradı́me triviálnı́ rovnicı́ p′P = 0. Matice
takto modifikované soustavy už regulárnı́ je a soustava má jediné řešenı́. To sice závisı́ na
volbě trivializované rovnice, nastane-li však konvergence p′ → 0, je to jedno.
Soustavu rovnic (42) řešı́me opět iteračně, tj. podobně jako jsme řešili soustavu (23u ),
viz (24u ). Po provedenı́ několika málo vnitřnı́ch iteracı́ dostaneme p′P . Podle (39) určı́me
u′P , vP′ a podle (36) vypočteme
uP = u∗P + u′P ,
vP = vP∗ + vP′ .
(43)
Tlakovou korekci je vhodné započı́tat jen částečně, tj. mı́sto (37) bereme
pP = p̄P + αp p′P ,
(44)
kde αp je vhodně zvolený faktor dolnı́ relaxace, 0 < αp ≤ 1.
15
Konvergence. Vypočteme rezidua
ru = bu − Au ū ,
rv = bv − Av v̄ ,
rp = bp − Ap p̄ .
Pokud platı́ současně nerovnosti
kru k < max(εuR kbu k, εuA ) ,
krv k < max(εvR kbv k, εvA ) ,
krp k < max(εpR kbp k, εpA )
(45)
pro vhodně zvolené relativnı́ tolerance εuR , εvR ,εpR , absolutnı́ tolerance εuA , εvA ,εpA a pro
vhodnou normu, položı́me
uk = u ,
vk = v ,
pk = p
a přibližné řešenı́ v čase tk je vypočteno. Pokud docházı́ k divergenci, tj. když normy
reziduı́ nabývajı́ značných hodnot, např. platı́-li jedna z nerovnostı́
kru k > εumax ,
krv k > εvmax ,
krp k > εpmax
(46)
pro vhodně zvolené maximálnı́ tolerance εumax , εvmax a εpmax , výpočet ukončı́me a konstatujeme, že metoda nekonverguje. Když žádná z těchto nerovnostı́ neplatı́, pokračujeme dalšı́
iteracı́ ve výpočtu přibližného řešenı́ v čase tk .
2.5 Algoritmus SIMPLE
Postup výpočtu rychlostı́ a tlaků, tak jak jsme ho uvedli v předchozı́ch kapitolách, je
znám jako algoritmus SIMPLE podle Semi-Implicit Method for Pressure-Linked Equations,
viz [3]. V každé iteraci postupujeme takto:
1) Výpočet předběžné rychlosti u∗ podle (23u ).
2) Výpočet předběžné rychlosti v∗ podle (23v ).
3) Výpočet tlakové korekce p′ podle (42).
4) Výpočet u, v a p podle (43) a (44).
5) Test konvergence:
– pokud platı́ (46), výpočet předčasně ukončı́me;
– pokud platı́ (45), iterace ukončı́me a položı́me uk = u, vk = v, pk = p;
– pokud neplatı́ (45) ani (46), provedeme u → ū, v → v̄, p → p̄ a pokračujeme
krokem 1.
3. Formulace s kolokovanými proměnnými
Metoda SIMPLE byla nejdřı́ve vyvinuta pro přesazené sı́tě, v nı́ž každé z proměnných
přı́slušı́ jiný kontrolnı́ objem. To nenı́ na obtı́ž v přı́padě, kdy oblast je obdélnı́k. Pokud
však chceme ideu metody SIMPLE přenést na obecnějšı́ oblasti, ukazuje se výhodnějšı́,
16
aby všechny proměnné byly lokalizovány do téhož bodu, těžiště společného kontrolnı́ho objemu. Proto v této kapitole odvodı́me variantu metody SIMPLE pro kolokované uspořádánı́
proměnných.
NN
WW
NW
N
NE
W
P
E
SW
S
SE
EE
SS
Obr. 6: Lokálnı́ značenı́ proměnných pro kolokované uspořádánı́ proměnných.
Pro jednoduchost budeme opět uvažovat obdélnı́kovou oblast Ω = h0, ai × h0, bi. Na
obdélnı́ku zvolı́me rovnoměrné dělenı́: strany rovnoběžné s osou x rozdělı́me na N stejných
dı́lků délky ∆x = a/N a strany rovnoběžné s osou y rozdělı́me na M stejných dı́lků délky
∆y = b/M. Tak dostaneme sı́t’ s uzly [xi , yj ], kde xi = i∆x, i = 0, 1, . . . , N a yj = j∆y,
j = 0, 1, . . . , M. Obdélnı́k Ω je tedy sjednocenı́m N × M kontrolnı́ch objemů
Vij = hxi−1 , xi i × hyj−1, yj i ,
i = 1, 2, . . . , N,
j = 1, 2, . . . , M.
Přibližné hodnoty obou rychlostı́ i tlaku budeme počı́tat ve středech [xi−1/2 , yj−1/2] kontrolnı́ch objemů Vij . Lokálnı́ značenı́ uzlů je vyznačeno na obrázku 6. Ve středech kontrolnı́ch objemů jsou vyznačeny neznámé: kolečko označuje tlak, tučná vodorovná šipka
rychlost u a tučná svislá šipka rychlost v. Na stranách kontrolnı́ch objemů jsou vyznačeny
17
pomocné rychlosti: slabá vodorovná šipka vyznačuje rychlost u a slabá svislá šipka rychlost
v. Rychlost a tlak ve středech kontrolnı́ch objemů budeme rozlišovat pomocı́ indexů
z velkých pı́smen, napřı́klad uS , vS a pS jsou rychlosti a tlak ve středu S kontrolnı́ho
objemu VS . Rychlost u uprostřed východnı́ strany Seq kontrolnı́ho objemu Vq označı́me uqe ,
podobně uqw je rychlost u uprostřed západnı́ strany Swq , vnq je rychlost v uprostřed severnı́
strany Snq a vsq je rychlost v uprostřed jižnı́ strany Ssq . Abychom zjednodušili značenı́,
budeme pro q = P index P vynechávat, takže ue , uw , vn a vs jsou rychlosti ve středech
stran Se , Sw , Sn a Ss kontrolnı́ho objemu VP .
3.1 Prvnı́ pohybová rovnice
Diskretizaci dostaneme podobně jako v přı́padě přesazených sı́tı́. Rovnici (2) integrujeme přes kontrolnı́ objem VP , užijeme pravidlo integrace per-partes, provedeme linearizaci
a dostaneme rovnici analogickou k rovnici (21u ),
AuP uP = AuE uE + AuW uW + AuN uN + AuS uS + buP +
∆y
(p̄W − p̄E ) ,
2̺
(47u )
kde
∆y
,
∆x
∆x
,
AuN = ∆x[−v̄n ]+ + ν
∆y
AuE = ∆y[−ūe ]+ + ν
∆y
,
∆x
∆x
AuS = ∆x[v̄s ]+ + ν
,
∆y
AuW = ∆y[ūw ]+ + ν
∆x∆y
,
AuP = AuE + AuW + AuN + AuS + ∆x∆y[f¯1u ]P +
∆t
∆x∆y 0
buP =
u + ∆x∆y[f¯0u ]P .
∆t P
(48u )
Rovnice (47u ) se od rovnice (21u ) lišı́ aproximacı́ tlaku. Ten zde dostaneme aproximacı́
Z
Z
Z
1
∂ p̄
1
1
∆y p̄W + p̄P
p̄P + p̄E
∆y
−
dxdy =
p̄ dy −
p̄ dy ≈
−
=
(p̄W − p̄E ) .
̺ VP ∂x
̺ Sw
̺ Se
̺
2
2
2̺
Vzorce (48u ) se od vzorců (22u ) odlišujı́ tı́m, že neobsahujı́ předpis pro výpočet
rychlostı́ ūe , ūw , v̄n a v̄s na stranách Se , Sw , Sn a Ss kontrolnı́ho objemu VP . Tyto
rychlosti přebı́ráme z předchozı́ iterace, vzorce pro jejich výpočet uvedeme v odstavci
3.3, viz (77). Zdůrazněme, že při odvozovánı́ aproximacı́ konvekčnı́ch členů ∆y[−ūe ]+ ,
∆y[ūw ]+ , ∆x[−v̄n ]+ a ∆x[v̄s ]+ se (stejně jako v metodě s přesazenými sı́těmi) využı́vá
toho, že rychlosti ūe , ūw , v̄n a v̄s splňujı́ diskrétnı́ rovnici kontinuity (49).
Okrajové podmı́nky zpracujeme podobně jako v přı́padě přesazených sı́tı́.
3.2 Druhá pohybová rovnice
je tvaru
AvP vP = AvE vE + AvW vW + AvN vN + AvS vS + bvP +
18
∆x
(p̄S − p̄N ) ,
2̺
(47v )
kde
∆y
,
∆x
∆x
AvN = ∆x[−v̄n ]+ + ν
,
∆y
AvE = ∆y[−ūe ]+ + ν
∆y
,
∆x
∆x
AvS = ∆x[v̄s ]+ + ν
,
∆y
AvW = ∆y[ūw ]+ + ν
(48v )
∆x∆y
AvP = AvE + AvW + AvN + AvS + ∆x∆y[f¯1v ]P +
,
∆t
∆x∆y 0
bvP =
v + ∆x∆y[f¯0v ]P .
∆t P
Všimněte si, že Avℓ = Auℓ pro ℓ = E, W, N, S. Okrajové podmı́nky zpracujeme podobně
jako v přı́padě přesazených sı́tı́.
3.3 Rovnice kontinuity
Integracı́ rovnice (1) přes kontrolnı́ objem VP dostaneme
Z
Z
Z
Z
u dy +
v dx −
v dx = 0 ,
u dy −
Se
Sw
Sn
Ss
a odtud diskretizovaná rovnice kontinuity
∆y(ue − uw ) + ∆x(vn − vs ) = 0 .
(49)
Skutečnost, že v pohybových rovnicı́ch (47u ) a (47v ) chybı́ hodnota p̄P tlaku ve středu
kontrolnı́ho objemu VP , podstatně ovlivnı́ aproximaci rychlostı́ ue , uw , vn a vs ve středech
stran Se , Sw , Sn a Ss . Namı́sto přı́močaré lineárnı́ interpolace z přilehlých kontrolnı́ch
objemů použijeme tzv. schéma přı́davné disipace.
Východiskem pro odvozenı́ schématu přı́davné disipace jsou diskretizované pohybové
rovnice. Označı́me-li řešenı́ těchto rovnic hvězdičkou v pozici pravého hornı́ho indexu,
dostaneme z rovnice (47u ) pro kontrolnı́ objemy VP a VE
∆y 1
(p̄W − p̄E ) ,
2̺ AuP
∆y 1
u∗E = û∗E +
(p̄P − p̄EE ) ,
2̺ [AuP ]E
(50∗ )
1
(AuE u∗E + AuW u∗W + AuN u∗N + AuS u∗S + buP ) ,
AuP
1
û∗E = u ([AuE ]E u∗EE + [AuW ]E u∗P + [AuN ]E u∗N E + [AuS ]E u∗SE + [buP ]E ) .
[AP ]E
(51∗ )
u∗P = û∗P +
kde
û∗P =
Index E vpravo dole u hranatých závorek okolo koeficientů Au přitom vyznačuje, že tyto
koeficienty přı́slušı́ kontrolnı́mu objemu VE . Schéma přı́davné disipace aproximuje rychlost
u∗ ve středu strany Se výrazem
u∗e = u∗e,lin + u∗e,add ,
(52∗ )
19
kde člen u∗e,lin dostaneme lineárnı́ interpolacı́,
u∗e,lin = 12 (u∗P + u∗E ) ,
(53∗ )
a člen u∗e,add je přı́davný,
u∗e,add
∆y 1
∆y 1
∆y
=−
(p̄W − p̄E )−
(p̄P − p̄EE )+
u
u
4̺ AP
4̺ [AP ]E
2̺
1
1
+ u
u
AP
[AP ]E
(p̄P − p̄E ) . (54∗ )
Pomocı́ (51∗ ) můžeme zı́skanou aproximaci vyjádřit ve tvaru
kde û∗e = 12 (û∗P + û∗E )
u∗e = û∗e + de (p̄P − p̄E ) ,
(55∗ )
a
∆y
de =
2̺
1
1
+ u
u
AP
[AP ]E
.
(56)
Při odvozovánı́ aproximace u∗w ve středu západnı́ strany Sw postupujeme podobně.
Z rovnice (47u ) pro kontrolnı́ objem VW vyjádřı́me
u∗W = û∗W +
∆y 1
(p̄W W − p̄P ) ,
2̺ [AuP ]W
(57∗ )
kde
û∗W =
1
[AuP ]W
([AuE ]W u∗P + [AuW ]W u∗W W + [AuN ]W u∗N W + [AuS ]W u∗SW + [buP ]W ) ,
(58∗ )
a definujeme
u∗w = u∗w,lin + u∗w,add ,
(59∗ )
u∗w,lin = 12 (u∗P + u∗W )
(60∗ )
kde
a
u∗w,add
∆y 1
∆y 1
∆y
=−
(p̄W − p̄E ) −
(p̄W W − p̄P ) +
u
u
4̺ AP
4̺ [AP ]W
2̺
1
1
+ u
u
AP
[AP ]W
(p̄W − p̄P ) .
(61∗ )
Pomocı́ (58∗ ) můžeme zı́skanou aproximaci vyjádřit ve tvaru
kde û∗w = 21 (û∗P + û∗W )
u∗w = û∗w + dw (p̄W − p̄P ) ,
(62∗ )
a
∆y
dw =
2̺
1
1
+ u
u
AP
[AP ]W
.
(63)
20
∗
Rychlosti vn∗ a vs∗ dostaneme z rovnice (47v ). Je-li vP∗ , vN
a vS∗ řešenı́ rovnice (47v )
v kontrolnı́ch objemech VP , VN a VS , pak
∆x 1
(p̄S − p̄N ) ,
2̺ AvP
∆x 1
∗
∗
vN
= v̂N
+
(p̄P − p̄N N ) ,
2̺ [AvP ]N
∆x 1
vS∗ = v̂S∗ +
(p̄SS − p̄P ) ,
2̺ [AvP ]S
(64∗ )
1
∗
∗
(AvE vE∗ + AvW vW
+ AvN vN
+ AvS vS∗ + bvP ) ,
AvP
1
∗
v
∗
v
∗
v
∗
v
∗
v̂N
= v ([AvE ]N vN
E + [AW ]N vN W + [AN ]N vN N + [AS ]N vP + [bP ]N ) ,
[AP ]N
1
∗
∗
∗
v̂S∗ = v ([AvE ]S vSE
+ [AvW ]S vSW
+ [AvN ]S vP∗ + [AvS ]S vSS
+ [bvP ]S ) .
[AP ]S
(65∗ )
vP∗ = v̂P∗ +
kde
v̂P∗ =
Definujeme
∗
∗
vn∗ = vn,lin
+ vn,add
,
∗
∗
vs∗ = vs,lin
+ vs,add
,
(66∗ )
kde
∗
∗
vn,lin
= 12 (vP∗ + vN
),
∗
vs,lin
= 21 (vP∗ + vS∗ ) ,
(67∗ )
a
∗
vn,add
∗
vs,add
∆x 1
∆x 1
∆x
1
1
=−
(p̄S − p̄N ) −
(p̄P − p̄N N ) +
+ v
(p̄P − p̄N ) ,
4̺ AvP
4̺ [AvP ]N
2̺ AvP
[AP ]N
∆x 1
∆x 1
∆x
1
1
=−
(p̄S − p̄N ) −
(p̄SS − p̄P ) +
+ v
(p̄S − p̄P ) .
4̺ AvP
4̺ [AvP ]S
2̺ AvP
[AP ]S
(68∗ )
Pomocı́ (65∗ ) můžeme zı́skané aproximace vyjádřit ve tvaru
vn∗ = v̂n∗ + dn (p̄P − p̄N ) ,
vs∗ = v̂s∗ + ds (p̄S − p̄P ) ,
kde
∗
v̂n∗ = 12 (v̂P∗ + v̂N
),
1 ∗
∗
∗
v̂s = 2 (v̂P + v̂S ) ,
(69∗ )
a
∆x
dn =
2̺
1
1
v +
v
AP
[AP ]N
,
∆x
ds =
2̺
1
1
v +
AP
[AvP ]S
.
(70)
Předpokládejme, že hledané rychlosti u, v a tlak p splňujı́ diskretizované pohybové
rovnice. To ale znamená, že platı́ rovnice (55∗), (62∗ ) a (69∗ ), v nichž dosadı́me u, v a p
mı́sto u∗ , v ∗ a p̄, tj. platı́
ue = ûe + de (pP − pE ) ,
kde ûe = 12 (ûP + ûE ) ,
21
(55)
uw = ûw + dw (pW − pP ) ,
kde ûw = 12 (ûP + ûW ) ,
(62)
a
vn = v̂n + dn (pP − pN ) ,
vs = v̂s + ds (pS − pP ) ,
v̂n = 12 (v̂P + v̂N ) ,
v̂s = 12 (v̂P + v̂S ) .
kde
(69)
Přitom výrazy ûP , ûE , ûW , v̂P , v̂N a v̂S jsou tvaru (51∗), (58∗ ) a (65∗ ), pokud v nich
dosadı́me u mı́sto u∗ a v mı́sto v ∗ .
Označme
a
u = u∗ + u′ ,
v = v∗ + v′ ,
(71)
p = p̄ + p′ ,
(72)
tj. u′, v ′ a p′ jsou hledané korekce. Odečtenı́m rovnic (55∗ ) od (55), (62∗ ) od (62) a (69∗ )
od (69) dostaneme
u′e = û′e + de (p′P − p′E ) ,
vn′ = v̂n′ + dn (p′P − p′N ) ,
u′w = û′w + dw (p′W − p′P ) ,
vs′ = v̂s′ + ds (p′S − p′P ) .
(73)
Když v rovnicı́ch (73) vypustı́me členy opatřené střı́škou, dostaneme aproximace korigovaných rychlostı́
u′e = de (p′P − p′E ) ,
vn′ = dn (p′P − p′N ) ,
u′w = dw (p′W − p′P ) ,
vs′ = ds (p′S − p′P ) .
(74)
Do diskretizované rovnice kontinuity (49) ted’ dosadı́me rychlosti (71),
∆y(u′e − u′w ) + ∆x(vn′ − vs′ ) = −[∆y(u∗e − u∗w ) + ∆x(vn∗ − vs∗ )] ,
a za korekce rychlostı́ dosadı́me z (74). Tak dostaneme rovnici pro výpočet tlakových
korekcı́
ApP p′P = ApE p′E + ApW p′W + ApN p′N + ApS p′S + bpP ,
(75)
kde
ApE
ApW
[∆y]2
= ∆y de =
2̺
1
1
+ u
,
AuP
[AP ]E
[∆y]2
1
1
= ∆y dw =
+ u
,
2̺
AuP
[AP ]W
[∆x]2
= ∆xdn =
2̺
1
1
+ v
,
AvP
[AP ]N
[∆x]2
1
1
p
AS = ∆xds =
+ v
,
2̺
AvP
[AP ]S
ApN
(76)
ApP = ApE + ApW + ApN + ApS ,
bpP = −[∆y(u∗e − u∗w ) + ∆x(vn∗ − vs∗ )] .
22
(76)
V rovnici (75) vyjadřuje člen bpP mı́ru nesplněnı́ diskrétnı́ rovnice kontinuity (49) rychlostmi
u∗ a v ∗ . Je-li na všech kontrolnı́ch objemech bpP = 0, je p′P = 0 a u∗e = ue , u∗w = uw , vn∗ = vn
a vs∗ = vs . Vidı́me tedy, že i když aproximace (74) použitá k odvozenı́ rovnic (75) je velmi
hrubá, je asymptoticky správná.
Zdůrazněme, že rychlosti u∗e , u∗w , vn∗ a ve∗ počı́táme ze vztahů (52∗ ), (59∗ ) a (66∗ ),
∗
∗
rychlosti u∗e,lin, u∗w,lin , vn,lin
a vs,lin
ze vztahů (53∗ ), (60∗ ) a (67∗ ) a rychlosti u∗e,add , u∗w,add ,
∗
∗
vn,add
a vs,add
ze vztahů (54∗ ), (61∗ ) a (68∗ ).
Okrajové podmı́nky zpracujeme podobně jako v přı́padě přesazených sı́tı́.
Poté, co určı́me tlakové korekce jako řešenı́ soustavy rovnic (75), dopočı́táme podle
(73) korekce rychlostı́ a vypočteme korigované rychlosti
ue = u∗e + u′e ,
vn = vn∗ + vn′ ,
uw = u∗w + u′w ,
vs = vs∗ + vs′
(77)
a korigovaný tlak
pP = p̄ + p′P .
(78)
Pomocné rychlosti ue , uw , vn a vs přenášı́me do dalšı́ iterace, kde je značı́me jako ūe ,
ūw , v̄n a v̄s , a použı́váme je při sestavovánı́ pohybových rovnic, viz (47u ) a (47v ).
Rychlosti ve středech buněk nenı́ třeba korigovat: nastane-li konvergence, lze za správ”
né“ považovat rychlosti u∗ a v ∗ .
Při výpočtu rychlostı́ u∗ , v ∗ a tlaku p lze (podobně jako u přesazených sı́tı́) použı́t
dolnı́ relaxaci.
Algoritmus SIMPLE je podobný jako u přesazených sı́tı́.
Schéma přı́davné disipace odvozuje své pojmenovánı́ z toho, že přı́davné členy ue,add ,
uw,add , vn,add a vs,add vnášejı́ do diskretizované rovnice kontinuity (49) chybový člen obsahujı́cı́ čtvrté derivace tlaku, jak stručně naznačı́me.
Pro zjednodušenı́ našich úvah předpokládejme, že
AuP = AuE = AuW ,
AvP = AvE = AvW .
Pak lze z předpisů (54∗ ), (61∗ ) a (68∗ ), definujı́cı́ch přı́davné členy ue,add , uw,add , vn,add
a vs,add (hvězdičku u rychlostı́ a pruh u tlaku vypouštı́me), užitı́m Taylorova rozvoje
odvodit, že
4 ∆y
∂ p
4
6
ue,add − uw,add =
∆x + O(∆x ) ,
4̺AuP
∂x4 P
(79)
4 ∆x
∂
p
∗
∆y 4 + O(∆y 6) .
vn,add − vs,add
=
4̺AvP
∂y 4 P
Odtud, a z předpisů (53∗ ) a (60∗ ), (67∗ ), definujı́cı́ch lineárnı́ členy ue,lin, uw,lin , vn,lin
a vs,lin (hvězdičku u rychlostı́ vypouštı́me), znovu pomocı́ Taylorovy věty dostaneme
ue − uw vn − vs
∂u
∂v
+
=
+
+ O(∆x2 + ∆y 2 )+
∆x
∆y
∂x P
∂y P
(80)
4 4 1
∂ p
1
∂ p
3
3
+
∆x +
∆y .
4̺AuP ∂x4 P
4̺AvP ∂y 4 P
23
Diskrétnı́ rovnice kontinuity (49), nebo-li levá strana v rovnice (80), aproximuje rovnici
kontinuity (1) v bodě P s chybou, jejı́ž hlavnı́ část vyjádřená výrazem O(∆x2 + ∆y 2 )
pocházı́ z lineárnı́ interpolace. Hlavnı́ část chyby pocházejı́cı́ od přı́davných rychlostı́ je
řádově menšı́ a obsahuje čtvrté derivace tlaku. Sudé derivace obsažené v diskretizačnı́
chybě jsou v literatuře často nazývány disipacı́; odtud název schéma přı́davné disipace.
Přı́davné členy jsou z hlediska přesnosti nevýznamné, což je dobře, pro zı́skánı́ realistických výsledků jsou však zcela nezbytné! Praktické zkušenosti i teoretické analýzy
jednoznačně potvrzujı́, že při vynechánı́ přı́davných rychlostı́ docházı́ ke vzniku falešných
oscilacı́ jak u rychlostı́ tak u tlaku. Vı́ce informacı́ o tomto efektu může čtenář najı́t např.
v [2], [1].
Literatura
[1] J.H. Ferziger, M.. Peric: Computational Methods for Fluid Dynamics, 3th ed., Springer,
Berlin, 2002.
[2] J.Y. Murthy, S.R. Mathur: Numerical Methods in Heat, Mass and Momentum Transfer,
Draft Notes ME 608, Purdue University, 2002,
http://widget.ecn.purdue.edu/~jmurthy/me608/main.pdf.
[3] S.V. Patankar: Numerical Heat Transfer and Fluid Flow, McGraw-Hill, New York, 1980.
[4] S.V. Patankar, D.B. Spalding: A calculation procedure for heat, mass and momentum transfer in three-dimensional parabolic flows, Int. J. Heat, Mass Transfer, vol. 15, p. 1787-1805,
1972.
[5] H.K.Versteeg, W. Malalasekera: An introduction to Computational Fluid Dynamics. The
Finite Volume Method, Longman Scientific & Technical, Harlow, 1995.
24

Podobné dokumenty

práce je dostupná online

práce je dostupná online nebo úhlem pozorovánı́ a dalšı́ (bližšı́ vysvětlenı́ v kapitole 4.2.1). Z toho vyplývá, že IČT kamera může měřit, při správném nastavenı́ a zahrnutı́ vlivů okolnı́ho prostředı́, ...

Více

Numerické metody pro řešení diferenciálních rovnic

Numerické metody pro řešení diferenciálních rovnic V dalšı́m budeme vždy předpokládat, že uvažovaná počátečnı́ úloha má v intervalu ha, bi jediné řešenı́. Budeme také předpokládat, že funkce f(t, y) má tolik spojitých derivacı́...

Více

13. díl – Nepálský Turbolet aneb L-410 pokořil

13. díl – Nepálský Turbolet aneb L-410 pokořil frekventovaným místem, neboť slouží jako výchozí bod pro cesty dobrodruhů mířících do Himálají s cílem zdolat monumentální Mount Everest. Ročně toto letiště odbaví přes 90 tisíc cestujících. Zájemc...

Více

Numerická matematika pro doktorandy

Numerická matematika pro doktorandy Definice. Čtvercová matice A se nazývá regulární, když detA 6= 0. Jinak se A nazývá singulární. Definice. Jsou-li matice A typu (m, n) a matice B typu (n, k), pak matice C = A · B je typu (m, k) a ...

Více

ċش<GKL G NQ<شFئ HD9L=:Fئ C9JLQ 3(9QE=FL 9J

ċش<GKL G NQ<شFئ HD9L=:Fئ C9JLQ 3(9QE=FL 9J (JG@DÔİ=FÆċ9<9L=D=3HHDA;9FL‡K=;D9J9LAGF5 ×ċ9<9L=DHG Více

Baterie Duracell JVC, BN-VF714U, 7,2V

Baterie Duracell JVC, BN-VF714U, 7,2V GR-D320, GR-D320EX, GR-D328EF, GR-D329AH, GR-D338AH, GR-D340, GR-D340EX, GR-D350, GRD350AC, GR-D350AH, GR-D350U, GR-D350US, GR-D360, GR-D360EX, GR-D370, GR-D370AC, GRD370AH, GR-D370EX, GR-D370U, GR...

Více