Retour
Simulation
Janvier 2023

Simulations sismiques sur Qarnot Cloud - SpecFem3D

SpecFem3D Cartesian est un logiciel open source pour la propagation des ondes sismiques en 3D. Il est basé sur la Méthode des Éléments Spectraux (SEM) (dont nous discuterons plus loin dans cet article), inclut son propre mailleur et peut également effectuer de l'Inversion de Forme d'Onde Complète (FWI), entre autres choses. Il est suffisamment flexible et puissant pour exécuter des simulations sismiques à une échelle locale et régionale. Le logiciel a été développé par des chercheurs du CNRS, de Princeton et de l'ETH Zürich depuis la fin des années 90. Notez que si une échelle régionale ne vous suffit pas, SpecFem3D Globe existe également.

Cas d'utilisation

Les simulations sismiques haute performance ont de nombreuses applications concrètes et sont depuis longtemps à la pointe de la course à la computation haute performance (HPC). Ces simulations peuvent permettre une meilleure compréhension des risques sismiques et aider à concevoir des infrastructures humaines résilientes aux pires scénarios. C'est particulièrement vrai dans les régions du monde à forte activité sismique comme la Californie, le Mexique ou même le Chili, et encore plus pour les infrastructures dont l'intégrité structurelle est critique, comme les centrales nucléaires (par exemple, Fukushima ou le projet ITER près de Cadarache en France).

Simulation d'un tremblement de terre de magnitude 7.0 sur la faille de Hayward près de San Francisco en Californie. Source.

Mais la plus grande application commerciale pourrait être l'utilisation de simulations numériques pour l'exploration d'hydrocarbures. Une stratégie classique pour trouver du pétrole ou du gaz sous nos pieds sans forer de coûteux trous au hasard est d'envoyer des ondes "sismiques" dans le sol (à l'aide de dynamite, de canons à air, de vibrateurs...) et d'écouter la réflexion de ces ondes lorsqu'elles reviennent à la surface, de la même manière que fonctionnent les sonars ou l'imagerie médicale. Ces données sont ensuite traitées par le logiciel qui calcule un modèle du sous-sol pouvant orienter les campagnes de forage. L'imagerie sismique peut également être utilisée pour acquérir des connaissances sur les zones de failles afin de faire progresser la connaissance des risques sismiques et d'améliorer les mesures de sécurité.

Collecte de données classique pour l'exploration d'hydrocarbures.
Chaque géophone (ou sismomètre dans le cas des tremblements de terre) enregistre le mouvement du sol. Ces données sont généralement affichées avec chaque enregistrement côte à côte.

Les enregistrements sismiques/d'explorationsont ces données qui sont ensuite traitées par un logiciel pour en déduire la composition du sol.

Modèles de vitesse des sols marins utilisant l'Inversion de Forme d'Onde Complète (FWI) et la Tomographie des Premières Arrivées (FAT) à partir de données collectées par des sismomètres de fond de mer d'une coupe de la Fosse de Nankai. Source.

Physique Computationnelle et Méthodes Numériques

Méthode FEM classique

Dans le monde de la physique computationnelle et des simulations numériques, la Méthode des Éléments Finis (FEM) est l'une des méthodes standard pour approcher les solutions des équations aux dérivées partielles (PDEs), qui sont présentes dans de nombreux problèmes tels que la propagation de la chaleur à travers un matériau, l'écoulement de fluides, les ondes électromagnétiques et, dans notre cas, les ondes sismiques. Les PDEs sont des équations qui "imposent les relations entre les différentes dérivées partielles d'une fonction à plusieurs variables". Dans le cas de notre simulation sismique, par exemple, nous allons chercher une fonction représentant le déplacement du sol pour chaque axe en 3D et dans le temps, ce qui nous donne une fonction à 4 variables. Ces PDEs sont généralement impossibles ou trop complexes à résoudre mathématiquement, c'est pourquoi nous allons construire des approximations par des moyens numériques.
Pour résoudre des équations numériquement, nous devons transcrire notre problème/équation continue en un modèle/problème fini qui peut être résolu par notre ordinateur avec un espace mémoire et une puissance de calcul finis. Le temps est discrétisé en coupant la fenêtre de temps totale en pas de temps réguliers.
La stratégie de la FEM est de diviser notre grand problème par discrétisation en parties plus petites appelées éléments finis sur lesquelles nous allons approcher notre fonction solution inconnue. Ces éléments finis construisent un maillage représentant le domaine total du problème. La définition d'un maillage est une partie critique du processus car il doit être bien défini pour éviter les erreurs numériques, optimiser la puissance de calcul, etc.

Différents maillages ajustés manuellement d'une clé à molette. Source.
Une fois notre domaine correctement défini et notre maillage construit, la FEM nous demande de réécrire notre équation sous une autre forme. Nous prenons comme exemple un problème de Dirichlet classique où nous voulons trouver une fonction qui satisfait.

Construire la formulation faible en multipliant les deux côtés de l'équation par une fonction test phi et en utilisant la formule de Green. Cela nous donne la forme variationnelle.

Dans les bonnes circonstances, le théorème de Lax-Milgram prouve qu'une telle fonction existe. Pour approcher notre solution, nous chercherons des solutions sur un sous-espace de dimension finie.

Et en particulier dans la FEM, ce sous-espace que nous concevons sera l'espace des fonctions polynomiales continues par morceaux, chaque morceau étant un élément fini. Maintenant que notre espace de solutions est fini et que notre équation est linéaire, tester u pour chaque v dans cet espace revient simplement à tester u pour chaque élément de la base de l'espace. Cela nous donne N équations et N coefficients pour trouver u comme une combinaison linéaire des fonctions de base. Cet ensemble d'équations peut maintenant être résolu numériquement.

Ici, sur un problème 1D avec la fonction "réelle" en bleu, l'approximation FEM en rouge et les fonctions de base en bas, c'est-à-dire que la ligne pointillée rouge est une combinaison linéaire des fonctions de base.

Bien sûr, nous approchons la solution et nous ne pouvons pas être sûrs de la proximité de la solution réelle que nous allons atteindre. Mais le lemme de Céa nous donne une limite supérieure de l'erreur que nous commettons.
Avec notre maillage et notre forme variationnelle, nous sommes prêts à donner notre problème à un logiciel FEM qui approchera une solution de notre problème.

Méthode SEM

Maintenant que nous avons vu ce qu'est la FEM, nous pouvons parler un peu de la Méthode des Éléments Spectraux (SEM), qui est utilisée dans SpecFem3D. La méthode a été développée à l'origine dans le domaine de la mécanique des fluides numérique avant d'être finalement implémentée pour les simulations sismiques.
Alors que la FEM utilise généralement des polynômes de faible degré comme fonctions de base pour représenter des fonctions sur un élément, la SEM utilisée dans SpecFem3D utilise des polynômes de Lagrange de degré 4 à 10 et, à l'intérieur de chaque élément, la fonction est interpolée à des points spécifiques appelés Gauss-Lobatto-Legendre (GLL) où les polynômes de Lagrange atteignent soit 0, soit 1 (voir ci-dessous). L'utilisation de ces polynômes de Lagrange comme fonctions de base a la propriété intéressante d'être orthogonaux les uns par rapport aux autres et de simplifier considérablement les algorithmes numériques nécessaires pour résoudre notre problème. Cette "version" de la FEM offre une certaine facilité de calcul et fonctionne très bien sur les ordinateurs parallèles.

Si vous souhaitez en savoir plus sur la SEM et sur la manière dont elle est implémentée dans SpecFem3D et que vous n'avez pas peur de quelques équations, vous pouvez vous référer à Tromp, J., Komatitsch, D., & Liu, Q. (2008). Spectral-element and adjoint methods in seismology. Communications in Computational Physics, 3(1), 1-32. ou à ces notes de cours.

Version

Version disponible sur la plateforme cloud de Qarnot : 3.0, sortie en 2021

Si vous êtes intéressé par une autre version, veuillez nous envoyer un e-mail à qlab@qarnot.com.

Prérequis

Avant de lancer le cas, veuillez vous assurer que les prérequis suivants sont remplis.

Cas test

Nous allons exécuter l'un des exemples que l'on peut trouver dans le répertoire git officiel de SpecFem3d. Cette simulation démontre le fonctionnement de SpecFem3D avec des domaines acoustiques/élastiques couplés en simulant une source sismique à l'intérieur d'une tasse à café. Le maillage est déjà fourni dans ce cas.

Le dossier de l'exemple contient :

Vous pouvez télécharger les scripts pour exécuter ces exemples depuis l'archive juste en dessous. Vous devez décompresser ce dossier pour pouvoir l'utiliser : test_case_qarnot_specfem3

Lancer un cas

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

#!/usr/bin/env python3
import qarnot

# Create a connection, from which all other objects will be derived
# Enter client token here
conn = qarnot.Connection(client_token='<<<MY_SECRET_TOKEN>>>')

# Create a task
task = conn.create_task("Hello World - SpecFem3D", "docker-batch", 1)

# Create the input bucket and synchronize with a local folder
# Insert a local folder directory
input_bucket = conn.create_bucket("sf3d-in")
input_bucket.sync_directory("test_case_qarnot_specfem3d")

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

# Create a result bucket and attach it to the task
task.results = conn.create_bucket("sf3d-out")

# Define the Docker image and the command to be run in the container
task.constants["DOCKER_REPO"] = "qarnotlab/specfem3d"
task.constants["DOCKER_TAG"] = "4.0"
task.constants['DOCKER_CMD'] = "/job/run.sh"

# Submit the task
task.run(output_dir = "sf3d_results")

Le script exécutera la simulation sur la plateforme Qarnot et affichera le résultat dans le dossier 'sf3d_results' sur votre ordinateur une fois celle-ci terminée.

Résultats

À tout moment, vous pouvez surveiller l'état de votre tâche.

Une fois la tâche déployée, elle devrait prendre environ 5 minutes pour s'exécuter, et quelques minutes de plus pour télécharger les résultats sur votre ordinateur. Vous pouvez visualiser les fichiers AVS_movie_*.inp à l'aide de Paraview ou de tout autre visionneur prenant en charge ce format. Vous pouvez également utiliser notre charge de travail Paraview Web pour voir les résultats en ligne si nécessaire.

Utilisation avancée

Si vous souhaitez exécuter Specfem3D en utilisant des GPU ou un cluster de Qarnot, veuillez nous contacter à qlab@qarnot.com.

Conclusion

C'est tout ! Si vous avez des questions, veuillez contacter qlab@qarnot.com et nous vous aiderons avec plaisir !

Retour

Nos articles