Hyppää sisältöön

OpenFOAM

OpenFOAM ("Open-source Field Operation And Manipulation") on C++-työkalupakki räätälöityjen numeeristen ratkaisijoiden sekä esi- ja jälkikäsittelytyökalujen kehittämiseen kontinuumimekaniikan ongelmien ratkaisemiseksi, erityisesti laskennalliseen virtausdynamiikkaan (CFD). OpenFOAMissa on laaja valikoima ominaisuuksia, joilla voidaan ratkaista kaikkea monimutkaisista kemiallisia reaktioita, turbulenssia ja lämmönsiirtoa sisältävistä virtauksista kiinteän aineen dynamiikkaan ja sähkömagnetiikkaan (OpenCFD Ltd:n mukaan).

OpenFOAMista on olemassa eri variantteja, joista CSC – Tieteen tietotekniikan keskuksen laskenta-alustoille on tällä hetkellä asennettu eri versioita OpenFOAM Foundationilta ja OpenCFD Ltd:ltä.

Lisenssi

OpenFOAM on vapaasti saatavilla ja avointa lähdekoodia, ja se on lisensoitu GNU General Public Licence -lisenssillä (GNU GPL tai GPL), johon liittyvät GPL-lisenssille tyypilliset käyttöä koskevat ominaisuudet.

Saatavuus

Eri OpenFOAM-versioita, joita tarjoavat OpenFOAM Foundation ja OpenCFD, on asennettu Roihu- ja LUMI-palvelimille.

Käyttö

Kirjauduttuasi palvelimelle anna komento

module -r spider '.*openfoam.*'

LUMIssa sinun täytyy ensin ladata moduuliympäristö

module use /appl/local/csc/modulefiles
module spider openfoam

Komento listaa palvelimella saatavilla olevat OpenFOAM-versiot. Saadaksesi lisätietoja tietystä versiosta, esimerkiksi OpenFOAM Foundationin versiosta 12, käytä komentoa

module spider openfoam-org/12

Käynnistääksesi tietyn version (esimerkiksi version 12), anna komento

module load openfoam-org/12

OpenCFD:n versiot tunnistaa versiomerkkijonosta, joka alkaa kirjaimella v, eli käynnistääksesi version openfoam/v2412 anna komento

module load openfoam/v2412

Käytä collated-rinnakkais-I/O-menetelmää CSC:n palvelimilla

  • CSC:n laskentapalvelimilla käytä aina kun mahdollista OpenFOAMin collated I/O -menetelmää
  • collated-menetelmän käyttö on ehdottoman välttämätöntä, kun mallin koko on suuri ja levy-I/O:ta tarvitaan paljon

CSC:n laskenta-alustoilla, Roihussa ja LUMIssa, käytettävä tiedostojärjestelmä on Lustre, joka on optimoitu pienen tiedostomäärän lukemiseen ja kirjoittamiseen. OpenFOAMin kirjoittamien tulostiedostojen määrä voi helposti kasvaa hyvin suureksi, jopa miljooniin, jos hilan koko on suuri ja kenttämuuttujat kirjoitetaan levylle jokaisella aika-askeleella. Tällaiset I/O-operaatiot kuormittavat tiedostojärjestelmää voimakkaasti, ja koko laskenta-alusta voi ruuhkautua jo muutaman samanaikaisen OpenFOAM-käyttäjän vuoksi.

Edellä kuvattu OpenFOAMin perinteinen rinnakkainen I/O-menetelmä voidaan uusimmissa OpenFOAM-versioissa korvata collated-rinnakkais-I/O-menetelmällä, jossa tulosdata kirjoitetaan vain muutamaan tiedostoon. Rinnakkaisia tiedostojärjestelmiä käyttävillä HPC-alustoilla tämä on ollut merkittävä parannus OpenFOAMiin.

CSC:n palvelimilla tehdyissä testiajoissa collated I/O -menetelmällä ei ole havaittu merkittävää eroa läpimenoajassa verrattuna non-collated-menetelmään. Joissakin testeissä collated-menetelmä on osoittautunut hieman nopeammaksi. Suosittelemme käyttämään collated-menetelmää aina, kun se on käytännöllistä.

Esimerkki

Roihu-palvelimessa on 2x192 ydintä per solmu. Jos mallin alialueiden kokonaismäärä on 384, käyttäjä voi varata ratkaisijan ajoon kaksi puolikasta solmua. Hajotus-eräajo voidaan sitten tehdä komennolla

decomposePar -fileHandler collated -ioRanks '(0 192 384)'

ja kaksi hakemistoa processors384_0-192 ja processors384_192-384 luodaan. Ratkaisijan ajoa varten komento on sitten

foamRun -parallel -fileHandler collated -ioRanks '(0 192 384)'

Tällä tavoin molemmilla solmuilla käynnistetään 192 prosessia, ja kummallakin solmulla yksi prosessi on pääprosessi. Datan rekonstruointi tehdään eräajossa komennolla

reconstructPar

Tässä esimerkissä alueiden 0–191 paineen tulokset kirjoitetaan kullakin aika-askeleella yhteen tiedostoon. Non-collated-menetelmässä samat tulokset olisi kirjoitettu 192 erilliseen tiedostoon. Tämä valtava tulostiedostojen määrän väheneminen tapahtuu luonnollisesti myös kaikkien muiden kenttämuuttujien osalta.

Collated-menetelmän I/O-operaatiot perustuvat säikeistettyihin aliprosesseihin, eivätkä ne siksi aiheuta simulaatiolle ajallista lisäkuormaa verrattuna non-collated-menetelmään.

Tuki

Jos kohtaat ongelmia käyttäessäsi OpenFOAMia CSC:n palvelimilla, lähetä sähköpostia CSC:n asiakastukeen.

Lisätietoja

Onko tämä sivu hyödyllinen?
Kiitos palautteestasi!
Kiitos! Arvostamme palautettasi.

Kerro meille miten voisimme parantaa tätä sivua ottamalla meihin yhteyttä .