Hidrológiai Közlöny 1994 (74. évfolyam)

4. szám - Gáspár Csaba–Józsa János–Simbierowicz, Pavel: Új szemléletmód a numerikus hidraulikában. II. Differenciasémák és multigrid módszerek egyenlőtlen hálókon

208 HIDROLÓGIAI KÖZLÖNY 1994. 74. ÉVF. 2. SZÁM QtV- = ir. (u c + u E), a durva háló élközéppontjaiban (E) = "^(2u N + 2u w + 2u s + 2u e + u n w + u s w + u n e +u s e + 4« c) (22) A kiterjesztés szintén súlyozással történhet, éspedig u c, a durva háló rácspontjaiban (C) 2 . (u c + u N i + u NE i + u E ), a durva háló lapközép­pontjaiban (NE) (23) A fenti leszűkítés és kiterjesztés cella-csúcsponti sé­mák esetén használható, amikor is a durvább háló csúcspontjai egyúttal a finom hálónak is rácspontjai. A helyzet némiképpen eltérő lesz cella-középponti sémák esetén, amikor ez már nem lesz igaz (ld. a 6b. ábrát). Ekkor a legegyszerűbb leszűkítés, ill. kiterjesztés: (P hu) c: = ~. (uxw + u N E + u s w + u S E) (Qhu)nw • = (Qhu) n e : = (Ö«"W • = (QhU)se • = "c (24) mindazonáltal most sincs akadálya a súlyozási techni­kák bevezetésének. A multigrid módszerek második alapgondolata, hogy a durva hálóra átvitt (19) maradékegyenlet ugyanolyan szerkezetű lévén mint az eredeti (16) egyenlet, ennek megoldása helyett az egész fenti gondolatmenetet meg­ismételhetjük egy még durvább Xh> háló bevezetésével: ebben is fellép egy maradékegyenlet, mely egy még durvább háló segítségével kezelhető, és így tovább, tényleges egyenletmegoldás ily módon csak a legdur­vább hálón szükséges, az ismeretlenek száma itt vi­szont általában olyan kevés, hogy a teljes eljárás mű­veletigénye végül is jóval alacsonyabb, mint a hagyo­mányos (direkt vagy iterációs) módszereké. A durvahálós korrekció a közelítés nagyléptékű ja­vítását eredményezi. A kisléptékű hibák (a cellaméretű ingadozások), melyek törvényszerűen fellépnek a kor­rekciós tagnak a finom hálóra való kiteijesztésében ((20) egyenlet), nagyon jól csökkenthetők a legegysze­rűbb hagyományos (Jacobi- vagy Seidel-féle) iterációs eljárás néhányszori alkalmazásával, mely még mindig nem növeli lényegesen a módszer műveletigényét. így egy tipikus ún. multigrid ciklus a következő (rekurzív) algoritmussal adható meg: 1. Vegyük (16)-nak egy x' h közelítő megoldását. 2. Alkalmazzunk a közelítő megoldásra néhány Sei­del-iterációt. 3. Képezzük a (18) maradékot, ezt az eggyel dur­vább hálóra levetítve, állítsuk fel a (19) durvahálós maradékegyenletet. 4. Oldjuk meg (19)-et ugyanezzel a technikával (durvább háló bevezetésével, a legdurvább hálón egy konvergens iterációs vagy valamilyen direkt módszert alkalmazva). 5. Vigyük vissza a korrekciós tagot a finom hálóra (20) alkalmazásával, és javítsuk meg a közelítő meg­oldást az *Y : = ^'h + korrekciós formulával. 6. Az így nyert újabb közelítésre alkalmazzunk is­mét néhány Seidel-iterációt. Az így definiált multigrid ciklus műveletigénye alig több, mint a benne előforduló Seidel-iterációké, de an­nál sokkal gyorsabban konvergál. Igazolható, hogy ha a legfinomabb hálón az ismeretlenek száma N, akkor, előírva egy adott pontosságot, a megoldás műveletigé­nye csak N első hatványával arányos (az arányossági tényező függ az előírt pontosságtól, a tartomány alak­jától, de N-től magától független), ami sokkal jobb, mint a hagyományos módszerek műveletigénye. Isme­retes ui., hogy pl. a Gauss-elimináció műveletigénye N harmadik hatványával arányos: a jóval gazdaságo­sabb konjugált gradiens módszer is N második hatvá­nyával arányos műveletszámot igényel. Megjegyzés: A multigrid ciklusban a Seidel-iteráció helyett számos más eljárás is használható: így pl. a Jacobi-iteráció; alulrelaxálás (ebben a szerepben haté­konyabb a túlrelaxálásnál) konjugált gradiens módszer; váltakozó irányok módszere soronkénti eliminációval (double sweep) stb. Valójában itt a hibák Fourier-kom­ponenseinek különböző utakon való csökkentéséről van szó. A durvahálós korrekció térbeli nagyléptékű (kis­frekvenciás) hibákat erőteljesen csökkenti, viszont cel­laméretű (nagyfrekvenciás) hibákat generál a finom há­lóra való átmenetkor: e nagyfrekvenciás hibákat pedig az alkalmazott Seidel- (/acobi)-iteráció igen hatéko­nyan kiszűri. Az alábbi, szintén többhálós eljárás pedig jó kezdeti közelítést ad a legfinomabb hálón: a közelítés sokszor olyan jó, hogy multigrid ciklusra nincs is szükség. 1. Tekintsük a (16) problémát a legdurvább hálón, és ott oldjuk meg pontosan (direkt vagy iterációs mód­szerrel). 2. A durvahálós megoldást terjesszük ki a Q kiter­jesztéssel az eggyel finomabb hálóra. 3. Az eggyel finomabb hálón alkalmazzunk néhány Seidel-iterációt, ezáltal jóval pontosabb közelítéshez jutva (a közelítő megoldást úi. javarészt csak nagy­frekvenciás hiba terheli, Id. az előző megjegyzést). 4. Ismételjük meg az eljárás a 2. ponttól kezdve mindaddig, amíg a legfinomabb hálót el nem étjük. A 3. lépésben Seidel-iteráció helyett multigrid cik­lust alkalmazva, jutunk az ún. teljes multigrid algorit­mushoz, mely az eddigi eljárások közül a leghatéko­nyabb (adott műveletszám mellett a legpontosabb, ill. adott pontosság mellett a legkisebb műveletigényű). A módszert illusztrálandó, tekintsük a Laplace­egyenletet az egységnégyzeten, a peremfeltétel legyen a négyzet három oldalán azonosan 0, a negyediken pedig egy fél szinuszhullám: a pontos megoldás: u(x,y) = sin xy . sh ji(l-jr) . sh _ 1jr; (25) Az egyenletet 4 szinten approximáltuk, a legfino­mabb háló 32x32-es volt. Az előzőekben ismertetett fokozatos finomítást (valódi multigrid ciklus nélkül) al­kalmaztuk, a legdurvább szintet kivéve, minden szinten 5 Seidel-iterációt végrehajtva (a legdurvább szinten 15­öt). Minden szinten a szokásos centrális 5 pontos sé­mát használtuk. Az egyes szinteken a közelítő megol­dásokat a 7. ábra mutatja. A legfinomabb hálón a közelítő megoldás max. hi­bája kb. 0,01 volt, ami sokkal kisebb, mintha csak a legfinomabb hálón alkalmaztunk volna ugyanennyi Sei­del-iterációt. (Ez utóbbi esetben a közelítő megoldás még igen távol áll a pontos megoldástól: az iteráció

Next

/
Oldalképek
Tartalom