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 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.
Avant de lancer une tâche de calcul, veuillez vous assurer que les prérequis suivants sont remplis :
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.
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 :
lmgc90_wall_example/DATBOX/
command.py
lmgc90.py
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.
À 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 :
DISPLAY
OUTBOX
POSTPRO
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 :
tacts
: contacteurs d'objets rigidesrigids
: centres de masse d'objets rigidesinter
: interactionsmecafe
: maillage mécaniquetherfe
: maillage thermiqueporofe
: maillage mécanique poreuxmultife
: maillage de fluide multiphasique en milieu poreuxC'est tout ! Si vous avez des questions, veuillez contacter qlab@qarnot.com et nous serons ravis de vous aider !