Hidrológiai Közlöny 1991 (71. évfolyam)
5. szám - Gáspár Csaba: Többhálós – multigrid – eljárással összekapcsolt peremintegrálegyenlet módszer, és annak szivárgáshidraulikai alkalmazása
GASPAR CS.: Tübbhálós — multlgrid — eljárás 289 mindenekelőtt egy elég sűrű rács-, ill. elemhálózattal kell lefedni azt a tartományt, ahol az egyenlet ki van tűzve, és ezen fogjuk számítani a közelítő megoldást: mivel pedig a ritkább rácshálón pontatlanabb eredményt kapunk, azért a még kezelhető legfinomabb háló használatára törekszünk, és minden diszkretizálást és számítást azon végzünk. Ezzel ellentétben, a multigrid szemlélet szerint egyszerre foglalkozunk egy sorozat, egyre finomodó hálóval, és a durvább hálókon nyert közelítéseket is felhasználjuk a finomabb hálókbeli közelítések javítására. Az így elérhető számítási sebességnövekedés meglepően nagy: a sebesség akár nagyságrendekkel is felülmúlhat ja a „hagyományos" technikák sebességét, és egy sor esetben megközelíti az elméletileg lehetséges maximális sebességet (ill. minimális számításigényt). A véges differencia módszerrel összekapcsolt multigrid technikát széleskörűen és igen jó eredménnyel alkalmazzák számos probléma megoldására, különösen folyadékmozgások modellezésére, ld. pl. Vanka (1986), Sivaloganathan és Shaw (1988), Kettler (1987), Spekreijse (1987). Nem célunk részletesen ismertetni a multigrid módszert, és annak matematikai részleteit tárgyalni. Ezt illetően az irodalomra utalunk: ld. pl. Brandt (1984), Stílben és Trottenberg (1984), Hackbuscli (1985). A hangsúlyt a multigrid módszer egyéb technikákkal való kombinálására fogjuk helyezni. Itt csak az alapelveket vázoljuk röviden. Valamilyen hálón diszkretizálva a feladatot, véges differencia (vagy véges elem) módszerrel, egy diszkrét egyenletrendszert nyerünk. A multigrid technika alapvetően iteratív eljárás, melynek alapgondolata, hogy a közelítő megoldás hibáját két különálló lépésben csökkenthetjük. Mégpedig, a hibát diszkrét Fourier-sorba fejtve, külön redukáljuk a hiba nagyfrekvenciás komponenseit és külön a kisfrekvenciásokat. E két lépés teljesen különböző algoritmust igényel. A nagyfrekvenciás komponensek általában egyszerű iterációs lépésekkel hatékonyan csökkenthetők. (Ugyanezek az iterációk a kisfrekvenciás komponensekre közel sem olyan hatékonyak, ezcrt, ha csak ezeket alkalmaznánk, a konvergencia lassú lenne.) A kisfrekvenciás komponensek viszont jól lecsökkenthetők azáltal, hogy a problémát visszavezetjük egy durvább diszkretizációra, és az itt nyert közelítő megoldást valahogyan „visszahozzuk" a finomabb hálóra. Pontosabban, legyen X/, egy véges dimenziós vektortér (az adott hálón értelmezett diszkrét függvények összessége). A diszkrét (lineáris) egyenlet legyen A hx h—b h (6) alakú. írjuk ezt át valamilyen ekvivalens módon x h—B hx h + c h (7) formába. A (7) egyenlet egy iterációt generál, mégpedig a következőt: x' ,+ 1: = BnXh+Ch H Legyen továbbá Xu egy másik, kisebb dimenziós vektortér („durvább háló"). Legyen Pj, V/, -«• X/i valamilyen ráképezés (leszűkítés a durva hálóra), / A:X W— X/, valamilyen beágyazás (kiterjesztés a finom hálóra), az (1) egyenletbeli A h leképezést (mátrixot) pedig approximáljuk az X H durva hálón az A H leképezéssel. A leképezések szerepét jól szemlélteti az 1. ábrán látható séma: 1. ábra. A leképezések szerepét szemléltető séma a multigrid módszer felépítésében Tegyük fel, hogy X/,-n már ismert (1) megoldásárKj nak egy X/, közelítése. Keressük az x/, megoldást x h\=x k + w k (8) alakban, akkor a Wh korrekciós tag nyilván kielégíti az A hw h—b h - A hx h— : r h (9) ún. maradékegyenletet. Ezt az egyenletet oldjuk meg az Xu durva hálón, azaz oldjuk meg az AnWu—rn : =iV* egyenletet, és a megoldást az Ih operátor segítségével terjesszük ki az Xh finom hálóra. Ha az így nyert kifejezést (9)-ban u•/, helyére írjuk, a pontos X/, megoldás egy újabb közelítését kapjuk: Xh: = Xh + IhA~ iPhrh=Xh-\-IhA~^Ph(bii-AhXh) (10) Azt várjuk, hogy x h egy lényegesen jobb közelítése a pontos x h megoldásnak mint az x h kezdeti közelítés. Az eljárást kombinálva a (7) iterációval, nyerjük az alábbi „kétszintű" megoldási algoritmust: 1. Vegyünk egy xi, kezdeti közelítést. 2. Alkalmazzuk a (7) iterációt; elég csak kevésszer, tipikusan 1.. .5-ször: Xh: = BhXh + Ch 3. Korrigáljuk az előző lépésben nyert közelítést a (9) maradókegyenlet szerint: x/,:=xh + wh, ahol w/t: = Ih A'^Puh és ru: — hh — Ai,xi, 4. Megismételjük néhányszor a (7) iterációt. A 4. lépés után nyert újabb közelítéssel az egész eljárást ismételni lehet mindaddig, amíg a hiba elég kicsi nem lesz.