IV. fejezet - Általános célú áramlástani megoldók alkalmazása a mérnöki meteorológiában és a meteorológiai feladatok megoldásában. Az OpenFoam szoftvercsomag

Balogh Miklós

Tartalom

IV.1. Bevezető
IV.1.1. A véges térfogat módszer
IV.1.2. Az áramlástani vizsgálatok eszközei
IV.1.3. A szükséges programok telepítése
IV.2. A szimulációs esetek felépítése
IV.3. Oktató feladatok
IV.3.1. Légköri határréteg 2D szimulációja homogén érdességű, sík felszín felett
IV.3.2. Légköri határréteg 2D szimulációja egyszerűsített geometriájú domb felett
IV.3.3. Légköri határréteg 3D szimulációja komplex domborzat felett
Irodalomjegyzék

IV.1. Bevezető

A mérnöki gyakorlatban egyre nagyobb igény jelentkezik a kisskálájú légköri áramlások pontos leírására. Ez érthető, hiszen a fenntartható fejlődés érdekében, a mérnöki alkotásoknak egyre több környezetvédelmi és energetikai szempontnak kell megfelelniük. Számos mérnöki feladat szorosan kapcsolódik a légköri folyamatokhoz, például a szélfarmok optimális telepítése, egy város átszellőzésének vizsgálata, az épületekre és mérnöki műtárgyakra ható szélterhelés számítása, vagy a szennyezőanyag terjedés modellezése.

E fejezetben azt mutatjuk be, hogyan használhatók az általános célú áramlástani megoldók (más néven CFD – Computational Fluid Dynamics megoldók) a mérnöki gyakorlatban előforduló légköri áramlások vizsgálatára, illetve milyen lépések szükségesek az egyes feladatok gyakorlati megvalósításához. A fejezet tematikáját követve, miután megismerkedünk az áramlástani vizsgálatok módszertanával, és az ahhoz szükséges elméleti alapokkal, egyre összetettebb esetek vizsgálatán keresztül elsajátíthatjuk az OpenFOAM® (Open Field Operation and Manipulation) szimulációs rendszer felhasználói szintű használatát.

IV.1.1. A véges térfogat módszer

Hasonlóan a meteorológiai gyakorlatban is alkalmazott numerikus módszerekhez, a véges térfogat módszer is a parciális differenciál egyenletek reprezentációját és megoldását adja meg algebrai egyenletek segítségével (Toro, 1999; LeVeque, 2002). Hasonlóan a véges különbséges és a véges elem módszerhez, az áramlástani jellemzők értékét itt is diszkrét pontokban, az ún. rácson, vagy más néven hálón számítjuk. A véges térfogat módszerben a térbeli diszkretizációhoz kis elemi térfogatokat definiálunk a hálópontok alapján, amelyeket celláknak nevezünk, és amelyek lefedik az egész számítási tartományt (IV.1. ábra).

A mezőváltozókat a cellák középpontjában, illetve a cellát határoló síkfelületeken értelmezzük. A cellaváltozókra vonatkozó megmaradási tételeket leíró parciális differenciál egyenletek divergens tagokat tartalmazó integráljai felületi integrállá alakíthatók a Gauss–Osztrogradszkij-tétel segítségével.

(IV.1.)

A fenti egyenletben φ az egységnyi tömegre vonatkoztatott megmaradó mennyiség, F a konvektív és konduktív áramsűrűségek összege, V a vizsgált térfogatelem, A a zárt felület nagysága, míg dA az elemi felület vektora. SV és SA jelöli a térfogati és a felületi forrásokat. Ez az egyenlet teljesen általános formában fejezi ki a megmaradási tételeket, azaz a tömeg, az impulzus és az energia megmaradást. Az általános alakba a sűrűség (ρ), a sebességvektor (V), a nyomás (p), az energia (E), valamint az egyéb erők hatását leíró térfogati és felületi források (f) megfelelő behelyettesítésével a kontinuitási, a mozgás és az energia egyenletek integrál alakját kapjuk.

.

(IV.2.)

.

(IV.3.)

.

(IV.4.)

A felületi integrálok a véges térfogat módszer esetén a cella felületein értelmezett áramsűrűségek összegével, míg a térfogati integrálok a megmaradó mennyiség a cella középpontjában értelmezett átlagérték és a cellatérfogat szorzataként helyettesíthetők. A tömeg, lendület és energia megmaradása garantált, hiszen ezek adott térfogatba belépő áramsűrűsége megegyezik a környező térfogatból kilépőkkel. Euler-féle szemléletmódot alkalmazunk, rögzített térfogatelemekkel dolgozunk.

IV.1. ábra. A véges térfogat módszer térbeli diszkretizációja.

A véges térfogat módszer egyik legnagyobb előnye, hogy formalizmusa nem strukturált hálókon illetve tetszőleges alakú cellákon is könnyen alkalmazható, ezért sok általános célú áramlástani megoldóban szerepel.

IV.1.2. Az áramlástani vizsgálatok eszközei

A következőkben röviden áttekintjük az áramlástani vizsgálatok során szükséges szoftverekre vonatkozó legfontosabb tudnivalókat.

IV.1.2.1. OpenFOAM

Az OpenFOAM CFD Toolbox ingyenes, nyílt forráskódú CFD szoftvercsomag, amelyet az OpenCFD Ltd. forgalmaz. A szoftver kiterjedt felhasználói bázissal rendelkezik a műszaki és természettudományok legtöbb területén, mind kereskedelmi, mind pedig akadémiai szinten. Az OpenFOAM a képességek és eszközök széles tárházával rendelkezik a komplex áramlástani feladatok megoldása terén, így képes számos fizikai és kémiai folyamat numerikus modellezésére. A szoftver alkalmas többek között a komplex kémiai reakciók, a turbulencia, a hővezetés, a szilárdtest dinamika és az elektromágnesesség leírására. A szoftvercsomag a térbeli diszkretizáció (más néven hálózás), valamint az elő- és utó-feldolgozás eszközeit is magában foglalja. Szinte minden számítási folyamat párhuzamosítható (beleértve a hálózást, illetve az elő- és utó-feldolgozást), így a felhasználók teljes mértékben kihasználják a rendelkezésre álló számítógépes erőforrásokat.

Azáltal, hogy az OpenFOAM nyílt forráskódú, a felhasználóknak teljes szabadságot kínál, így kiterjeszthető a meglévő funkcionalitás, akár a felhasználó által, akár az OpenCFD támogatásával. Ennek köszönhető a kód magas fokú feladatorientált alkalmazhatósága (moduláritása), ahol a funkciók gyűjteményének mindegyike (pl.: numerikus módszerek, hálózás, fizikai modellek) a saját megosztott könyvtárába fordítható. A futtatható alkalmazások létrehozásánál ezeknek a könyvtáraknak a funkciói egyszerűen hozzákapcsolhatók a főprogramhoz. Az OpenFOAM több mint 80 megoldó alkalmazását tartalmazza, amelyek alkalmasak speciális műszaki problémák szimulációjára, továbbá több mint 170 segédprogramot is találhatunk az elő-és utó-feldolgozási feladatok elvégzéséhez.

Az OpenFOAM rendszer lehetőséget biztosít egy tetszőleges számú cellából álló numerikus háló létrehozására. Nincs korlátozás arra vonatkozóan sem, hogy a cellákat hány sík felület határolja. A határok konvex, tetszőleges oldalszámú sokszögek lehetnek. A cellák szerkezetének nagyfokú szabadsága nagyban megkönnyíti a háló kialakítását komplex geometriák esetén, illetve lényegesen megkönnyíti a háló lokális finomítását.

Az áramlástani feladatok során felmerülő hálózási problémák összetettsége igen változó. Egyszerű geometria esetén hatékonyan alkalmazható az OpenFOAM blokk strukturált hálózója, az ún. blockMesh, amely egyszerű és jól érthető szöveges fájl alapján állít elő hexaéder alapú, strukturált hálókat. Összetettebb geometriák és bonyolult felületek esetén a hálózására a snappyHexMesh nevű alkalmazás használható, amely elegendő számítási kapacitással rendelkező erőforrásokon párhuzamosítva is futtatható, és így akár több 100 millió cellából álló háló előállítására is képes.

IV.1.2.2. ParaView

A ParaView szoftver szintén nyílt forráskódú, több-platformú adat kiértékelő és megjelenítő alkalmazás. Felhasználói gyorsan megvalósíthatják a kvalitatív vagy kvantitatív kiértékeléshez szükséges megjelenítést. Az adatok kezelése történhet interaktívan, akár 3D-ben, illetve programozhatóan a ParaView batch lehetőségeinek használatával.

A ParaView szoftvert extrém nagyméretű adathalmazok feldolgozására fejlesztették, amelyet memória és számítási kapacitás megosztással támogat. Futtatható szuperszámítógépeken a tera-skálájú adatok feldolgozására, de futtatható akár laptopokon is kisebb adatok, halmazok esetén.

A Paraview alkalmas a VTK (Visualization Toolkit – vizualizációs eszközrendszer) fájlok kezelésére és megjelenítésére is. Számtalan formában kiértékelhetjük az eredményeket, mivel a szoftver képes kontúrok, vektorok, 3D izo-felületek és áramvonalak megjelenítésére is.

IV.1.2.3. Gnuplot

A Gnuplot szoftver hordozható, parancssorból vezérelhető ábrázoló eszköz, amelyet Linux, OS/2, MS Windows, OSX, VMS, és megannyi más platformon használhatunk. A forráskód szerzői jogvédelem alatt áll, de szabadon terjeszthető. Eredetileg matematikai függvények és adatok interaktív megjelenítésére készítették, főleg kutatók és egyetemi hallgatók számára, de mára már olyan nem interaktív felhasználásai is támogatottak, mint a web programozás. Más „third-party” alkalmazások, mint például a GNU Octave szoftver, ábrázoló motorjaként is használják. A Gnuplot 1986 óta támogatott és aktívan fejlesztett szoftver, és sokféle típusú 2D és 3D (két és háromdimenziós) ábra készíthető el segítségével. Képes vonalak, pontok, oszlopok, kontúrok, vektormezők és felületek, valamint különböző ezekhez kapcsolódó szövegek megjelenítésére. Számos specializált megjelenítési módot is támogat.

IV.1.2.4. OpenFOAM könyvtárak a légköri áramlások modellezéséhez

Mivel az általános célú áramlástani megoldók elsősorban a mérnöki gyakorlatban előforduló feladatok megoldására készülnek, a légköri áramlások szimulációjának lehetősége korlátozott a kód módosítása nélkül. Ennek megfelelően a neutrális rétegződésű légköri áramlások modellezéséhez elkészítettük a szükséges függvénykönyvtárakat. Új belépő peremfeltételeket, falfüggvényeket, és egy módosított turbulencia modellt építettünk be a rendszerbe. Ezeket fogjuk használni a légköri szimulációk során, így áttekintjük az ezekre vonatkozó legfontosabb tudnivalókat. Egy további terjedésszámítási alkalmazást a VII. fejezetben mutatunk, ahol az ELTE Meteorológiai Tanszékén folyó kutatásokhoz kapcsolódó OpenFOAM fejlesztéseket ismertetjük.

A számítási tartomány oldalsó, belépő peremein megadandó áramlási jellemzőket, magasságfüggő profilok formájában, az erre a célra kifejlesztett OpenFOAM függvények állítják elő. Ezeket a sebességre (V), a turbulens kinetikus energiára (k) és disszipációjára (ε) vonatkozóan kell előírni. A szilárd felszínek melletti első cellában az örvény-viszkozitásra (νt) és a turbulens kinetikus energia disszipációra (ε) kell feltételeket megadnunk, amelyeket módosított falfüggvények alkalmazásával valósítottunk meg. A mérnöki gyakorlattól eltérően, a meteorológiai gyakorlatban a felszíni érdesség jellemzésére a z0 érdességi magasság használatos, ezért mind a belépő peremfeltételek, mind a falfüggvények ennek megadásával parametrizálhatók (Lásd az I. fejezetet is).

A légköri áramlások szimulációihoz új turbulencia-modellt implementáltunk, amely korrigálja az általános célú STANDARD k–ε turbulencia-modell légköri alkalmazásoknál tapasztalható problémáit. A módosításokról bővebben Balogh et al. (2012) munkájában olvashatunk.

IV.1.3. A szükséges programok telepítése

Ahhoz hogy dolgozni tudjunk telepíteni kell a saját gépünkre is a korábban bemutatatott programokat. A következőkben ehhez nyújtunk segítséget.

Az előzőekben bemutatott eszközök telepítése könnyen elvégezhető a legelterjedtebb linux változatok (disztribúciók) mellett. A támogatott linux verziók (Ubuntu 10.04-12.04, OpenSuSE 11.4-12.1, Fedora 16-17) használata esetén lehetőségünk van a szoftvereket csomagból telepíteni, amelyet akár a csomagkezelő segítségével, akár parancssoros formában is elvégezhetünk. Más linux változatok használatakor a szoftvereket forrásból, illetve a forráskód lefordításával lehet telepíteni, de ez csak tapasztalt linux felhasználóknak javasolt, a megfelelő leírást követve. A telepítés megkezdése előtt fontos meggyőződnünk a programok függőségeinek meglétéről, azaz a telepítéshez és futtatáshoz szükséges hiányzó szoftvercsomagok megfelelő verziójának telepítését is el kell végeznünk. A telepítési segédletek az Ubuntu, az OpenSuSE és a Fedora linux disztribúciók esetén is megadják a függőségeket, így a leírásokat pontosan követve hatékonyan és gyorsan elvégezhető az installálás. A Gnuplot szoftver telepítését legegyszerűbben az általunk használt linux csomagkezelőjével végezhetjük el, de a parancssoros telepítés is egyszerű:

  • Ubuntu > sudo apt-get install gnuplot

  • OpenSuSE > sudo zipper install gnuplot

  • Fedora > sudo yum install gnuplot

IV.1.3.1. Többszörös telepítés

Ha az OpenFOAM 2.1.0-ás verzióját telepítettük, akkor a telepítés után azt a linux rendszer /opt/OpenFOAM-2.1.0 könyvtárában találhatjuk meg, de az erre mutató elérési út környezeti változók formájában is rendelkezésre áll ($FOAM_INST_DIR). Lehetőség van arra is, hogy egyszerre több, különböző verziójú OpenFOAM is telepítve legyen rendszerünkre. Ennek a különböző verziók alatt fejlesztett felhasználói függvények és rutinok alkalmazása során lehet szerepe. A verziók fejlődésével a kód módosulhat, így a korábban implementált alkalmazásaink nem feltétlenül működnek az újabb verziókkal. A különböző verziók használatához „alias”-okat definiálhatunk, amellyel kiválasztható az éppen használni kívánt verzió. Ha az OpenFOAM 2.0.1-es és 2.1.0-űs verzióját telepítettük, akkor a következő két „alias” segítségével választhatjuk ki a megfelelőt:

  • alias setFoam201='source /opt/OpenFOAM-2.0.1/etc/bashrc'

  • alias setFoam210='source /opt/OpenFOAM-2.1.0/etc/bashrc'

Ezeket a parancsokat linux verziótól függően a $HOME könyvtárunkban található .bashrc vagy .bash_profile fájlban definiálhatjuk.

IV.1.3.2. A légköri szimulációkhoz szükséges függvények telepítése

Az általános célú áramlástani megoldók funkcionalitása igen sokrétű, de nem feltétlenül támogatja a légköri áramlásokra, illetve a légköri határrétegre jellemző fizikai parametrizációk formalizmusát. A megfelelő határréteg előállításához elengedhetetlen, hogy a meteorológiai gyakorlatban használt felszíni érdességgel paraméterezzük a belépő peremfeltételeket és falfüggvényeket (földfelszínre vonatkozó peremfeltételeket), illetve, hogy garantáljuk a turbulencia modell kompatibilitását a megadott peremfeltételekkel. Ehhez a mérnök-meteorológiai gyakorlatban is használt, Richards és Hoxey (Richards és Hoxey, 1993) által javasolt, és széles körben használt peremfeltételeket alkalmazunk a megfelelően módosított k–ε turbulencia modellel. Ezek telepítését az aktuálisan használt OpenFOAM verzió mellett, a függvények fordításával végezzük. A források letölthetők innen. A letöltés után ezeket a megfelelő helyre, azaz a felhasználói forrásokat tartalmazó mappába kell másolnunk, és kitömörítenünk. Meg kell jegyezni, hogy a Richards és Hoxey által javasolt módosításokkal csak közelítőleg realisztikus határréteget kapunk, de a k–ε modell és a peremfeltételek jelentős módosításával jobb eredményt érhetünk el (Balogh et al., 2012).

  • mkdir -p $WM_PROJECT_USER_DIR/src

  • cp .../ABLpack.tar.gz $WM_PROJECT_USER_DIR/src/ABLpack.tar.gz

  • cd $WM_PROJECT_USER_DIR/src

  • gunzip ABLpack.tar.gz

  • tar -xvf ABLpack.tar

A fordítás az aktuális könyvtárban található parancsfájl futtatásával végezhető el:

  • chmod +x CompileAll.sh

  • ./CompileAll.sh

A feladatok között szereplő passzív-skalár terjedés vizsgálathoz új megoldót hoztunk létre, és telepítését szintén fordítással végezhetjük el, annak letöltése után:

  • mkdir -p $WM_PROJECT_USER_DIR/applications

  • cp .../scalar.tar.gz $WM_PROJECT_USER_DIR/ applications /scalar.tar.gz

  • gunzip scalar.tar.gz

  • tar -xvf scalar.tar

  • cd scalarTransportFoam

  • wmake

OpenSuSE > sudo zipper install gfortran

IV.1.3.3. Kiegészítő programok telepítése

Később látni fogjuk, hogy a domborzat geometriájának leírásához szükségünk lesz a domborzati adatokat tartalmazó fájlokra. Ezeket ArcInfo ASCII vagy GeoTiff formátumban letölthetjük ingyenes adatbázisokból, például a STRM adatbázisból. A letöltött adatok átalakíthatók (kivágatok készítése, térképészeti projekciók megadása, stb.) saját céljainkra, a megfelelő, ingyenes GIS (Geographic Information System) szoftver használatával. Ilyen szoftver például a VTbuilder, vagy a Quantum GIS Desktop. Ahhoz, hogy ezeket az adatokat felhasználhassuk a domborzat geometriájának létrehozásához az OpenFOAM rendszeren belül, a megfelelő, formátumba kell konvertálnunk. Ez a fájltípus az ún. STL (STereoLithography) típus. Néhány olyan kiegészítő program használatát is bemutatjuk a következő részben, amelyek forráskódja a domborzati adatbázisok felépítéséhez és szerkesztéséhez (manipulációhoz) és a hálózás megkönnyítésére innen tölthetők le. A telepítéséhez gfortran fordító szükséges, amit a csomagkezelő segítségével, vagy parancssorból is installálhatunk:

  • OpenSUSE > sudo zypper install gfortran

  • Ubuntu > sudo apt-get install gfortran

  • Fedora > sudo yum install gfortran

A letöltés után a forráskódokat a megfelelő helyre, azaz tetszőleges felhasználói könyvtárakba (pl. CFDTools) másolva, ott kitömörítve és lefordítva installálhatjuk a programokat:

  • mkdir -p $HOME/CFDTools

  • cp .../Tools.tar.gz $HOME/CFDTools/Tools.tar.gz

  • cd $HOME/CFDTools

  • gunzip Tools.tar.gz

  • tar -xvf Terrain.tar

A fordítás ismét az aktuális könyvtárban található parancsfájl futtatásával végezhető el:

  • chmod +x CompileAll.sh

  • ./CompileAll.sh