Pflotran sur IO
PFLOTRAN (https://pflotran.org/) est un logiciel open-source de simulation des flux et du transport réactif dans les milieux poreux, utilisé pour modéliser des processus physiques et chimiques complexes dans le sous-sol.
Il résout des systèmes d’équations aux dérivées partielles non linéaires décrivant le écoulement multiphasique, le transport multicomposant et les réactions géochimiques dans des matériaux poreux.
Le code est conçu pour fonctionner sur des architectures de calcul massivement parallèles ainsi que sur des ordinateurs portables ou postes de travail, ce qui permet de simuler des problèmes à grande échelle.
Il utilise des bibliothèques open-source de calcul haute performance comme PETSc pour les solveurs parallèles et HDF5 pour l’entrée/sortie de données.
PFLOTRAN, distribué sous licence GNU LGPL, est écrit en Fortran moderne (2003/2008) avec une conception orientée objet facilitant son extension et sa maintenance.
Il est utilisé dans des domaines comme l’hydrogéologie, la séquestration de CO₂, la gestion des déchets nucléaires ou la remédiation environnementale. PFLOTRAN peut simuler des interactions entre écoulement de fluides, transport de solutés, réactions chimiques et échanges thermiques.
Exemple de fichier SLURM pour lancer en série un code avec Pflotran sur le cluster IO :
#!/bin/sh
#SBATCH --job-name=reg_doublet_serie
#SBATCH --time=00-02:00:00
#SBATCH --mail-type=ALL
#SBATCH --mail-user= ##your mail adress
#SBATCH --partition= ##your partition
#SBATCH --account= ##your account
#SBATCH --mem=20GB
#SBATCH --output=Resultat_reg_doublet_serial_%j.out
#SBATCH --error=Erreur_reg_doublet_serial_%j.err
###----Nettoyage des modules
module purge
###--- Declaration des variables
path_to_scratch="/scratch/users/$USER"
path_to_image="/storage/simple/projects/pflotran/pflotran-apptainer" ## Path to pflotran image and environment file
###########################################################
###--- Commands to Run pflotran through apptainer in serial ---###
###########################################################
###--- Definition de la commande
inputfile="regional_doublet" ## Name of input file
###---Redirection du cache
export APPTAINER_CACHEDIR="$path_to_scratch/apptainer/cache"
mkdir -p "$APPTAINER_CACHEDIR"
Exemple de fichier SLURM pour lancer en parallèle un code avec Pflotran sur le cluster IO :
#!/bin/sh
#SBATCH --job-name=reg_doublet_para
#SBATCH --time=00-02:00:00
#SBATCH --mail-type=ALL
#SBATCH --mail-user= ##your mail adress
#SBATCH --partition= ##your partition
#SBATCH --account= ##your account
#SBATCH --ntasks=16
#SBATCH --mem=20GB
#SBATCH --output=Resultat_reg_doublet_para_%j.out
#SBATCH --error=Erreur_reg_doublet_para_%j.err
###---- Nettoyage des modules
module purge
###--- Declaration des variables
path_to_scratch="/scratch/users/$USER"
path_to_image="/storage/simple/projects/pflotran/pflotran-apptainer" ## Path to pflotran image and environment file
inputfile="regional_doublet" ## Name of Input file
export TMPDIR=$PWD/tmp
export APPTAINER_TMPDIR=$TMPDIR
mkdir -p $TMPDIR
export APPTAINER_CACHEDIR="$path_to_scratch/apptainer/cache"
mkdir -p "$APPTAINER_CACHEDIR"
### Pour supprimer les warnings OpenMPI/Infiniband
export OMPI_MCA_btl="^openib"
export OMPI_MCA_btl_openib_warn_no_device_params_found=0
### Pour supprimer le warning Apptainer sur CMA
export OMPI_MCA_btl_vader_single_copy_mechanism=none
### Réglages PMIx pour SLURM
export PMIX_MCA_gds=hash
export PMIX_MCA_verbose=0
# Lancement
srun --mpi=pmix_v4 -n ${SLURM_NTASKS} \
apptainer exec --bind $PWD --pwd $PWD \
$path_to_image/pflotran_10122025.sif \
pflotran -input_prefix ${inputfile}