Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

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 kemiallisia reaktioita, turbulenssia ja lämmönsiirtoa sisältävistä monimutkaisista 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 avoimen lähdekoodin ohjelmisto, 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 Roihun, Mahdin ja LUMIn 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ä koottua rinnakkaista I/O-menetelmää CSC:n palvelimilla

  • CSC:n laskentapalvelimilla käytä aina mahdollisuuksien mukaan OpenFOAMin koottua I/O-menetelmää
  • koottua menetelmää on ehdottomasti käytettävä, kun mallin koko on suuri ja levy-I/O:ta tarvitaan paljon

CSC:n laskenta-alustoilla, Roihussa, Mahdissa 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 kootulla rinnakkaisella 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 kootulla I/O-menetelmällä ei ole havaittu merkittävää eroa läpimenoajassa verrattuna ei-koottuun menetelmään. Joissakin testeissä koottu menetelmä on osoittautunut hieman nopeammaksi. Suosittelemme käyttämään koottua menetelmää aina, kun se on käytännöllistä.

Esimerkki

Mahdin palvelimella on 128 ydintä solmua kohden. Jos mallin alialueiden kokonaismäärä on 256, käyttäjä voi varata kaksi kokonaista solmua ratkaisijan ajoa varten. Hajotusajon voi tällöin tehdä komennolla

decomposePar -fileHandler collated -ioRanks '(0 128 256)'

ja luodaan kaksi hakemistoa processors256_0-127 ja processors256_128-255. Ratkaisijan ajoa varten komento on tällöin

pimpleFoam -parallel -fileHandler collated -ioRanks '(0 128 256)'

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

reconstructPar

Tässä esimerkissä alueiden 0–127 paineen tulokset kirjoitetaan jokaisella aika-askeleella yhteen tiedostoon. Ei-kootussa menetelmässä samat tulokset olisi kirjoitettu 128 erilliseen tiedostoon. Tämä valtava tulostiedostojen määrän väheneminen tapahtuu luonnollisesti myös kaikkien muiden kenttämuuttujien osalta.

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

Tuki

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

Lisätietoja

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta