ˇRešen´ı Navierových-Stokesových rovnic metodou tlakových korekc´ı
Transkript
Ř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
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ı́, ...
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ı́...
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...
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 ...
ċش<GKL G NQ<شFئ HD9L=:Fئ C9JLQ 3(9QE=FL 9J
(JG@DÔİ=FÆċ9<9L=D=3HHDA;9FLK=;D9J9LAGF5
×ċ9<9L=DHG
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...