Hidrológiai Közlöny 1994 (74. évfolyam)
3. szám - Gáspár Csaba–Józsa János–Simbierowicz, Pawel: Új szemléletmód a numerikus hidraulikában. I. Egyenlőtlen hálók: generálásuk, első alkalmazások
GÁSPÁR CS. el al.: Új szemléletmód, I. 165 kező dolgozatban részletezzük a differenciasémáknak a fenti hálókon való előállításának kérdéseit, valamint az így nyert diszkrét egyenletek többhálós (multigrid) módszerrel való megoldásának technikáját. A harmadik dolgozatban a módszert sekély tavakban fellépő, szél keltette áramlások számítására alkalmazzuk. A sorozat befejező, negyedik részében pedig megmutatjuk, hogy a módszer jól alkalmazható mozgó koordináta-rendszerekben is (Langrange-féle szemlélet): e témakörben örvényfejlődés (konkrétabban: nyíróréteg felcsavarodás), valamint konzervatív szennyező anyag transzportjának modellezését végezzük el. Valamennyi alkalmazási példa kétdimenziós, de megjegyezzük, hogy a bemutatt módszer elvileg könnyedén általánosítható háromdimenziós feladatokra is: ennek lehetőségét az alkalmazott számítógép memórianagysága korlátozza csupán. Hálógenerálás quadtree (QT) algoritmussal Legyen Q a sík egy korlátos tartománya. Legyen s : = {(Xi.yi). (xN,yw)} egy véges (N pontból álló) részhalmaza í2-nak. Az általánosság csorbítása nélkül feltehető, hogy Q egy egységnyi oldalhosszúságú négyzet. Nevezzük ezt a kiinduló állapotot 0. felbontási szintnek A quadtree (QT) algoritmust a következő, rekurzív módon megadott felbontási algoritmus definiálja. /. lépés. Ha S pontjainak száma meghalad egy előre adott N ma x értéket, akkor bontsuk fel Q-t négy egybevágó Qi, Q 2, rész-négyzetre, melyek oldalhosszúságai feleakkorák, mint Q-é. Bontsuk fel továbbá S-et is négy részre aszerint, hogy S pontjai melyik rész-négyzetben vannak: így nyerjük az S 1 ; S 2, S 3, S 4 ponthalmazokat (ezek némelyike üres is lehet). Nevezzük az így kapott felbontást (k+l)-edik szintűnek, ha £2 maga egy k-adik szintű felbontáshoz tartozott. 2. lépés. Ha a felbontási szint alatta marad egy előre adott L^ értéknek, akkor ismételjük az eljárást az 1. lépéstől kezdve rendre egymás után az (Qj, Sj), (Q 2, S 2), (Q 3, S 3), (£2 4, S 4) párokkal. Az eljárás a 2. lépésben önmagára hivatkozik, azaz rekurzív. Számítógépes megvalósítása igen könnyen elvégezhető olyan programnyelven, mely megengedi a rekurzív szubrutinhívást (pl. PASCAL): más nyelveken (FORTRAN) bonyolultabb ugyan, de lényeges nehézségbe nem ütközik. A k-adik szintű felbontás nyilvánvalóan 2~ k oldalhoszúságú négyzeteket eredményez. Világos továbbá, hogy az algoritmus "egymásba skatulyázott", azaz egymást tartalmazó, fokozatosan Finomodó cellarendszert szolgáltat. Ezek közül a további felbontásra már nem kerülő cellák fogják alkotni a számítási hálót. Ez a háló nem uniform, azaz általában különböző méretű cellákból áll. Könnyen látható, hogy a felbontás finomsága - a cellák mérete - a kiindulási S ponthalmaz síkbeli eloszlását fogja követni: Q azon részein, ahol S pontjai sűrűbben helyezkednek el, a felbontás is finomabb lesz, tehát kisebb méretű cellák keletkeznek, mint ott, ahol S pontjai ritkán vannak elosztva. Ilyen értelemben az S ponthalmaz vezérli a háló struktúráját. Az 1. ábrán két tipikus QT-cellarendszert mutatunk be. Az elsőt 10 pont generálja, N ma x:=l előírás mellett. A másodikban azt szemléltetjük, hogy N ma x :=0 választással egyetlen pont is generál egy QT-cellarendszert, mely mintegy „ráhúzódik" az adott pontra. Hidraulikai (illetve egyéb parciális differenciálegyenlettel leírható) alkalmazásokban £2 célszerűen egy olyan négyzet, mely a vizsgált áramlási tartományt tartalmazza: S állhat pl. e tartomány peremének kellően sűrűen elhelyezkedő pontjaiból. Ekkor a nyert QT-cellarendszer olyan, amely a tartomány pereme közelében automatikusan besűrűsödik. Sokszor célszerű további, belső pontokat is hozzávenni S-hez, ott, ahol lokálisan finomabb felbontást kívánunk elérni. m (a) (b) 1. ábra. Tipikus QT-cellarendszerek