Univerzita Karlova v Praze Matematicko-fyzik´aln´ı fakulta
´ RSK ˇ ´ PRACE ´ BAKALA A
Libor Kadrnka Sch´ emata typu Moving Mesh pro ˇ reˇ sen´ı nestacion´ arn´ıch u ´ loh Katedra numerick´e matematiky
Vedouc´ı bakal´aˇrsk´e pr´ace: Doc. RNDr. Jiˇr´ı Felcman, CSc. Studijn´ı program: Matematika, obecn´a matematika
2007
Chtˇel bych podˇekovat vedouc´ımu sv´e bakal´aˇrsk´e pr´ace panu doc. RNDr. Jiˇr´ımu Felcmanovi, CSc., za cenn´e rady a pˇripom´ınky bˇehem veden´ı m´e bakal´aˇrsk´e pr´ace, panu Mgr. Petru Kuberovi za pomoc pˇri programov´an´ı, pan´ı RNDr. Ivetˇe Hnˇetynkov´e, Ph.D., za zap˚ ujˇcen´ı poˇc´ıtaˇce a zejm´ena sv´ ym rodiˇc˚ um za podporu bˇehem cel´eho m´eho studia.
Prohlaˇsuji, ˇze jsem svou bakal´aˇrskou pr´aci napsal samostatnˇe a v´ yhradnˇe s pouˇzit´ım citovan´ ych pramen˚ u. Souhlas´ım se zap˚ ujˇcov´an´ım pr´ace a jej´ım zveˇrejˇ nov´an´ım. V Praze dne 1. srpna 2007
Libor Kadrnka
2
Obsah ´ 1 Uvod
5
2 Popis metody 2.1 Vytvoˇren´ı s´ıtˇe pomoc´ı minimalizace funkcion´alu . . . . . . . . . . . . . 2.1.1 Jednorozmˇern´ y pˇr´ıpad . . . 2.2 Popis algoritmu . . . . . . . . . . . 2.2.1 Metoda s´ıt´ı . . . . . . . . . 2.2.2 Metoda umˇel´eho ˇcasu . . . .
7 . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
7 8 11 11 12
3 Numerick´ e experimenty 3.1 Funkce s pohybuj´ıc´ı se nespojitost´ı . . 3.2 Aplikace adaptivn´ı s´ıtˇe pˇri ˇreˇsen´ı PDR 3.2.1 Burgersova rovnice . . . . . . . 3.2.2 Riemann˚ uv probl´em . . . . . . 3.3 Srovn´an´ı r˚ uzn´ ych adaptivn´ıch metod .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
18 18 25 25 26 30
Literatura
. . . . .
33
3
N´azev pr´ace: Sch´emata typu Moving Mesh pro ˇreˇsen´ı nestacion´arn´ıch u ´loh Autor: Libor Kadrnka Katedra (´ ustav): Katedra numerick´e matematiky Vedouc´ı bakal´aˇrsk´e pr´ace: Doc. RNDr. Jiˇr´ı Felcman, CSc. e-mail vedouc´ıho:
[email protected] Abstrakt: V pˇredloˇzen´e pr´aci se zab´ yv´ ame vytvoˇren´ım adaptivn´ı v´ ypoˇcetn´ı s´ıtˇe, kter´a se pouˇz´ıv´a pˇri ˇreˇsen´ı parci´aln´ıch diferenci´aln´ıch rovnic (PDR). S´ıt’ budeme adaptovat v z´avislosti na chov´ an´ı pˇribliˇzn´eho ˇreˇsen´ı t´eto rovnice v ˇcase. Probl´em adaptace v´ ypoˇcetn´ı s´ıtˇe pˇrevedeme na minimalizaci jist´eho funkcion´alu. Nutnou podm´ınkou k tomu, aby funkcion´ al nab´ yval minima, je splnˇen´ı jist´e diferenci´aln´ı rovnice. Hledan´e uzly adaptovan´e v´ ypoˇcetn´ı s´ıtˇe jsou tvoˇreny hodnotami diskr´etn´ıho ˇreˇsen´ı t´eto rovnice. Na nespojit´ ych funkc´ıch simuluj´ıc´ıch v´ yvoj pˇribliˇzn´eho ˇreˇsen´ı PDR v ˇcase uk´aˇzeme, jak adaptace s´ıtˇe funguje. Pot´e s pomoc´ı adaptivn´ı v´ ypoˇcetn´ı s´ıtˇe najdeme pˇribliˇzn´e ˇreˇsen´ı dvou PDR a toto ˇreˇsen´ı srovn´ ame s ˇreˇsen´ım pˇresn´ ym a s ˇreˇsen´ım z´ıskan´ ym bez vyuˇzit´ı adaptivn´ı s´ıtˇe. Na z´avˇer srovn´ ame metodu popsanou v t´eto pr´aci s anizotropn´ı adaptivn´ı metodou vyv´ıjenou na katedˇre numerick´e matematiky MFF UK. Kl´ıˇcov´a slova: adaptivn´ı s´ıt’, geometrick´ y z´akon zachov´ an´ı, metoda koneˇcn´ ych objem˚ u, pohybuj´ıc´ı se nespojitost
Title: Moving Mesh schemes for nonstationary problems Author: Libor Kadrnka Department: Department of Numerical Mathematics Supervisor: Doc. RNDr. Jiˇr´ı Felcman, CSc. Supervisor’s e-mail address:
[email protected] Abstract: The presented work focuses on creating an adaptive computational mesh which is to be used for solving partial differential equations (PDE). The mesh is adapted according to the numerical solution behaviour of this equation in time. The problem of mesh adaptation is reduced to minimization of a certain functional. A necessary condition for the functional to have a minimum is that a certain differential equation holds. The grid points of the moving mesh on the next time level are given by the discrete solution of this equation. On discontinuous functions simulating the evolution of the PDE numerical solution in time we demonstrate how the mesh adaptation works. Then, using a moving mesh, we find a numerical solution to two PDEs and we compare this solution with the exact solution and with the solution obtained without using any adaptive mesh. Finally, we compare the adaptive method described in this work with an anisotropic mesh adaptation method developed at the Department of Numerical Mathematics MFF UK. Keywords: adaptive mesh, geometric conservation law, finite volume method, moving discontinuity
4
Kapitola 1 ´ Uvod Funkce, kter´e jsou ˇreˇsen´ım parci´aln´ıch diferenci´aln´ıch rovnic, obecnˇe mohou obsahovat nespojitosti nebo mohou m´ıt v nˇekter´ ych bodech velkou hodnotu gradientu. Pˇri hled´an´ı ˇreˇsen´ı numerickou metodou, jako je napˇr´ıklad metoda koneˇcn´ ych objem˚ u, m˚ uˇze pˇri pouˇzit´ı rovnomˇern´e triangulace oblasti, na n´ıˇz rovnici ˇreˇs´ıme, doj´ıt ke zkreslen´ı tohoto ˇreˇsen´ı v m´ıstech, kde se tato nespojitost ˇci vysok´ y gradient vyskytuje. Proto se pouˇz´ıvaj´ı tzv. adaptivn´ı metody, kdy se v pr˚ ubˇehu v´ ypoˇctu triangulace oblasti v kaˇzd´em kroku pˇrizp˚ usobuje pˇribliˇzn´emu ˇreˇsen´ı z´ıskan´emu v kroku pˇredchoz´ım na z´akladˇe dan´eho krit´eria adaptivn´ı metody. V naˇsem pˇr´ıpadˇe se v m´ıstech s vysok´ ym gradientem nebo v m´ıstech nespojitosti zv´ yˇs´ı poˇcet prvk˚ u triangulace, zat´ımco na zbytku oblasti se jejich poˇcet sn´ıˇz´ı, ˇza´dn´e nov´e prvky triangulace tedy nevytv´aˇr´ıme, pouze se na z´akladˇe chov´an´ı z´ıskan´eho pˇribliˇzn´eho ˇreˇsen´ı na v´ ypoˇcetn´ı oblasti snaˇz´ıme prvky triangulace rozloˇzit na v´ ypoˇcetn´ı oblasti v´ yˇse uveden´ ym zp˚ usobem. Pˇredpokl´ad´ame, ˇze pˇribliˇzn´e ˇreˇsen´ı parci´aln´ı diferenci´aln´ı rovnice se hled´a metodou koneˇcn´ych objem˚ u. Pˇri pouˇzit´ı t´eto metody je pˇribliˇzn´e ˇreˇsen´ı z´ısk´ano ve tvaru po ˇca´stech konstantn´ı funkce, pˇriˇcemˇz tato funkce je konstantn´ı ve vnitˇrku kaˇzd´eho prvku triangulace. V t´eto pr´aci se budeme zab´ yvat adaptivn´ı metodou popsanou v ˇcl´anku [3], kter´ y se t´ yk´a ˇreˇsen´ı jedno- a dvourozmˇern´ ych hyperbolick´ ych rovnic, my se vˇsak omez´ıme pouze na jednorozmˇern´ y pˇr´ıpad parci´aln´ı diferenci´aln´ı rovnice. Nejprve si tuto metodu podrobnˇe pˇredstav´ıme a n´aslednˇe si pomoc´ı numerick´ ych experiment˚ u uk´aˇzeme, jak funguje. Bˇehem experiment˚ u nejdˇr´ıve vyzkouˇs´ıme adaptivitu s´ıtˇe na funkc´ıch, u nichˇz zn´ame jejich pr˚ ubˇeh, konkr´etnˇe budeme u funkc´ı, kter´e jsou po ˇca´stech line´arn´ı a jejichˇz nespojitost se v pr˚ ubˇehu ˇcasu pohybuje, zkoumat, zda se uzly s´ıtˇe takt´eˇz pohybuj´ı spolu s nespojitost´ı a zda se souˇcasnˇe v dan´em ˇcasov´em okamˇziku v m´ıstˇe nespojitosti nal´ez´a v´ıce uzl˚ u neˇz v m´ıstech, kde takovou vlastnost funkce nem´a a vˇse si ilustrujeme na obr´azc´ıch. Pot´e pouˇzijeme adaptivn´ı s´ıt’ pˇri ˇreˇsen´ı parci´aln´ıch diferenci´aln´ıch rovnic, je-
5
jichˇz pˇresn´e ˇreˇsen´ı zn´ame a uk´aˇzeme, ˇze adaptivita s´ıtˇe v´ yraznˇe zvyˇsuje pˇresnost pˇribliˇzn´eho ˇreˇsen´ı oproti pˇr´ıpadu, kdy se s´ıt’ neadaptuje. Vˇse bude opˇet ilustrov´ano na obr´azc´ıch. Na z´avˇer srovn´ame zkoumanou adaptivn´ı metodu s jinou adaptivn´ı metodou, a to anizotropn´ı metodou zjemˇ nov´an´ı v´ ypoˇcetn´ı s´ıtˇe popsanou v ˇcl´anku [2] a na internetov´e adrese http://www.karlin.mff.cuni.cz/ e dolejsi/angen/angen3.1.htm a na obr´azc´ıch srovn´ame pohyb uzl˚ u v´ ypoˇcetn´ı s´ıtˇe pˇri pouˇzit´ı obou adaptivn´ıch metod.
6
Kapitola 2 Popis metody V t´eto kapitole si podrobnˇe pˇredstav´ıme adaptivn´ı metodu popsanou v ˇcl´anku [3], veˇsker´e vzorce v t´eto kapitole jsou citov´any z [3].
2.1
Vytvoˇ ren´ı s´ıtˇ e pomoc´ı minimalizace funkcion´ alu
Pˇredpokl´adejme, ˇze N ≥ 1 oznaˇcuje dimenzi prostoru, v nˇemˇz se nach´az´ı fyzik´ aln´ı oblast Ωp ⊂ IRN , tj. oblast, v n´ıˇz m´ame definovanou parci´aln´ı diferenci´aln´ı rovnici, pˇri jej´ımˇz ˇreˇsen´ı budeme adaptovat v´ ypoˇcetn´ı s´ıt’. Necht’ souˇradnice fyzik´aln´ı oblasti jsou d´any jako x = (x1 , x2 , . . . , xN ), pˇredpokl´adejme d´ale, ˇze fyzik´aln´ı oblast je obrazem v´ypoˇcetn´ı oblasti Ωc ⊂ IRN pˇri vz´ajemnˇe jednoznaˇcn´em zobrazen´ı z Ωc na Ωp , oznaˇcme ξ = (ξ1 , ξ2 , . . . , ξN ) souˇradnice t´eto v´ ypoˇcetn´ı oblasti. Transformaci souˇradnic z oblasti Ωc do oblasti Ωp oznaˇc´ıme x = x(ξ),
ξ ∈ Ωc ,
inverzn´ı zobrazen´ı z oblasti Ωp do oblasti Ωc oznaˇc´ıme ξ = ξ(x),
x ∈ Ωp .
Pˇri hled´an´ı ˇreˇsen´ı zmiˇ novan´e parci´aln´ı diferenci´aln´ı rovnice provedeme triangulaci fyzik´aln´ı oblasti Ωp a n´aslednˇe hled´ame pˇribliˇzn´e ˇreˇsen´ı. Pˇresn´e ˇreˇsen´ı m˚ uˇze m´ıt v nˇekter´ ych m´ıstech velk´ y gradient ˇci dokonce nespojitost a nen´ı-li triangulace oblasti dostateˇcnˇe jemn´a, nemus´ı m´ıt numerick´e ˇreˇsen´ı n´ami poˇzadovanou pˇresnost. Na druhou stranu, je-li triangulace oblasti rovnomˇern´a a m´a-li b´ yt dostateˇcnˇe jemn´a, m˚ uˇzeme t´ımto poˇzadavkem na jemnost s´ıtˇe znaˇcnˇe zv´ yˇsit v´ ypoˇcetn´ı n´aroˇcnost, coˇz je neˇz´adouc´ı. Proto je vhodn´e triangulaci zjemˇ novat pouze v tˇech m´ıstech, ve kter´ ych doch´az´ı k velk´ ym zmˇen´am v ˇreˇsen´ı. Naˇs´ım c´ılem je tedy nal´ezt takov´e zobrazen´ı z pomocn´e v´ ypoˇcetn´ı oblasti Ωc do oblasti 7
Ωp , tj. takov´e rozloˇzen´ı prvk˚ u triangulace, aby se v takto problematick´ ych m´ıstech nach´azel vˇetˇs´ı poˇcet prvk˚ u triangulace neˇzli v m´ıstech, kde v´ yˇse zm´ınˇen´e probl´emy nenast´avaj´ı. Toho lze dos´ahnout napˇr´ıklad minimalizac´ı n´asleduj´ıc´ıho funkcion´alu, jak je uvedeno v ˇcl´anku [3]. Minimalizujme tedy funkcion´al (2.1)
E(ξ) =
N Z 1X ∇ξkT G−1 k ∇ξk dx, 2 k=1 Ωp
kde ∇ := (∂x1 , ∂x2 , . . . , ∂xN )T a Gk , 1 ≤ k ≤ N jsou dan´e symetrick´e pozitivnˇe definitn´ı matice zvan´e monitorovac´ı funkce. Nutnou podm´ınkou, aby funkcion´al E nab´ yval minima, je Euler-Lagrangeova rovnice funkcion´alu (2.1), a to (2.2)
∇.(G−1 k ∇ξk ) = 0,
1 ≤ k ≤ N.
Za monitorovac´ı funkce Gk zvol´ıme Gk = ωI, 1 ≤ k ≤ q N , kde I je jednotkov´a matice a ω je kladn´a v´ahov´a funkce, napˇr. ω = 1 + |∇u| 2 , kde u je ˇreˇsen´ım parci´aln´ı diferenci´aln´ı rovnice, kter´e hled´ame. Rovnost (2.2) pak lze zapsat ve tvaru µ
(2.3)
2.1.1
∇.
¶
1 ∇ξk = 0, ω
1 ≤ k ≤ N.
Jednorozmˇ ern´ y pˇ r´ıpad
Zab´ yvejme se nyn´ı pˇr´ıpadem, kdy N = 1. Necht’ x oznaˇcuje fyzik´aln´ı souˇradnice definovan´e v odstavci 2.1. Necht’ x ∈ Ωp = [a, b], a, b ∈ IR, a < b. Triangulace intervalu [a, b] je v tomto jednoduch´em pˇr´ıpadˇe dˇelen´ı intervalu. V t´eto pr´aci se budeme zab´ yvat adaptivn´ım zjemˇ nov´an´ım v´ ypoˇcetn´ı s´ıtˇe na intervalu [a, b] pˇri hled´an´ı ˇreˇsen´ı parci´aln´ı diferenci´aln´ı rovnice tvaru (2.4)
∂ (f (u)) ∂u (x, t) + (x, t) = 0, ∂t ∂x
t ∈ (0, T ],
x ∈ [a, b],
s poˇca´teˇcn´ı podm´ınkou (2.5)
u(x, 0) = u0 (x),
x ∈ [a, b],
a vhodnou okrajovou podm´ınkou. Pˇredpokl´ad´ame, ˇze f ∈ C 1 (IR) a ˇze funkce u0 , kter´a m´a kompaktn´ı nosiˇc 8
v IR, splˇ nuje u0 ∈ L∞ (IR) ∩ BV (IR). O pˇresn´em ˇreˇsen´ı u t´eto rovnice budeme pˇredpokl´adat, ˇze u ∈ L∞ (IR) a ˇze u je slab´ ym po ˇca´stech hladk´ ym ˇreˇsen´ım rovnice (2.4) (definice pojmu slab´e po ˇc´ astech hladk´e ˇreˇsen´ı viz kapitola 2.3 v knize [1]). Definujme si pomocnou v´ ypoˇcetn´ı oblast Ωc = [0, 1], oznaˇcme ξ ∈ [0, 1] souˇradnice na [0, 1] a definujme tak´e transformace souˇradnic (2.6)
x = x(ξ), x(0) = a,
ξ ∈ [0, 1], x(1) = b.
ξ = ξ(x), ξ(a) = 0,
x ∈ [a, b], ξ(b) = 1.
a (2.7)
Nyn´ı najdeme zobrazen´ı z [0, 1] na [a, b] takov´e, abychom pomoc´ı nˇej zkonstruovali adaptivn´ı v´ ypoˇcetn´ı s´ıt’ na [a, b]. To provedeme pomoc´ı minimalizace funkcion´alu (2.1), konkr´etnˇe podm´ınky (2.3), kter´a m´a v pˇr´ıpadˇe N = 1 tvar (ω −1 ξx )x = 0 na [a, b],
(2.8)
kde monitorovac´ı funkci ω definujeme jako (2.9)
ω(x) =
v u u t
Ã
!2
∂u 1+ (x) ∂x
,
x ∈ [a, b],
kde u je pˇresn´e ˇreˇsen´ı rovnice (2.4). V´ yraz na lev´e stranˇe rovnice (2.8) je funkce promˇenn´e x. Kdyby se n´am podaˇrilo tuto rovnici transformovat do takov´eho tvaru, aby lev´a strana transformovan´e rovnice byla funkc´ı promˇenn´e ξ, diskr´etn´ı pˇribliˇzn´e ˇreˇsen´ı x transformovan´e rovnice n´am n´aslednˇe umoˇzn´ı, jak d´ale uvid´ıme, zkonstruovat uzly adaptivn´ıho dˇelen´ı intervalu [a, b]. Takto z´ıskan´e diskr´etn´ı ˇreˇsen´ı bude totiˇz minimalizovat funkcion´al (2.1), protoˇze rovnice (2.8) je pouze jednorozmˇernou podm´ınkou (2.2). Transformujme tedy rovnici (2.8). K tomu vyuˇzijeme n´asleduj´ıc´ı postup. Necht’ f : X → IR, g : Y → X, g −1 : X → Y , f ∈ C 1 (X), g ∈ C 1 (Y ), g −1 ∈ C 1 (X), kde X, Y jsou uzavˇren´e intervaly v IR a g je transformace souˇradnic z Y na X. Plat´ı tedy x = g(ξ), ξ = g −1 (x) ∀x ∈ −1 6= 0 v Y a dg 6= 0 v X. Rovnˇeˇz plat´ı ∀x ∈ X, ∀ξ ∈ Y X, ∀ξ ∈ Y , dg dξ dx df dg df dg −1 d (f ◦ g)(ξ) = (g(ξ)) . (ξ) = (x) . (g (x)) = dξ dx dξ dx dξ 9
df (x) . dx
= kde posledn´ı ˇclen
dg (g −1 (x)) dξ
1 dg −1 dx
1
=
6= 0 ∀x ∈ X, a proto plat´ı
dg −1 (x) dx
n´asleduj´ıc´ı ekvivalence: ∀ξ ∈ Y :
,
(x)
d (f ◦ g)(ξ) = 0 dξ
⇔
∀x ∈ X :
df (x) = 0. dx
Aplikac´ı pˇredchoz´ıho postupu na funkce g(ξ) := x(ξ), g −1 (x) := ξ(x),
f (x) :=
ξ ∈ [0, 1], dg −1 (x), dx
1 . ω(x)
x ∈ [a, b]
a s vyuˇzit´ım n´asleduj´ıc´ıho faktu, pˇri jehoˇz odvozen´ı se pouˇzije vˇeta o derivaci inverzn´ı funkce: dξ (x) 1 ξx = dx = . ω ω(x) ω(x(ξ))
1 dx (ξ) dξ
=
1 . e ω(ξ)
1 dx (ξ) dξ
=
1 , e ξ ωx
∀ξ ∈ [0, 1] ∀x ∈ [a, b], kde e ω(ξ) = ω(x(ξ)),
ξ ∈ [0, 1].
Dost´av´ame pro x = x(ξ), ξ = ξ(x), x ∈ [a, b], ξ ∈ [0, 1]: Ã −1
0 = (ω ξx )x ⇔
⇔
0=
1 e ξ ωx
e ξ xξ + ωx e ξξ = 0 ω
!
= ξ
⇔
e ξ xξ − ωx e ξξ −ω e ξ )2 (ωx
⇔
e ξ )ξ = 0. (ωx
Vid´ıme, ˇze rovnost (2.8) je ekvivalentn´ı rovnosti (2.10)
e ξ )ξ = 0 na [0, 1], (ωx
ˇc´ımˇz dost´av´ame poˇzadovanou transformaci rovnice (2.8), kde v´ yraz na lev´e stranˇe z´avisel na promˇenn´e x, na rovnici, kde je jiˇz v´ yraz na lev´e stranˇe funkc´ı promˇenn´e ξ. Konstrukci uzl˚ u adaptivn´ı s´ıtˇe na intervalu [a, b] provedeme v n´asleduj´ıc´ım odstavci.
10
2.2
Popis algoritmu
Na z´akladˇe odstavce 2.1.1 jiˇz nyn´ı m˚ uˇzeme zkonstruovat uzly adaptivn´ı v´ ypoˇcetn´ı s´ıtˇe v jednorozmˇern´em pˇr´ıpadˇe parci´aln´ı diferenci´aln´ı rovnice (2.4). Toho dos´ahneme nalezen´ım pˇribliˇzn´eho ˇreˇsen´ı rovnice (2.11)
e ξ )ξ = 0 na [0, 1] (ωx
s okrajov´ ymi podm´ınkami (2.12)
x(0) = a,
x(1) = b.
Ze z´ıskan´eho diskr´etn´ıho ˇreˇsen´ı uˇz m˚ uˇzeme jednoduˇse zkonstruovat uzly adaptivn´ı s´ıtˇe, jeˇz budou splˇ novat naˇse poˇzadavky, to znamen´a ˇze v m´ıstech, kde bude m´ıt funkce u velk´ y gradient nebo nespojitost, bude vyˇsˇs´ı poˇcet uzl˚ u dˇelen´ı intervalu [a, b], na nˇemˇz je funkce definov´ana, neˇz v m´ıstech, kde funkce u takovou vlastnost nem´a. Zaved’me oznaˇcen´ı. Uvaˇzujme interval [0, 1], necht’ ξ ∈ [0, 1] a bud’ 1 n ∈ IN, n ≥ 2. Necht’ h = n−1 je krok rovnomˇern´eho dˇelen´ı intervalu [0, 1] a ξj = (j − 1)h, 1 ≤ j ≤ n jsou uzly s´ıtˇe. Oznaˇcme 0 = t0 < t1 < . . . < tl = T , l ∈ IN dˇelen´ı intervalu [0, T ]. V kaˇzd´em ˇcasov´em kroku tk , k ∈ {0, . . . , l}, hled´an´ı pˇribliˇzn´eho ˇreˇsen´ı rovnice (2.4) oznaˇcme uk (x) := u(x, tk ), x ∈ [a, b]. Protoˇze ke zjemˇ nov´an´ı v´ ypoˇcetn´ı s´ıtˇe doch´az´ı pouze na z´akladˇe pˇribliˇzn´ ych hodnot funkce u z´ıskan´ ych v dan´em ˇcasov´em kroku tk , a zjemˇ nov´an´ı tedy nez´avis´ı na pˇredchoz´ıch hodnot´ach funkce u v ˇcasech t1 , . . . , tk−1 , bez nebezpeˇc´ı nedorozumˇen´ı budeme d´ale index k u funkce uk vynech´avat.
2.2.1
Metoda s´ıt´ı
Nejdˇr´ıve zkus´ıme nal´ezt ˇreˇsen´ı rovnice (2.11) metodou s´ıt´ı. Pˇribliˇzn´e ˇreˇsen´ı budeme hledat ve vnitˇrn´ıch bodech dˇelen´ı intervalu [0,1] takov´ ych, aby vˇsechny aproximace byly dobˇre definov´any. Pro 1 ≤ j ≤ n oznaˇcme x(ξj ) ≈ xj aproximaci hodnot funkce x v bodˇe ξj a pro 1 ≤ j ≤ n − 1 x(ξj+ 1 ) ≈ xj+ 1 aproximaci hodnot funkce x 2
2
v bodech ξj+ 1 = ξj +ξ2j+1 , 1 ≤ j ≤ n − 1. D´ale pro 1 ≤ j ≤ n − 1 oznaˇcme 2 u(xbj+ 1 ) ≈ uj+ 1 aproximaci hodnot funkce u v bodˇe xbj+ 1 = xj +x2 j+1 , 2 2 2 1 ≤ j ≤ n − 1. Aproximujme derivace rovnice (2.11) pomoc´ı centr´aln´ıch diferenc´ı: xξ (ξj ) =
xj+ 1 − xj− 1 dx 2 2 (ξj ) ≈ , dξ h
2 ≤ j ≤ n − 1.
D´ale aproximujme druhou derivaci centr´aln´ımi diferencemi za pomoci 11
pˇredchoz´ı aproximace: e ξ )ξ (ξj ) ≈ (ωx
e j+ 1 )(xj+1 − xj ) − ω(ξ e j− 1 )(xj − xj−1 ) ω(ξ 2
2
h2
,
2 ≤ j ≤ n − 1. e j+ 1 ) = ω(xj+ 1 ), 2 ≤ j ≤ n − 1. Zb´ yv´a aproximovat hodnoty ω(ξ 2 2 Zkusme to opˇet pomoc´ı centr´aln´ıch diferenc´ı takto, udˇelejme to pouze pro 3 ≤ j ≤ n − 2: v 2 u u uj+ 3 − uj− 1 u 2 2 e j+ 1 ) = ω(xj+ 1 ) ≈ t1 + ω(ξ = 2 2 b b 3 1 xj+ − xj− 2
=
v u u t
Ã
1+4
!2
uj+ 3 − uj− 1 2
2
2
xj+2 + xj+1 − xj − xj−1
,
3 ≤ j ≤ n − 2.
Je vidˇet, ˇze abychom mohli aproximovat ω(xj+ 1 ), 3 ≤ j ≤ n − 2, 2 mus´ıme zn´at hodnoty uj+ 1 , 3 ≤ j ≤ n − 2, pˇriˇcemˇz uj+ 1 ≈ u(xbj+ 1 ) = 2 2 2 u( xj +x2 j+1 ), 3 ≤ j ≤ n − 2, tedy koeficienty uj+ 1 , 3 ≤ j ≤ n − 2 s´ıt’ov´e 2 rovnice s
µ 1+4
u −u j+ 3 j− 1 2 2 xj+2 +xj+1 −xj −xj−1
s
¶2 (xj+1 − xj ) −
µ 1+4
h2
u −u j+ 1 j− 3 2 2 xj+1 +xj −xj−1 −xj−2
¶2 (xj − xj−1 ) =0 ,
3 ≤ j ≤ n − 2,
z´avis´ı na s´ıt’ov´ ych uzlech xj , xj+1 , kter´e vˇsak poˇc´ıt´ame, tedy hodnoty uj+ 1 , 3 ≤ j ≤ n−2 pˇredem nezn´ame. Protoˇze z rovnice (2.9) dost´av´ame, 2 ˇze funkce ω z´avis´ı nejen na hodnotˇe promˇenn´e x, ale tak´e na hodnotˇe derivace funkce u promˇenn´e x, a d´ale z konstrukce aproximace ω(xj+ 1 ), 2 3 ≤ j ≤ n − 2, je vidˇet, ˇze s´ıt’ov´a rovnice dan´a touto aproximac´ı bude vˇzdy obsahovat koeficienty, kter´e budou z´aviset na uzlech s´ıtˇe, tj. na ˇreˇsen´ı, kter´e hled´ame. To znaˇcnˇe komplikuje v´ ypoˇcet, nebot’ dost´av´ame soustavu neline´arn´ıch rovnic a nalezen´ı ˇreˇsen´ı takov´e soustavy je v´ ypoˇcetnˇe mnohem n´aroˇcnˇejˇs´ı neˇz u soustavy line´arn´ı. Uˇzit´ı metody s´ıt´ı na probl´em (2.11) tedy nen´ı vhodn´e, a proto pouˇzijeme n´asleduj´ıc´ı, i kdyˇz m´enˇe efektivn´ı metodu, a to metodu umˇel´eho ˇcasu.
2.2.2
Metoda umˇ el´ eho ˇ casu
Metoda umˇel´eho ˇcasu je zaloˇzena na hled´an´ı stacion´arn´ıho ˇreˇsen´ı u ´lohy, kterou z´ısk´ame modifikac´ı rovnice (2.11). Zaved’me funkci x(ξ, τ ) 12
promˇenn´ ych ξ a τ , kde τ je tzv. umˇel´y ˇcas, bez nebezpeˇc´ı nedorozumˇen´ı ji budeme znaˇcit stejnˇe jako funkci p˚ uvodn´ı, a ˇreˇsme rovnici (2.13)
e ξ )ξ , xτ = (ωx
ξ ∈ (0, 1), τ > 0
s okrajov´ ymi podm´ınkami x(0, τ ) = a, x(1, τ ) = b,
τ >0
a poˇca´teˇcn´ı podm´ınkou x(ξ, 0) = (b − a)ξ + a,
ξ ∈ [0, 1],
kter´a odpov´ıd´a poˇc´ateˇcn´ımu rovnomˇern´emu rozloˇzen´ı uzl˚ u v´ ypoˇcetn´ı s´ıtˇe na [a, b]. Bude-li ˇcasov´a derivace funkce x(ξ, τ ) nulov´a, bude sch´ema zaloˇzen´e na metodˇe umˇel´eho ˇcasu ˇreˇsit rovnici (2.11). Oznaˇcme ∆τ > 0 velikost kroku diskretizace v promˇenn´e τ , bud’ [ν] τν = ν ∆τ , ν ∈ IN0 , krok t´eto diskretizace, definujme x(ξj , τν ) ≈ xj , 1 ≤ j ≤ n, ν ∈ IN0 , aproximaci funkce x(ξ, τ ) v bodˇe (ξj , τν ), 1 ≤ j ≤ n, [ν] [ν] ν ∈ IN0 . Pro 1 ≤ j ≤ n − 1 a ν ∈ IN0 oznaˇcme u(xbj+ 1 ) ≈ uj+ 1 apro2 [ν]
2
[ν]
xj +xj+1 , 2
[ν] xbj+ 1 2
[ν] xbj+ 1 , 2
kde = 1 ≤ j ≤ ximaci hodnot funkce u v bodˇe e j+ 1 ) z odstavce 2.2.1 nyn´ı budeme znaˇ n − 1, ν ∈ IN0 . Funkci ω(ξ cit jako 2 ω(uj+ 1 ), 1 ≤ j ≤ n − 1, aby byla patrn´a z´avislost funkce ω na funkci u 2 (ve skuteˇcnosti ovˇsem funkce ω z´avis´ı na ∇u). Diskretizujme rovnici (2.13), dostaneme: [ν]
(2.14)
[ν]
[ν]
[ν]
[ν]
[ν]
[ν] ω(uj+ 1 )(xj+1 − xj ) − ω(uj− 1 )(xj − xj−1 ) − xj 2 2 = , ∆τ h2
[ν+1]
xj
2 ≤ j ≤ n − 1,
ν ∈ IN0
z ˇcehoˇz dost´av´ame diferenˇcn´ı sch´ema (2.15)
[ν+1]
xj
[ν]
= xj +
∆τ [ν] [ν] [ν] [ν] [ν] [ν] [ω(uj+ 1 )(xj+1 − xj ) − ω(uj− 1 )(xj − xj−1 )] , 2 h 2 2 2 ≤ j ≤ n − 1,
s okrajov´ ymi podm´ınkami Funkci ω(uj+ 1 ) = 2
v u u t
[ν] x0
ν ∈ IN0
= a a x[ν] n = b ∀ν ∈ IN0 .
Ã
!2
∂u (xb 1 ) 1+ ∂x j+ 2
,
1≤j ≤n−1
aproximujeme napˇr´ıklad pomoc´ı centr´aln´ıch diferenc´ı.
13
Nyn´ı uk´aˇzeme, ˇze sch´ema (2.15) ˇreˇs´ı rovnici (2.11). Skuteˇcnˇe, jestliˇze [ν+1] [ν] | xj −xj | ≈ 0, je prav´a strana rovnice (2.14) tak´e pˇribliˇznˇe rovna nule [ν+1] a uzly {xj } splˇ nuj´ı difereˇcn´ı sch´ema pro pˇribliˇzn´e ˇreˇsen´ı rovnice (2.11).
V praxi se tato podm´ınka aplikuje tak, ˇze pˇri hled´an´ı stacion´arn´ıho ˇreˇsen´ı rovnice (2.13) pˇredep´ıˇseme toleranci ε a prov´ad´ıme iterace sch´ematu [ν+1] [ν] (2.15) pro ν = 0, 1, . . . , dokud nen´ı splnˇeno | xj − xj | < ε. Sch´ema (2.15) m˚ uˇzeme pˇrepsat do tvaru (2.16)
[ν+1]
xj
[ν]
[ν]
[ν]
= αj+ 1 xj+1 + (1 − αj+ 1 − αj− 1 )xj + αj− 1 xj−1 , 2
2
2
2
2 ≤ j ≤ n − 1, kde ν ∈ IN0 je krok iterace a αj+ 1 = 2
∆τ [ν] ω(uj+ 1 ), 2 2 h
2 ≤ j ≤ n − 1.
Uvaˇzujeme n´asleduj´ıc´ı podm´ınku stability max αj+ 1 ≤
(2.17)
1≤j≤n−1
2
1 . 2
V praxi je ovˇsem sch´ema (2.16) pˇr´ıliˇs pomal´e a ned´av´a dobr´e v´ ysledky. M´ısto sch´ematu (2.16) proto budeme uvaˇzovat sch´ema [ν]
(2.18)
[ν+1] xj
=
[ν]
[ν]
[ν+1]
ω(uj+ 1 )xj+1 + ω(uj− 1 )xj−1 2
2
[ν] ω(uj+ 1 ) 2
+
[ν] ω(uj− 1 ) 2
,
2 ≤ j ≤ n − 1.
V praktick´ ych v´ ypoˇctech je tato metoda mnohem rychlejˇs´ı. Sch´ema (2.18) lze odvodit z pˇredeˇsl´eho sch´ematu. Vˇsimnˇeme si, ˇze ve vzorci (2.16) se [ν+1] [ν] [ν] [ν] hodnota uzlu xj z´ısk´a pomoc´ı jist´e kombinace uzl˚ u xj+1 , xj a xj−1 , tedy pro v´ ypoˇcet hodnoty uzlu v iteraci ν + 1 pouˇz´ıv´ame hodnoty pouze z pˇredchoz´ıho kroku ν. Pokusme se v´ ypoˇcet urychlit t´ım, ˇze k v´ ypoˇctu [ν+1] xj pouˇzijeme jiˇz zn´am´e hodnoty z kroku ν + 1. Dostaneme rovnici [ν+1]
xj
[ν]
[ν+1]
= αj+ 1 xj+1 + (1 − αj+ 1 − αj− 1 )xj 2
2
2
[ν+1]
+ αj− 1 xj−1 , 2
2 ≤ j ≤ n − 1, [ν+1]
z n´ıˇz si vyj´adˇr´ıme xj a z´ısk´ame rovnici (2.18). V ˇcl´anku [3] se pouˇz´ıv´a jeˇstˇe tzv. zhlazov´an´ı“ monitorovac´ı funkce ” ω ve tvaru 1 ω(uj+ 1 ) ← [ω(uj+ 3 ) + 2ω(uj+ 1 ) + ω(uj− 1 )], 2 2 2 2 4 14
2 ≤ j ≤ n − 2.
Funkce ω m´a totiˇz takov´ y pr˚ ubˇeh, ˇze nab´ yv´a velk´ ych hodnot v m´ıstech, ve kter´ ych nab´ yv´a velk´ ych hodnot gradient u a je-li gradient u mal´ y, je funkce ω mal´a. V z´avislosti na hodnot´ach funkce ω se n´aslednˇe adaptuje s´ıt’, ˇc´ım vyˇsˇs´ı jsou tyto hodnoty, t´ım v´ıce uzl˚ u se v dan´em m´ıstˇe nashrom´aˇzd´ı. Probl´em nast´av´a, je-li gradient u v jist´em smyslu velk´ y. V takov´em pˇr´ıpadˇe nab´ yv´a funkce ω v dan´em m´ıstˇe extr´emnˇe vysok´ ych hodnot a pro splnˇen´ı podm´ınky stability (2.17) je nutn´e pouˇz´ıt velmi mal´ y krok umˇel´eho ˇcasu ∆τ , coˇz zpomaluje v´ ypoˇcet. Vhodn´e pouˇzit´ı v´ yˇse zm´ınˇen´eho zhlazov´an´ı m´a za n´asledek, ˇze k nab´ yv´an´ı takto extr´emn´ıch hodnot u funkce ω nedoch´az´ı a podm´ınka stability je splnˇena i pro vyˇsˇs´ı hodnoty ∆τ , a tedy v´ ypoˇcet prob´ıh´a rychleji. Pˇri v´ ypoˇctu nov´ ych hodnot uzl˚ u potˇrebujeme obvykle vykonat nˇekolik iterac´ı sch´ematu (2.18), abychom z´ıskali dostateˇcnˇe jemnou s´ıt’. V takov´em pˇr´ıpadˇe vˇsak vznik´a probl´em. Zmˇen´ıme-li v´ ypoˇcetn´ı s´ıt’, nezn´ame hodnoty pˇribliˇzn´eho ˇreˇsen´ı, kter´e jsou definovan´e na pˇredchoz´ı s´ıti, na s´ıti nov´e. Jedn´ım z ˇreˇsen´ı je hodnoty na p˚ uvodn´ı s´ıti pˇrepoˇc´ıtat na hodnoty pro novou s´ıt’ v kaˇzd´e iteraci zjemˇ nov´an´ı s´ıtˇe tak, aby nov´e hodnoty splˇ novaly urˇcit´e podm´ınky. My pouˇzijeme n´asleduj´ıc´ı postup. Oznaˇcme [ν] uj+ 1 hodnotu uj+ 1 v ν-t´e iteraci adaptivn´ı metody, 1 ≤ j ≤ n − 1, 2
2
[ν+1]
ν ∈ IN0 . Hodnotu uj+ 1 spoˇcteme jako 2
[ν+1]
(2.19)
[ν] [ν]
[ν]
[ν]
[ν]
uj+ 1 = βj uj+ 1 − γj ((ccu)j+1 − (ccu)j ), 2
2
1 ≤ j ≤ n − 1, kde
[ν]
[ν+1]
[ν+1] −1
γj = (xj+1 − xj
)
[ν]
,
[ν]
[ν]
[ν]
βj = γj (xj+1 − xj ),
1 ≤ j ≤ n − 1, a numerick´y tok (ccu)j poˇc´ıt´ame jako [ν]
[ν]
[ν]
(ccu)j =
|cj | + cj − (u+ (uj − u− j + uj ) − j ), 2 2
2 ≤ j ≤ n − 2.
Protoˇze ∀ν ∈ IN0 plat´ı x1 = a a xn = b, poloˇzme [ν]
[ν]
(ccu)1 := 0,
(ccu)n−1 := 0.
V definici numerick´eho toku d´ale m´ame [ν]
[ν]
[ν+1]
cj = xj − xj a
,
1 ≤ j ≤ n,
1 e u± j = uj± 12 + (xj − xj±1 )Sj± 12 , 2
15
3 ≤ j ≤ n − 2,
pˇriˇcemˇz hodnoty Sej+ 1 definujeme 2
j+ 12
=
¶ + − e e sgn(Sj+ 1 ) + sgn(Sj+ 1 )
+ e− |Sej+ | 1S j+ 1
µ
Se
2
2
2
2
+ e− | |Sej+ 1 | + |S j+ 1 2
+ Sej+ 1 = 2
uj+ 3 − uj+ 1 2
2
xj+ 3 − xj+ 1 2
− Sej+ 1 = 2
,
2 ≤ j ≤ n − 2,
2
,
1 ≤ j ≤ n − 2,
,
2 ≤ j ≤ n − 1.
2
uj+ 1 − uj− 1 2
2
xj+ 1 − xj− 1 2
2
Hodnoty u± akladˇe j pro j ∈ {1, 2, n − 1, n} definujeme analogicky na z´ okrajov´ ych podm´ınek ˇreˇsen´e parci´aln´ı diferenci´aln´ı rovnice. Jedn´ım z d˚ uvod˚ u pouˇzit´ı t´eto metody pˇrepoˇc´ıt´av´an´ı hodnot uj+ 1 je, ˇze 2 splˇ nuje geometrick´y z´akon zachov´an´ı, tj. plat´ı n−1 X
[ν+1]
[ν+1]
(xj+1 − xj
[ν+1]
)uj+ 1 = 2
j=1
n−1 X j=1
[ν]
[ν]
[ν]
(xj+1 − xj )uj+ 1
2
∀ν ∈ IN0 .
Algoritmus ˇ reˇ sen´ı PDR s vyuˇ zit´ım adaptivn´ı s´ıtˇ e: 0. Inicializace Zvolme n ∈ IN, n ≥ 2, poˇcet uzl˚ u fyzik´aln´ı oblasti Ωp = [a, b]. Definujme rovnomˇern´e rozloˇzen´ı bod˚ u ξj = (j − 1)h, 1 ≤ j ≤ n, 1 v oblasti Ωc = [0, 1], h = n−1 . Definujme dˇelen´ı intervalu [0, T ] jako 0 = t0 < t1 < t2 < . . . < tl = T pro nˇejak´e l ∈ IN . Bud’ ν ∈ IN0 a k ∈ IN0 . Necht’ {xkj }nj=1 oznaˇcuje uzly v´ ypoˇcetn´ı s´ıtˇe tvoˇr´ıc´ı v re´aln´em ˇcase k k k tk koneˇcn´e objemy Dj = [xj , xj+1 ] na [a,b] pro 1 ≤ j ≤ n − 1. Oznaˇcme aproximaci u( . , tk )|Djk ≈ ukj+ 1 , 1 ≤ j ≤ n − 1, pˇresn´eho 2
ˇreˇsen´ı u rovnice (2.4) na koneˇcn´em objemu Djk = [xkj , xkj+1 ] v re´aln´em ˇcase tk . k[ν] Necht’ xj , 1 ≤ j ≤ n, jsou uzly v´ ypoˇcetn´ı s´ıtˇe v ν-t´em kroku adaptace s´ıtˇe (2.18) - (2.19), kterou prov´ad´ıme v re´aln´em ˇcase tk , k[0] pˇr´ısluˇsn´e poˇc´ateˇcn´ı rozloˇzen´ı uzl˚ u je xj := xkj . Pro jednoduchost k[ν] [ν] budeme index k vynech´avat, tj. m´ısto xj budeme ps´at xj . k[ν]
Symbolem uj+ 1 (a opˇet pro jednoduchost vynech´av´ame v horn´ım 2
indexu k) budeme rozumˇet aproximaci u( . , tk )|[x[ν] ,x[ν] j
j+1 ]
[ν]
≈ uj+ 1 , 2
1 ≤ j ≤ n − 1, pˇresn´eho ˇreˇsen´ı u rovnice (2.4) na koneˇcn´em objemu [ν] [ν] [xj , xj+1 ] pˇr´ısluˇsn´emu re´aln´emu ˇcasu tk a ν-t´emu kroku adaptace 16
[ν]
s´ıtˇe (2.18) - (2.19) v ˇcase tk , tedy uj+ 1 znaˇc´ı ν-tou iteraci sch´ematu (2.19) s poˇca´teˇcn´ı podm´ınkou
[0] uj+ 1 2
2
:= ukj+ 1 . 2
Definujme poˇca´teˇcn´ı rovnomˇern´e rozloˇzen´ı uzl˚ u x0j , 1 ≤ j ≤ n, v´ ypoˇcetn´ı s´ıtˇe ve fyzik´aln´ı oblasti Ωp = [a, b]. Vypoˇc´ıtejme hodnoty u0j+ 1 jako integr´aln´ı pr˚ umˇer poˇc´ateˇcn´ı pod2 m´ınky u(x, 0) = u0 (x) na pˇr´ısluˇsn´em intervalu, tj. u0j+ 1 2
xZj+1 1 = u0 (x)dx , xj+1 − xj x
1 ≤ j ≤ n − 1.
j
[0]
[0]
Poloˇzme ν = 0 a k = 0 a d´ale xj := x0j pro 1 ≤ j ≤ n a uj+ 1 := 2
u0j+ 1 pro 1 ≤ j ≤ n − 1. 2
1. Adaptace s´ıtˇ e [ν] [ν+1] Adaptujme s´ıt’ {xj } na novou s´ıt’ {xj } podle (2.18) a pˇrepoˇc´ı[ν] [ν+1] tejme hodnoty {uj+ 1 } na hodnoty {uj+ 1 } pomoc´ı (2.19). Poloˇzme 2 2 ν := ν + 1 a opakujme tento krok pro pˇredem dan´ y poˇcet iterac´ı [m] m. V praxi vol´ıme poˇcet iterac´ı m = 1 - 5. Dostaneme {xj } a [m] {uj+ 1 }. 2
2. V´ ypoˇ cet pˇ ribliˇ zn´ eho ˇ reˇ sen´ı PDR (2.4) [m] [m] k Poloˇzme uj+ 1 := uj+ 1 pro 1 ≤ j ≤ n − 1 a xkj := xj pro 1 ≤ 2 2 j ≤ n. Uˇzit´ım metody koneˇcn´ ych objem˚ u vypoˇc´ıtejme na z´akladˇe k k v ˇcase tk+1 . hodnot uj+ 1 a s´ıtˇe {xj } pˇribliˇzn´e ˇreˇsen´ı PDR uk+1 j+ 1 2
2
3. Ukonˇ covac´ı podm´ınka [0] [0] Jestliˇze tk+1 ≤ T , definujme uj+ 1 := uk+1 a xj := xkj , poloˇzme j+ 12 2 ν = 0, k = k + 1 a jdˇeme na krok 1.
17
Kapitola 3 Numerick´ e experimenty V pˇredchoz´ıch kapitol´ach jsme adaptivn´ı metodu zkoumali teoreticky. V t´eto kapitole se zamˇeˇr´ıme na praktickou ˇc´ast. Pˇredvedeme si pouze adaptivn´ı metodu (2.18), protoˇze metoda umˇel´eho ˇcasu (2.16) je znaˇcnˇe neefektivn´ı a nebudeme se j´ı tedy zab´ yvat. Pomoc´ı vhodnˇe definovan´ ych ’ funkc´ı si uk´aˇzeme, ˇze se s´ıt adaptuje v z´avislosti na poloze nespojitosti, tj. ˇze se uzly shlukuj´ı“ v m´ıstˇe nespojitosti, pot´e adaptivn´ı s´ıt’ apli” kujeme pˇri ˇreˇsen´ı nˇekter´ ych parci´aln´ıch diferenci´aln´ıch rovnic a nakonec srovn´ame pohyb uzl˚ u adaptivn´ı s´ıtˇe pˇri pouˇzit´ı algoritmu uˇz´ıvaj´ıc´ıho sch´ema (2.18) a algoritmu anizotropn´ıho zjemˇ nov´an´ı v´ ypoˇcetn´ı s´ıtˇe popsan´eho v ˇcl´anku [2].
3.1
Funkce s pohybuj´ıc´ı se nespojitost´ı
V tomto odstavci budeme vhodnou definic´ı funkc´ı, u nichˇz zn´ame jejich pr˚ ubˇeh, modelovat situace, kdy se nespojitost funkce v pr˚ ubˇehu ˇcasu pohybuje nebo se velikost skoku v m´ıstˇe nespojitosti zvˇetˇsuje ˇci naopak zmenˇsuje. Na tyto funkce n´aslednˇe aplikujeme metodu adaptivn´ıho zjemˇ nov´an´ı s´ıtˇe a na obr´azc´ıch si uk´aˇzeme, jak funguje. Pˇ r´ıklad 3.1. (Pohybuj´ıc´ı se nespojitost) Definujme si funkci
f1 (x, t) =
( x , x − 1, (
x , x−1 ,
0 ≤ x ≤ 1+t 1+t < x ≤ 3
,
0 ≤ t ≤ 1,
0 ≤ x ≤ 3−t 3−t < x ≤ 3
,
1 < t ≤ 3.
Pro pevn´e t ∈ [0, 3] je funkce f1t (x) = f1 (x, t), x ∈ [0, 3] po ˇc´astech line´arn´ı, pˇriˇcemˇz graf funkce f1t obsahuje pouze jeden bod nespojitosti, jehoˇz poloha z´avis´ı na hodnotˇe parametru t, parametr t budeme naz´ yvat 18
ˇcas. Nespojitost v ˇcase t = 0 se nach´az´ı v bodˇe x = 1 (viz obr´azek 3.1), s rostouc´ım t se posouv´a do bodu x = 2 pro t = 1 a n´aslednˇe se vrac´ı do bodu x = 1 v ˇcase t = 3. V analogii ke kapitole 2 funkce f1 (x, t) odpov´ıd´a funkci u(x, t) ze zmin ˇovan´e kapitoly, funkce f1t tedy simuluje v´ yvoj pˇribliˇzn´eho ˇreˇsen´ı nˇejak´e parci´aln´ı diferenci´aln´ı rovnice v re´aln´em ˇcase t, a to n´asleduj´ıc´ım zp˚ usobem. Funkci f1t budeme zkoumat v pr˚ ubˇehu ˇcasu pro t = 0 aˇz t = 3 s ˇcasov´ ym krokem 0.1 (coˇz odpov´ıd´a ˇcasov´emu kroku pˇri ˇreˇsen´ı PDR). M´ame-li D0 poˇca´teˇcn´ı rovnomˇernou s´ıt’ v re´aln´em ˇcase t = 0 tvoˇrenou body xj , 1 ≤ j ≤ 50, pak po proveden´ı pˇeti iterac´ı sch´ematu (2.18) (2.19) dostaneme novou s´ıt’ D1 , kter´a vypad´a tak, ˇze se uzly s´ıtˇe posouvaj´ı k bodu nespojitosti, jehoˇz poloha odpov´ıd´a ˇcasu t = 0 (na obr´azku 3.2 ovˇsem tˇemto uzl˚ um odpov´ıd´a zobrazen´ı uzl˚ u v ˇcase t = 0.1, nebot’ na obr´azku zn´azorˇ nujeme polohu uzl˚ u odpov´ıdaj´ıc´ı adaptaci s´ıtˇe t na z´akladˇe hodnot f1 z pˇredchoz´ıho ˇcasov´eho kroku, tedy rozloˇzen´ı uzl˚ u s´ıtˇe v ˇcase t odpov´ıd´a tomu, jak´ ych hodnot funkce f1t nab´ yvala v kroku pˇredchoz´ım). Tato s´ıt’ se n´aslednˇe pouˇzije k nalezen´ı pˇribliˇzn´eho ˇreˇsen´ı dan´e PDR, v naˇsem pˇr´ıpadˇe jsou ovˇsem t´ımto tzv. ˇreˇsen´ım“ hodnoty ” f1 (xj , t) pro xj ∈ D1 a t = 0.1. Nyn´ı opˇet na s´ıt’ D1 aplikujeme pˇet iterac´ı sch´ematu (2.18) - (2.19) a dostaneme s´ıt’ D2 , pro kterou zjist´ıme hodnoty f1 (xj , 0.2). Dalˇs´ı v´ ypoˇcet prob´ıh´a analogicky aˇz do t = 3. V´ ysledn´ y pohyb uzl˚ u je zn´azornˇen na obr´azku 3.2. Z nˇej je patrn´e, ˇze uzly se shlukuj´ı v m´ıstˇe nespojitosti, kter´a se pohybuje v ˇcase, coˇz je pˇresnˇe to, co od adaptivn´ı metody vyˇzadujeme. Pˇ r´ıklad 3.2. (Zvˇetˇsuj´ıc´ı se skok) Pro 0 ≤ t ≤ 1.5 definujme funkci (
f2 (x, t) =
(1 + t)x , 0 ≤ x ≤ 0.5 (1 + t)x − (1 + t) , 0.5 < x ≤ 1 .
Pro pevn´e t ∈ [0, 2] definujme f2t (x) = f2 (x, t), x ∈ [0, 1] Vid´ıme, ˇze pro 0 ≤ t ≤ 1.5 se bod nespojitosti funkce f2t nach´az´ı neust´ale v bodˇe x = 0.5, pˇriˇcemˇz s rostouc´ım t se velikost skoku v bodˇe x = 0.5 (tj. pro pevn´e t ∈ [0, 1.5] | lim f2t (x) − lim f2t (x)|) zvˇetˇsuje (viz obr´azek 3.3). x→0.5−
x→0.5+
S t´ım souvis´ı i pohyb uzl˚ u s´ıtˇe na obr´azku 3.4, kter´e se se vzr˚ ustaj´ıc´ım ˇcasem shlukuj´ı u bodu x = 0.5. Celkov´ y poˇcet uzl˚ u s´ıtˇe je 30, ˇcasov´ y krok vol´ıme opˇet 0.1, prov´ad´ıme 5 iterac´ı adaptivn´ı metody (2.18) - (2.19).
19
Pˇ r´ıklad 3.3. (Zmenˇsuj´ıc´ı se skok) Pro 0 ≤ t ≤ 2 definujme funkci (
f3 (x, t) =
(2 − t)x + 0.5t (2 − t)x − 2 + 1.5t
, 0 ≤ x ≤ 1 , 1 < x ≤ 2.
Funkce f3t (x) = f3 (x, t), x ∈ [0, 2] pro pevn´e t ∈ [0, 2] se narozd´ıl od funkce f2t (x) chov´a tak, ˇze se nyn´ı skok mezi hodnotami v bodˇe x = 1 s rostouc´ım ˇcasem nezvˇetˇsuje, n´ ybrˇz naopak zmenˇsuje, dokonce v ˇcase t t = 2 je funkce f3 (x) ≡ 1 pro x ∈ [0, 2] (viz obr´azek 3.5). Uzly se tedy zpoˇc´atku pohybuj´ı smˇerem k nespojitosti,v d˚ usledku zmenˇsov´an´ı velikosti skoku se vˇsak jejich pohyb zpomaluje, dokonce pro t → 2 se uzly pohybuj´ı smˇerem od nespojitosti, velikost skoku uˇz je totiˇz tak mal´a, ˇze nen´ı nutn´e v tomto m´ıstˇe s´ıt’ adaptovat, pohyb uzl˚ u je zn´azornˇen na obr´azku 3.6. Poˇcet uzl˚ u s´ıtˇe je 30, ˇcasov´ y krok je opˇet 0.1, prov´ad´ıme 4 iterace adaptivn´ı metody (2.18) - (2.19). Pˇ r´ıklad 3.4. (Pohybuj´ıc´ı se nespojitost) Pro 0 ≤ t ≤ 2 definujme funkci g(t) = 0.5 + (exp(−1) − exp(−1 − t0.7 )) a d´ale ( x , 0 ≤ x ≤ g(t) f4 (x, t) = x−1 , g(t) < x ≤ 2 . Nespojitost funkce f4t (x) = f4 (x, t), x ∈ [0, 2], pro pevn´e t ∈ [0, 2], se nach´az´ı v bodˇe x = g(t) pro t ∈ [0, 2], z ˇcehoˇz je vidˇet, ˇze se poloha nespojitosti s rostouc´ım ˇcasem mˇen´ı, avˇsak rychlost pohybu se pro t → 2 zmenˇsuje (viz obr´azek 3.7), coˇz dobˇre modeluje situaci, s n´ıˇz se setk´ame napˇr´ıklad pˇri ˇreˇsen´ı Burgersovy rovnice, a to, ˇze se poloha nespojitosti od urˇcit´eho ˇcasov´eho okamˇziku mˇen´ı uˇz velmi pomalu. Poˇcet uzl˚ u s´ıtˇe je 50, ˇcasov´ y krok je volen 0.1, prov´ad´ıme 5 iterac´ı adaptivn´ı metody (2.18) - (2.19). Pohyb uzl˚ u s´ıtˇe viz obr´azek 3.8.
20
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
0.5
1
1.5
2
2.5
3
Obr´azek 3.1: Pˇr´ıklad (3.1): Graf funkce f1tk (x) v ˇcase tk = 0.1k, k = 0, 1, 2, . . . , 10, osa x zn´ azorˇ nuje hodnoty promˇenn´e x, osa y hodnoty funkce f1tk (x). 3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
Obr´azek 3.2: Pˇr´ıklad (3.1): Pohyb uzl˚ u s´ıtˇe v z´ avislosti na pohybuj´ıc´ı se nespojitosti, osa x zn´ azorˇ nuje souˇradnice uzl˚ u, osa y ˇcas t.
21
1
0.5
0
−0.5
−1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Obr´azek 3.3: Pˇr´ıklad (3.2): Graf funkce f2t (x) v ˇcase t = 0 (ˇc´arkovan´a ˇc´ara) a v ˇcase t = 1.5 (pln´ a ˇc´ ara), osa x zn´ azorˇ nuje hodnoty promˇenn´e x, osa y hodnoty funkce f2t (x). 1.5
1
0.5
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Obr´azek 3.4: Pˇr´ıklad (3.2): Pohyb uzl˚ u s´ıtˇe v z´ avislosti na zvˇetˇsuj´ıc´ı se velikosti skoku, osa x zn´ azorˇ nuje souˇradnice uzl˚ u, osa y ˇcas t.
22
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Obr´azek 3.5: Pˇr´ıklad (3.3): Graf funkce f3t (x) v ˇcase t = 0 (ˇc´arkovan´a ˇc´ara) a v ˇcase t = 1.9 (pln´ a ˇc´ ara), osa x zn´ azorˇ nuje hodnoty promˇenn´e x, osa y hodnoty funkce f3t (x). 2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Obr´azek 3.6: Pˇr´ıklad (3.3): Pohyb uzl˚ u s´ıtˇe v z´ avislosti na zmenˇsuj´ıc´ı se velikosti skoku, osa x zn´ azorˇ nuje souˇradnice uzl˚ u, osa y ˇcas t.
23
1
0.8
0.6
0.4
0.2
0
−0.2
−0.4
−0.6
−0.8
−1
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Obr´azek 3.7: Pˇr´ıklad (3.4): Graf funkce f4tk (x) v ˇcase tk = 0.1k, k = 0, 1, 2, . . . , 20, osa x zn´ azorˇ nuje hodnoty promˇenn´e x, osa y hodnoty funkce f4tk (x). 2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Obr´azek 3.8: Pˇr´ıklad (3.4): Pohyb uzl˚ u s´ıtˇe v z´ avislosti na pohybuj´ıc´ı se nespojitosti, osa x zn´ azorˇ nuje souˇradnice uzl˚ u, osa y ˇcas t.
24
3.2
Aplikace adaptivn´ı s´ıtˇ e pˇ ri ˇ reˇ sen´ı PDR
V t´eto ˇca´sti se zamˇeˇr´ıme na aplikaci adaptivn´ı metody pˇri ˇreˇsen´ı parci´aln´ıch diferenci´aln´ıch rovnic a uk´aˇzeme si na konkr´etn´ıch pˇr´ıkladech, jak adaptivita v´ ypoˇcetn´ı s´ıtˇe zvyˇsuje pˇresnost pˇribliˇzn´eho ˇreˇsen´ı ve srovn´an´ı s pouˇzit´ım rovnomˇern´e s´ıtˇe bˇehem cel´eho v´ ypoˇctu. Budeme hledat pˇribliˇzn´e ˇreˇsen´ı u ´lohy (2.4) s poˇc´ateˇcn´ı podm´ınkou (2.5). Pro nalezen´ı pˇribliˇzn´eho ˇreˇsen´ı rovnice (2.4) pouˇzijeme tzv. MUSCL (monotone upstream-centered scheme for conservation laws) metodu koneˇcn´ ych objem˚ u, jej´ıˇz definici a sch´ema algoritmu lze nal´ezt na str. 494 ˇcl´anku [3]. Pod´ıvejme se jiˇz na konkr´etn´ı pˇr´ıklady.
3.2.1
Burgersova rovnice
Pˇredpis Burgersovy rovnice je n´asleduj´ıc´ı: 2
(3.1)
∂ ( u2 ) ∂u (x, t) + (x, t) = 0, ∂t ∂x
t > 0,
0 ≤ x ≤ 2π,
se spojitou poˇca´teˇcn´ı podm´ınkou (3.2)
u(x, 0) = 0.5 + sin(x),
x ∈ [0, 2π],
a periodickou okrajovou podm´ınkou. Uˇzit´ım MUSCL algoritmu s adaptivn´ım zjemˇ nov´an´ım s´ıtˇe metodou (2.18) - (2.19) splˇ nuj´ıc´ı geometrick´ y z´akon zachov´an´ı jsme z´ıskali pˇribliˇzn´e ˇreˇsen´ı rovnice (3.1) v ˇcase t = 2, kter´e je na obr´azku 3.9 zn´azornˇeno pomoc´ı bod˚ u, pˇresn´e ˇreˇsen´ı je zn´azornˇeno plnou ˇcarou. Graf pˇresn´eho ˇreˇsen´ı byl z´ısk´an metodou charakteristik. Na obr´azku 3.10 je zobrazeno pˇribliˇzn´e ˇreˇsen´ı, kter´e jsme z´ıskali stejn´ ym MUSCL algoritmem za uˇzit´ı stejn´ ych parametr˚ u, avˇsak bez zjemˇ nov´an´ı s´ıtˇe, tzn. ˇze bˇehem cel´eho v´ ypoˇctu jsme pracovali na rovnomˇern´e s´ıti na intervalu [0, 2π]. V m´ıstech, na jejichˇz okol´ı je pˇresn´e ˇreˇsen´ı hladk´e, dost´av´ame pˇri pouˇzit´ı obou postup˚ u obdobn´e hodnoty pˇribliˇzn´eho ˇreˇsen´ı, avˇsak v m´ıstˇe nespojitosti je pˇribliˇzn´e ˇreˇsen´ı z´ıskan´e pomoc´ı zjemˇ nov´an´ı s´ıtˇe mnohem pˇresnˇejˇs´ı (ve smyslu, kdy pˇresnost urˇcujeme jako absolutn´ı hodnotu rozd´ılu funkˇcn´ıch hodnot pˇresn´eho a pˇribliˇzn´eho ˇreˇsen´ı), narozd´ıl od rovnomˇern´e s´ıtˇe, kdy na okol´ı bodu nespojitosti doch´az´ı k v´ yrazn´emu zkreslen´ı pˇribliˇzn´eho ˇreˇsen´ı. Pohyb uzl˚ u adaptivn´ı s´ıtˇe je zachycen na obr´azku 3.11. V pr˚ ubˇehu v´ ypoˇctu doch´az´ı k jejich postupn´emu shromaˇzd’ov´an´ı kolem bodu nespojitosti a pˇribliˇznˇe od ˇcasu t = 1.3 uˇz jen nejbliˇzˇs´ı skupina uzl˚ u sleduje pohyb nespojitosti, uzly, kter´e jsou dostateˇcnˇe daleko od bodu nespojitosti, se t´emˇeˇr nepohybuj´ı a zachov´avaj´ı takˇrka rovnomˇern´e rozloˇzen´ı, nebot’ 25
gradient pˇribliˇzn´eho ˇreˇsen´ı je vzhledem k bodu nespojitosti v ostatn´ıch bodech znaˇcnˇe mal´ y. ’ V´ ypoˇcetn´ı s´ıt byla v tomto pˇr´ıpadˇe tvoˇrena 30-ti uzly, v kaˇzd´em ˇcasov´em kroku MUSCL algoritmu jsme pouˇzili 5 iterac´ı sch´ematu (2.18) - (2.19) pro zjemnˇen´ı s´ıtˇe, ˇcasov´ y krok MUSCL metody byl volen 0.0005.
3.2.2
Riemann˚ uv probl´ em
Rovnice pro tzv. Riemann˚ uv probl´em pro hyperbolickou rovnici z´akona zachov´an´ı je tvaru (3.3)
∂u ∂ (f (u)) (x, t) + (x, t) = 0, ∂t ∂x
t > 0,
−1 ≤ x ≤ 1,
kde
1 f (u) = (u2 − 1)(u2 − 4), 4 s nespojitou poˇca´teˇcn´ı podm´ınkou (3.4)
u(x, 0) = −2 sgn(x),
−1 ≤ x ≤ 1.
a okrajovou podm´ınkou
(3.5)
u(−1, t) = −2, u(1, t) = 2,
t > 0, t > 0.
Tato parci´aln´ı diferenci´aln´ı rovnice a graf jej´ıho pˇresn´eho ˇreˇsen´ı jsou pˇrevzaty z ˇcl´anku [3]. Pˇresn´e ˇreˇsen´ı v pˇr´ıpadˇe t´eto rovnice nen´ı spojit´e jiˇz od ˇcasu t = 0, jak je vidˇet z definice poˇca´teˇcn´ı podm´ınky a v ˇcase t = 1.2 obsahuje dva body nespojitosti. Opˇet jsme pouˇzili MUSCL algoritmus k nalezen´ı pˇribliˇzn´eho ˇreˇsen´ı rovnice (3.3). Na v´ ypoˇcetn´ı s´ıti, kter´a je tvoˇrena 50-ti uzly, jsme opˇet pomoc´ı adaptivn´ıho zjemˇ nov´an´ı z´ıskali mnohem pˇresnˇejˇs´ı ˇreˇsen´ı neˇz v pˇr´ıpadˇe pouˇzit´ı pouze rovnomˇern´e s´ıtˇe po celou dobu v´ ypoˇctu, jak je vidˇet z obr´azk˚ u 3.13 a 3.14. Ke zkreslen´ı pˇribliˇzn´eho ˇreˇsen´ı v pˇr´ıpadˇe uˇzit´ı rovnomˇern´e s´ıtˇe doch´az´ı opˇet pouze v m´ıstech nespojitosti pˇresn´eho ˇreˇsen´ı. V pˇr´ıpadˇe adaptivn´ı s´ıtˇe se uzly akumuluj´ı na okol´ı m´ısta nespojitosti a absolutn´ı hodnota rozd´ılu hodnot pˇribliˇzn´eho a pˇresn´eho ˇreˇsen´ı je menˇs´ı neˇz v pˇr´ıpadˇe uˇzit´ı pouze rovnomˇern´e s´ıtˇe. Pohyb uzl˚ u v´ ypoˇcetn´ı s´ıtˇe je zn´azornˇen na obr´azku 3.12. V kaˇzd´em ˇcasov´em kroku MUSCL algoritmu jsme adaptovali v´ ypoˇcet’ n´ı s´ıt pouze pomoc´ı jedn´e iterace sch´ematu (2.18) sak pouˇzili q- (2.19), avˇ θ 2 jsme modifikovanou monitorovac´ı funkci ω = 1 + θ|ux | s parametˇ rem θ > 0, v naˇsem pˇr´ıpadˇe jsme volili θ = 0.6. Casov´ y krok MUSCL algoritmu byl volen 0.0001. 26
1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4
0
Obr´azek 3.9:
1
2
3
4
5
6
Graf pˇ resn´ eho (pln´ a ˇ c´ ara) a pˇ ribliˇzn´ eho (body) ˇ reˇsen´ı Burgersovy rovnice (3.1)
na intervalu [0, 2π] v ˇ case t = 2 z´ıskan´ eho pomoc´ı adaptivn´ıho zjemˇ nov´ an´ı v´ ypoˇ cetn´ı s´ıtˇ e.
1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4
0
Obr´azek 3.10:
1
2
3
4
5
6
Graf pˇ resn´ eho (pln´ aˇ ca ´ra) a pˇ ribliˇzn´ eho (body) ˇreˇsen´ı Burgersovy rovnice (3.1)
na intervalu [0, 2π] v ˇ case t = 2 z´ıskan´ eho na rovnomˇ ern´ e v´ ypoˇ cetn´ı s´ıti.
27
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
1
2
3
4
5
6
Obr´azek 3.11: Pohyb uzl˚u v´ypoˇcetn´ı s´ıtˇe v z´avislosti na ˇcase t bˇehem hled´an´ı pˇribliˇzn´eho ˇreˇsen´ı Burgersovy rovnice (3.1) na intervalu [0, 2π]. Osa x reprezentuje souˇ radnice uzl˚ u, osa y ˇ cas t.
1
0.8
0.6
0.4
0.2
0 −1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Obr´azek 3.12: Pohyb uzl˚u v´ypoˇcetn´ı s´ıtˇe v z´avislosti na ˇcase t bˇehem hled´an´ı pˇribliˇzn´eho ˇreˇsen´ı rovnice (3.3) na intervalu [−1, 1]. Osa x reprezentuje souˇ radnice uzl˚ u, osa y ˇ cas t.
28
2
1.5
1
0.5
0
−0.5
−1
−1.5
−2 −1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Obr´azek 3.13: Graf pˇresn´eho (pln´a ˇca´ra) a pˇribliˇzn´eho (body) ˇreˇsen´ı rovnice (3.3) na intervalu [−1, 1] v ˇ case t = 1.2 z´ıskan´ eho pomoc´ı adaptivn´ıho zjemˇ nov´ an´ı v´ ypoˇ cetn´ı s´ıtˇ e.
2
1.5
1
0.5
0
−0.5
−1
−1.5
−2 −1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Obr´azek 3.14: Graf pˇresn´eho (pln´a ˇca´ra) a pˇribliˇzn´eho (body) ˇreˇsen´ı rovnice (3.3) na intervalu [−1, 1] v ˇ case t = 1.2 z´ıskan´ eho na rovnomˇ ern´ e v´ ypoˇ cetn´ı s´ıti.
29
3.3
Srovn´ an´ı r˚ uzn´ ych adaptivn´ıch metod
Na z´avˇer srovn´ame adaptivn´ı metodu zkoumanou v t´eto pr´aci a anizotropn´ı adaptivn´ı metodu z ˇcl´anku [2] stejnˇe jako v odstavci 3.1 pro funkce s nespojitost´ı pohybuj´ıc´ı se v ˇcase. Z obr´azk˚ u 3.15 - 3.18 je patrn´e, ˇze u obou metod doch´az´ı ke zhuˇstˇen´ı s´ıtˇe v m´ıstˇe nespojitosti a toto zhuˇstˇen´ı“ prvk˚ u s´ıtˇe se pohybuje spolu ” s nespojitost´ı. Na zbytku v´ ypoˇcetn´ı s´ıtˇe obˇe adaptivn´ı metody zachov´avaj´ı rovnomˇern´e dˇelen´ı, nedoch´az´ı k pohybu uzl˚ u v m´ıstech, kde nen´ı potˇreba s´ıt’ zjemnit. V tomto ohledu tedy obˇe metody vykazuj´ı obdobn´e vlastnosti a jsou vhodn´e k pouˇzit´ı napˇr´ıklad pˇri ˇreˇsen´ı parci´aln´ıch diferenci´aln´ıch rovnic, jak jsme vidˇeli na pˇredch´azej´ıc´ıch pˇr´ıkladech. Ze srovn´an´ı v´ ypoˇcetn´ı n´aroˇcnosti vych´az´ı jako rychlejˇs´ı, zhruba o jeden ˇra´d, ˇ anizotropn´ı adaptivn´ı metoda, viz tabulka 3.1. Casovou n´aroˇcnost jsme zkoumali v n´asleduj´ıc´ım smyslu. Pro kaˇzd´ y algoritmus zvl´aˇst’ jsme bˇehem pˇr´ısluˇsn´eho ˇcasov´eho intervalu adaptovali v´ ypoˇcetn´ı s´ıt’ pro funkce definovan´e v pˇr´ıkladech (3.1) (3.4), v pˇr´ıpadˇe adaptivn´ı metody (2.18) - (2.19) jsme volili stejn´e parametry jako v pˇr´ıkladech (3.1) - (3.4), v pˇr´ıpadˇe anizotropn´ı adaptivn´ı metody jsme na stejn´em v´ ypoˇcetn´ım intervalu bˇehem stejn´eho ˇcasov´eho intervalu volili stejn´ y poˇcet uzl˚ u jako u pˇredch´azej´ıc´ı metody, parametry byly voleny takto: MAXITER = 1, e1 = 100, e2 = 1 (v´ yznam parametr˚ u viz pˇriloˇzen´e CD a internetov´e str´anky http://www.karlin.mff.cuni.cz/ e dolejsi/angen/angen3.1.htm). Tento krok v´ ypoˇctu s´ıtˇe jsme opakovali desetkr´at a v´ ysledn´ y ˇcas, bˇehem kter´eho probˇehl v´ ypoˇcet, jsme vydˇelili deseti a tak z´ıskali hodnoty uveden´e v tabulce 3.1. Pro urˇcen´ı v´ ypoˇcetn´ıho ˇcasu jsme uˇzili standardn´ı matlabovsk´e pˇr´ıkazy tic a toc, v´ ysledn´e ˇcasy jsou uveden´e v sekund´ach. Zkoum´an´ı v´ ypoˇcetn´ı n´aroˇcnosti jsme prov´adˇeli na poˇc´ıtaˇci Intel(R) Pentium(R) M, 1.73GHz / 504 MB RAM v programu Matlab verze 7.2.0.232 (R2006a). Funkce f1 f2 f3 f4
Sch´ema (2.18) - (2.19)
0.2238 0.0791 0.0938 0.1080
Anizotropie 0.0227 0.0077 0.0097 0.0105
Tabulka 3.1: Srovn´an´ı ˇcasov´e n´aroˇcnosti jednotliv´ych algoritm˚ u pˇri aplikaci pro funkce definovan´e v pˇr´ıkladech (3.1) - (3.4). V lev´em sloupci je uvedena dan´a funkce, v prostˇredn´ım sloupci ˇcas sch´ematu (2.18) - (2.19) a v prav´em sloupci ˇcas anizotropn´ı adaptivn´ı metody, ˇcasy jsou uvedeny v sekund´ach.
30
3
2.5
2
1.5
1
0.5
0
0
0.5
Obr´azek 3.15:
1
1.5
2
2.5
3
Funkce z pˇ r. (3.1): Pln´ aˇ ca ´ra zn´ azorˇ nuje pohyb uzl˚ u metody (2.18), teˇ ckovan´ a
pohyb uzl˚ u anizotropn´ı adaptivn´ı metody, osa x reprezentuje souˇ radnice uzl˚ u, osa y ˇ cas t.
1.5
1
0.5
0
0
0.1
Obr´azek 3.16:
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Funkce z pˇ r. (3.2): Pln´ aˇ ca ´ra zn´ azorˇ nuje pohyb uzl˚ u metody (2.18), teˇ ckovan´ a
pohyb uzl˚ u anizotropn´ı adaptivn´ı metody, osa x reprezentuje souˇ radnice uzl˚ u, osa y ˇ cas t.
31
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
0.2
Obr´azek 3.17:
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Funkce z pˇ r. (3.3): Pln´ aˇ ca ´ra zn´ azorˇ nuje pohyb uzl˚ u metody (2.18), teˇ ckovan´ a
pohyb uzl˚ u anizotropn´ı adaptivn´ı metody, osa x reprezentuje souˇ radnice uzl˚ u, osa y ˇ cas t.
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
0.2
Obr´azek 3.18:
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Funkce z pˇ r. (3.4): Pln´ aˇ ca ´ra zn´ azorˇ nuje pohyb uzl˚ u metody (2.18), teˇ ckovan´ a
pohyb uzl˚ u anizotropn´ı adaptivn´ı metody, osa x reprezentuje souˇ radnice uzl˚ u, osa y ˇ cas t.
32
Literatura [1] M. Feistauer, J. Felcman, and I. Straˇskraba. Mathematical and Computational Methods for Compressible Flow. Oxford University Press, Oxford, 2003. [2] J. Felcman and P. Kubera. Computational aspects of the mesh adaptation for the time marching procedure. In A. Berm´ udez de Castro, D. G´omez, P. Quintela, and P. Salgado, editors, Numerical Mathematics and Advanced Applications, ENUMATH 2005, pages 225– 232, Santiago de Compostela, Spain, July 2005 2006. Springer Verlag Berlin Heidelberg. ISBN-10 3-54034287-7 Springer Berlin Heidelberg New York, ISBN-13 978-3-540-34287-8 Springer Berlin Heidelberg New York. [3] H. Tang and T. Tang. Adaptive mesh methods for one- and twodimensional hyperbolic conservation laws. SIAM J. Appl. Math., pages 487–515, 2003.
33