OPENFoam

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



Kompilace vlastního/doplňkového kódu

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/