OpenFoam est le logiciel open source de référence pour les simulations de Dynamique des Fluides Numérique (CFD) (Computational Fluid Dynamics). Bien qu'il soit principalement utilisé pour les simulations de fluides, il dispose également de solveurs pour toutes sortes de phénomènes physiques. Exécuter votre simulation OpenFoam sur Qarnot est aussi simple que de télécharger votre cas et de lancer un script. Voici un aperçu des différentes étapes.
Au besoin, vous pouvez facilement intégrer vos propres librairies à la version Openfoam disponible sur Qarnot. Contactez nos équipes sur support-compute@qarnot-computing.com pour en savoir plus.
Les versions d’Openfoam disponibles sur Qarnot sont disponibles via le catalogue.
Si une autre version vous intéresse, veuillez nous envoyer un e-mail à support-compute@qarnot-computing.com.
Pour lancer une tâche en clique bouton depuis notre interface web, vous pouvez utiliser ce tutoriel pas à pas. Si besoin, voici un cas test motorbike.
Pour ce faire, les prérequis sont :
Les exemples qui suivent vous montreront en détails comment lancer une tâche à l’aide d’un script Python.
Ce cas test vous montrera comment lancer une simulation du cas classique Motorbike (téléchargeable à ce lien). Il est basé sur la simulation du tutoriel d’une moto. Il contient les éléments pour réaliser le maillage ainsi que les fichiers de configuration du cas.
Une fois le fichier téléchargé, vous pouvez le décompresser et le placer dans votre répertoire de travail, au même niveau que les scripts de lancement ci-dessous.
Une fois que tout est configuré, utilisez le script run_openfoam.py ci-dessous pour lancer un calcul minimaliste sur Qarnot. Si vous souhaitez explorer les options plus avancées, les prochains scripts (“Lancement en batch” et “Lancement en SSH”) vous intéresseront sûrement davantage.
Pour lancer ces scripts, il suffit de copier le code précédent dans un script Python, de le placer au même niveau que le dossier motorbike/ puis d’exécuter,dans votre terminal :
python3 run_openfoam.py
La structure de vos fichiers devrait ressembler à ceci :
├─ motorbike/
├─ run_openfoam.py
Assurez-vous d’avoir copié votre jeton d’authentification dans le script (à la place de <QARNOT_TOKEN>) afin de pouvoir lancer la tâche sur Qarnot. A récupérer ici.
Par exemple, vos données d’entrées apparaîtront dans l’interface web tel que :

Le script présenté ci-dessous vous permet d’explorer les fonctionnalités plus avancées de la plateforme pour un lancement en batch.
Le script présenté ci-dessous vous permet de vous connecter à votre conteneur grâce au protocole SSH.
Pour le lancer, copiez simplement le code précédent dans un script Python, placez-le au même niveau que le dossier motorbike/ et définissez votre clé SSH dans les paramètres DOCKER_SSH.
Assurez-vous également d’avoir copié votre jeton d’authentification dans le script (à la place de « QARNOT_TOKEN ») afin de pouvoir lancer la tâche sur Qarnot.
Exécutez ensuite la commande suivante dans votre terminal :
python3 run_openfoam_ssh.py
Vous devriez à présent pouvoir vous connecter à l’hôte en suivant les informations affichées dans votre console. Votre cas de test est disponible dans /share. Rendez-vous dans le répertoire /share (en faisant cd ../share) et vous pourrez exécuter votre cas test en faisant ./Allrun.
Dans le futur, si vous souhaitez lancer vos propres cas et souhaitez configurer votre /Allrun afin d’optimiser votre simulation Openfoam chez Qarnot, le usecase téléchargé ci-haut donne ainsi un exemple des paramètres à configurer. Plus spécifiquement, les lignes de codes suivantes permettent de définir le nombre de domaines en fonction du nombre de coeurs disponibles sur vos instances chez Qarnot :
NB_PROCESS=$(($SETUP_CLUSTER_NB_SLOTS*$INSTANCE_COUNT))
sed -i "s/numberOfSubdomains.*/numberOfSubdomains ${NB_PROCESS};/" system/decomposeParDict.6
À tout moment, vous pouvez surveiller l'état de votre tâche sur l'interface web générale.

Vous devriez maintenant avoir un dossier motorbike-out dans votre répertoire de travail sur votre ordinateur et/ou un bucket motorbike-out sur la plateforme HPC contenant tous les fichiers de sortie.

Vous pouvez visualiser directement sur la plateforme HPC certaines images et fichiers de logs générées par la simulation qui se trouvent dans votre bucket de sortie. Vos résultats seront stockés dans le bucket motorbike-out et peuvent être récupérés de trois manières :
Pour une grande quantité de fichiers ou plus de 5gb de donnée, il est conseillé d’utiliser rclone (linux) ou cyberduck (windows). Ce sont deux applications opensource de gestion de bucket S3.
Pour plus d’informations sur Openfoam, vous pouvez consulter le manuel d’utilisation Openfoam. Également, n’hésitez pas à communiquer avec nous pour un onboarding et une présentation plus personnalisée de nos services via : support-compute@qarnot-computing.com.