Retour
Simulation
Janvier 2022

LMGC-90 sur Qarnot Cloud

LMGC90 est un logiciel libre et open source dédié à la simulation multiphysique de matériaux et de structures discrètes. Une liste des publications qui ont utilisé le logiciel peut être consultée ici. La documentation se trouve ici.

Versions

Versions disponibles sur la plateforme cloud de Qarnot :

Si une autre version vous intéresse, n'hésitez pas à nous envoyer un e-mail à qlab@qarnot.com.

Prérequis

Avant de lancer une tâche de calcul, veuillez vous assurer que les prérequis suivants sont remplis :

Cas de test

Nous utilisons un exemple d'un mur de briques fourni par l'équipe LMGC90. Vous devez décompresser ce dossier pour pouvoir l'utiliser sur Qarnot Cloud.

Lancement du cas

Copiez le code suivant dans un script Python et enregistrez-le à côté du dossier lmgc90_wall_example que vous avez décompressé précédemment. Assurez-vous d'avoir copié votre jeton d'authentification dans le script (à la place de <<<MY_SECRET_TOKEN>>>) pour pouvoir lancer la tâche sur Qarnot.

lmgc90.py

#!/usr/bin/env python3

# Import the Qarnot SDK
import qarnot

# Create a connection
conn = qarnot.Connection(client_token = '<<<MY_SECRET_TOKEN>>>')

# Create a task
task = conn.create_task('lmgc90_Wall_Example', 'docker-batch', 1)

# Create a resource bucket and add iput files 
input_bucket = conn.create_bucket('lmgc90_input')
input_bucket.sync_directory('lmgc90_wall_example/')

# Attach the bucket to the task
task.resources.append(input_bucket)

# Create a result bucket and attach it to the task
output_bucket = conn.create_bucket('lmgc90_output')
task.results = output_bucket

# Set the command to run when launching the container, by overriding a constant.
# Task constants are the main way of controlling a task's behaviour
task.constants['DOCKER_REPO'] = 'qarnotlab/lmgc90'
task.constants['DOCKER_TAG'] = '2021'
task.constants['DOCKER_CMD'] = 'sh -c "export OMP_SCHEDULE=STATIC && \
				export OMP_NUM_THREADS=$(\
					cat /proc/cpuinfo | grep -i "^processor" | wc -l) &&\
				export OPENBLAS_NUM_THREADS=1 &&\
				python3 command.py"'

# Submit the task and download results
task.run(output_dir = "output")

Assurez-vous que tous les fichiers d'entrée sont dans un dossier nommé lmgc90_wall_example. Votre répertoire de travail doit ressembler à ceci :

Pour lancer ce script, ouvrez un terminal dans votre répertoire de travail et exécutez python3 lmgc90.py &. Cela lancera l'exécution de lmgc90 sur Qarnot et attendra que l'exécution soit terminée pour télécharger les résultats.

Résultats

À tout moment, vous pouvez suivre l'état de votre tâche. Vous devriez maintenant avoir un dossier output dans votre répertoire de travail sur votre ordinateur et un bucket lmgc90_output sur le Tasq de Qarnot contenant tous les fichiers de sortie. Il devrait comporter 3 répertoires :

Les fichiers ASCII du répertoire POSTPRO résultent des commandes contenues dans le fichier DATBOX/POSTPRO.DAT. Pour plus d'informations sur l'utilisation de ces fonctionnalités, consultez ce document. Les fichiers du répertoire DISPLAY peuvent être visualisés avec Paraview. Il est conseillé de lire les fichiers .pvd qui garantissent la cohérence temporelle. Les différents fichiers de sortie sont :

C'est tout ! Si vous avez des questions, veuillez contacter qlab@qarnot.com et nous serons ravis de vous aider !

Retour

Nos articles