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. 169 szecskék összességét választjuk (Gáspár és Szél [1991]). Ilyenkor célszerű közepesen nagy (legalább tízes nagyságrendű N ma x paramétert használni (ellenkező' esetben a pontosság romlik). Szórt alappontú interpoláció Legyenek (x„ y t) ,(x N,y N) rendszertelenül elhelyezkedő (szórt) pontok a síkon, és mindegyik ponthoz tartozzék egy-egy számérték, f 1,...,f N- A probléma a következő: definiáljunk egy - általában minél simább f(x,y) függvényt úgy, hogy az teljesítse az fCxtcyk) = fk k=l,2,...N (3) interpolációs egyenlőségeket. Más szóval, definiáljunk ésszerű interpolációs értékeket a fenti pontokon mint interpolációs alappontokon kívül. A probléma általában szórt alappontokon vett mérési adatok (terepitiagasság, vízmélység, szivárgási tényező, vezetőképesség, szélsebesség stb.) kiértékelésekor lép fel. A fenti probléma egy szokásos megoldása az ún. inverz távolság módszer (vagy Shepard-módszer, ld. Franké [1982]). Eszerint legyen az f(x,y) interpolációs függvény a következő alakú: MxjY- = (R k-^ k(x,y)) + fk • wiÁx,y) Ax,y): = ahol k-1 2 w k{x,y) k-l *> k(x,y): = [(x-x k) 2 + (y-y k) 2r (*= 1,-^0 (4) (5) valamilyen a>0 paraméter mellett: általában a=l. A w k súlyfüggvény végtelenné válik az (x^y^ alappontban, és csak ott: éppen ez biztosítja azt, hogy a (3) interpolációs egyenletek kielégítettek legyenek. Megjegyezzük, hogy ha a>l/2, akkor a (4) interpolációs függvény nemcsak folytonos, de folytonosan differenciálható is. A fenti interpolációs technika rendkívül egyszerűen megvalósítható, ám igen munkaigényes, ha az alappontok száma nagy (pl. több ezer vagy több tízezer). Nyilvánvaló ui., hogy az eljárás műveletigénye 0(N • M), ahol M azon pontok száma, ahol az interpolációs függvényt ki kell értékelni. A jellemző az, hogy M és N ugyanabban a nagyságrendben vannak, ekkor az interpoláció 0(N 2) műveletszámot követel, ami megengedhetetlenül naggyá nő, ha N nagy. A (4) kifejezésben olyan w k súlyfüggvények szerepelnek, melyek értéke gyorsan csökken az (x^y^) alapponttól távolodva, de sehol sem válik zérussá. így (4) jobb oldalán szereplő összegekben minden tagot ki kell számítani, jóllehet, ezek közül csak néhány az, amely lényegesen befolyásolja az interpolált értéket (ti. az (x, y) ponthoz „elég közeli" pontok). Az eljárás műveletigénye tehát lényegesen csökkenthető, ha a (4)-ben olyan w k súlyfüggvényeket szerepeltetünk, melyek értéke azonosan 0 egy bizonyos, R k sugarú, (x^yt) középpontú körön kívül. Ilyen súlyfüggvények könnyen találhatók, pl. legyen R k . d k{x,y) ahol d k(x,y) legyen a d k(x,y): = [(x-xO 2 + (y-y k) 2r távolság, z + pedig jelentse a z szám pozitív részét, azaz ,z, ha z > 0 : = \0, ha z < 0 Ekkor w k(x,y) eltűnik, ha az (x,y) pont a k-adik alapponttól legalább távolságra van, mindazonáltal w k folytonosan differenciálható (az alappont kivételével, ahol is végtelenné válik). Ilyen súlyfüggvényeket használva (4)-ben, a szükséges műveletszám tetemesen csökkenthető. A probléma most már az, hogy minden egyes (x,y) pont esetében el kell dönteni - méghozzá gyors algoritmusai —, hogy mely alappontok esnek „elég közel" ehhez a ponthoz. Ennek eldöntése maga sem triviális feladat. A kézenfekvő megoldás, ti. az összes | (x,y) - (x k,y k) | távolság összehasonlítása nem kielégítő, mert ez maga is O(N) műveletigényű, ami összességében O(N M) műveletel jelent az összes kiértékelendő pontot tekintve. A probléma egy lehetséges megoldását a QT-algoritmus adja. Generáljunk egy QT-hálót az interpolációs alappontokat mint vezérlő ponthalmazt használva. Minden (x k,yij alappont esetén legyen R k az a legkisebb sugár, hogy az (x^yíj középontú, R k sugarú kör még lefedi az alappontot tartalmazó cellát és annak összes szomszédját (beleértve a sarok-szomszédokat is). Könynyen látható, hogy ily módon a (4)-beli összegekben a nem zérus tagok kiválasztását egy szomszédkeresési algoritmusra vezettük vissza. Ennek műveletigénye az előzőek szerint pedig csak kb. O(logN), ami, nagy N esetén, a számítási munka lényeges csökkentését eredményezheti. Végeselem-háló generálása Utolsó példaként röviden vázoljuk, hogy a QT algoritmust hogyan lehet a hagyományos végeselem technikában mint hálógeneráló módszert használni. Bilineáris bázisfüggvényeket használva, a QT-hálók változtatás nélkül alkalmasak a végeselem megközelítésére. Ekkor az adott feladat megoldását olyan függvények formájában keressük, melyek egy-egy cella felett bilineárisak, a cellaoldalak felett pedig lineárisak. Az ismeretlen csomóponti értékek a cellák csúcspontjaihoz vannak rendelve. A QT-háló regularitását nem kell feltenni, mindazonáltal a nagyobb pontosság és a strukturális egyszerűség kedvéért célszerű reguláris hálókat alkalmazni. Az 5. ábra egy reguláris QT-hálórészletet ábrázol, melyen a megfelelő bázisfüggvényt fogjuk definiálni. Az egyszerűség kedvéért csak a cella keleti oldalán tételeztünk fel más méretű, éspedig kisebb oldalszomszédot. Válasszuk az SW csomópontot egy lokális koordinátarendszer origójának, a koordinátarendszer egységét pedig válasszuk meg úgy, hogy a C cella oldalhossza egységnyi legyen. Ebben a lokális koordinátarendszerben keressük a közelítő megoldást az alábbi alakban: