Program je dostupný v modulech, a to hned v několika vývojových větvích a verzích
K foam-extend obou verzí je k dispozici také rozšíření solids4foam.
Obsah vstupního skriptu pro sbatch pro úlohu běžící na jednom jádře:
#!/bin/bash #SBATCH --job-name=foam_test #SBATCH --output=test.%j.output #SBATCH --error=test.%j.error #SBATCH --nodes=1 #SBATCH --ntasks=1 module load <modul> srun <program> <prepinace>
Za <modul> dosadíme např. openfoam-org/6-10.3.0, <program> např. snappyHexmesh
Skript pro paralelní úlohu na 4 jádrech:
#!/bin/bash #SBATCH --job-name=foam_test #SBATCH --output=test.%j.output #SBATCH --error=test.%j.error #SBATCH --nodes=1 #SBATCH --ntasks=4 module load openfoam-org/6-10.3.0 #decomposePar decomposes the task over specified number of cores #keep value of numberOfSubdomains in system/decomposeParDict the same as ntasks specified above! decomposePar -force srun myLusgsFoam -parallel
K OpenFOAMu lze přikompilovat vlastní/doplňkový kód. Postup si ukážeme na kódu dostupném z githubu
mkdir test_folder cd test_folder git clone https://github.com/furstj/myFoam.git
Vyberme např. implementaci pro OpenFOAM-org 6 zvolením příslušné git-větve
git checkout OF6
Nyní načteme modul pro OpenFOAM-org 6
ml openfoam-org/6-10.3.0
Tím se do prostředí načetly proměnné standardně užívané OpenFOAM programy ($WM_PROJECT_DIR, apod. ). S modulem se také načetl správný kompilátor (zde gcc/10.3.0). Zbývá provést samotnou kompilaci, pro stažený kód stačí:
cd myFoam ./Allwmake cd ../mySolvers/ ./Allwmake
Výsledek kompilace je v tomto případě umístěn v obvyklých cestách OpenFOAMu, např. ~/OpenFOAM/username-6/platforms/linux64GccDPInt32-spack/