You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.9 KiB

Compilación de OpenFOAM.com mediante NIX

Mediante estas instrucciones se compila un OpenFOAM a una carpeta local para los casos de uso de ciclos de editar-recompilar-correr.

  1. Checkout del repo nix en GIT CSC para openfoam, get de las fuentes
git clone https://git.csc.gob.ar/tupac/openfoam-nix.git
cd openfoam-nix

wget https://develop.openfoam.com/Development/openfoam/-/archive/OpenFOAM-v2212/openfoam-OpenFOAM-v2212.tar.gz
tar -xzf openfoam-OpenFOAM-v2212.tar.gz
mv openfoam-OpenFOAM-v2212 OpenFOAM
  1. Pisar etc/bashrc con el nuestro editado
cp bashrc OpenFOAM/etc
  1. Entrar a entorno de desarrollo de nix y compilar OpenFOAM en recursos del clúster
nix develop
cd OpenFOAM
source etc/bashrc
./Allwmake -q -j -s
  1. Correr con SLURM algún ejemplo (damBreak)
cp ../slurm-example-damBreak tutorials/multiphase/interFoam/laminar/damBreak/damBreak
cd tutorials/multiphase/interFoam/laminar/damBreak/damBreak
blockMesh
cp -r 0.orig 0
setFields
decomposePar
sbatch slurm-example-damBreak
# esperar a que termine la corrida paralela
reconstructPar

(Observar que estamos ejecutando blockMesh, setFields, decomposePar y reconstructPar en el headnode, en el caso de un proyecto real de envergadura tanto el preprocesamiento como el postprocesamiento debería realizarse de forma paralela en los recursos del clúster con srun.)

∞. Postinstalación

Luego de terminada la sesión de compilación, al abrir una nueva sesión en el futuro:

a. Para correr cualquier aplicación hay que incluir el bashrc de OpenFOAM

source openfoam-nix/OpenFOAM/etc/bashrc

previo a lanzar la simulación con sbatch.

b. Para recompilar hay que volver a cargar el entorno de Nix

cd openfoam-nix
nix develop

y disparar la recompilación de OpenFOAM en el clúster, por ejemplo con

cd OpenFOAM
./Allwmake -q -j -s