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.

74 lines
1.9 KiB
Markdown

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
```bash
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
```
2. Pisar etc/bashrc con el nuestro editado
```
cp bashrc OpenFOAM/etc
```
3. Entrar a entorno de desarrollo de nix y compilar OpenFOAM en recursos del clúster
```bash
nix develop
cd OpenFOAM
source etc/bashrc
./Allwmake -q -j -s
```
4. Correr con SLURM algún ejemplo (damBreak)
```bash
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
```