Couplage de codes de calcul

Depuis de nombreuses années, les simulations numériques sont utilisées pour représenter des phénomènes physiques par l’intermédiaire de programmes informatiques appelés codes de calcul. Moins onéreuses et moins contraignantes que les expérimentations, elles permettent d’étudier l’impact de la modification de paramètres et d’obtenir des données qui peuvent être difficilement mesurables en conditions réelles, aussi bien pour des raisons de sûreté que techniques. Il est ainsi possible d’explorer de nombreuses solutions et d’observer des comportements inattendus, pouvant suggérer des expériences. Pour ces raisons, les simulations numériques sont complémentaires aux expérimentations.

Elles ont malgré tout des limites. Tout d’abord, les modèles physiques utilisés pour simuler les phénomènes sont une approximation de la réalité qui a besoin d’être validée pour un domaine d’utilisation. Ensuite, la complexité de certaines études implique des puissances de calcul indisponibles actuellement et l’obligation de limiter spatialement le domaine étudié. Les codes développés s’attachent donc à résoudre un problème déterminé et simplifient les effets extérieurs en utilisant des données imposées (issues d’expérimentations), des moyennes ou des heuristiques. Depuis ces vingt dernières années, des couplages entre codes ont été réalisés afin d’améliorer ce point. Dans ce cas, les codes échangent des résultats obtenus chacun dans leur domaine de compétence. Les calculs réalisés peuvent ainsi prendre en compte les interactions entre différentes disciplines physiques, améliorant les résultats finaux.

Simulations numériques 

Les simulations numériques permettent d’étudier des comportements physiques. Les ressources informatiques étant beaucoup moins coûteuses que les expérimentations, il est possible de réaliser de nombreuses études pour valider des choix techniques ou traiter des cas problématiques, comme l’optimisation, les études de sensibilité et les incertitudes de paramètres physiques. Différents programmes informatiques, nommés codes de calcul, sont développés. Du fait de la complexité et des nombreuses interactions entre les effets physiques, la réalisation d’un code global n’est pas envisageable. Les codes sont spécialisés dans la simulation d’un phénomène, comme l’écoulement d’un fluide, et d’un type de problème. Ils sont très performants dans un domaine précis. Il faut alors noter que les échelles de grandeur peuvent aller du nanomètre en dynamique moléculaire (simulation de l’évolution d’un système de particules moléculaires) à plusieurs kilomètres dans le cas des études météorologiques. Dans ce travail de thèse, on se limite aux codes s’appuyant sur une représentation géométrique pour effectuer leurs calculs. Un classement possible de ces derniers peut être réalisé pour les séparer en deux groupes. Dans le premier, ils s’appuient sur un maillage de la géométrie de l’étude. La résolution des équations physiques aboutit à un résultat discrétisé sur ce dernier. On parle alors de codes déterministes. Dans le second cas, ils sont dits de Monte-Carlo. Il s’agit d’une approche stochastique utilisant une géométrie continue et faisant intervenir des techniques probabilistes. Elle permet de simuler des phénomènes caractérisés par une succession d’étapes dans lesquelles plusieurs résultats sont possibles pour chaque entité étudiée. Dans ce qui suit, seuls les codes déterministes sont traités. Il faut alors indiquer que, pour une géométrie donnée, la phase de discrétisation peut aboutir à des résultats très différents. Les maillages générés sont spécifiques aux besoins de chacun des codes de calcul. Ils peuvent être surfaciques ou volumiques, uniformes, à base de triangles, de quadrangles, …

Centralisation des données

La centralisation de l’ensemble des informations d’un calcul permet de regrouper plusieurs traitements partageant des données communes . Elle impose un ensemble de règles pour y accéder et met à disposition les informations calculées par une tâche. Dans le cas présent, les besoins essentiels sont de pouvoir définir une géométrie et d’y attacher des données afin de certifier que tous les traitements s’appuient sur des informations identiques. Dans ce travail de thèse, toutes les données sont connues. Il est donc possible de définir complètement la géométrie qui sert de base aux représentations des tâches à effectuer. Le modèle géométrique permet également d’assurer une cohérence spatiale des résultats obtenus lors des calculs. Pour simplifier sa mise en œuvre, il est important de pouvoir intégrer des paramètres de construction, comme le rayon d’une sphère ou la hauteur d’un cylindre. Il sera donc nécessaire de la définir de manière paramétrique et continue pour garantir une précision optimale.

Un des intérêts de mettre en commun des informations entre différentes tâches est de s’assurer de la cohérence de leurs résultats. Les données utilisées sont ainsi strictement identiques, aussi bien au niveau de la précision numérique que concernant le choix des valeurs physiques (pour les cas ambigus). Un autre est de pouvoir partager entre tous les traitements les résultats obtenus par une tâche en particulier. Il peut alors s’agir de champs de valeurs, comme une température, ou de déformations géométriques. L’échange de données nécessite donc une phase de transfert vers la représentation géométrique d’un second traitement.

Transfert de déformations géométriques

Le but principal du transfert de déformations est de permettre à des traitements d’utiliser une représentation géométrique à jour, c’est-à-dire prenant en compte les résultats obtenus par une tâche dont la spécialité est de calculer les évolutions de la géométrie. Le principe du transfert de modifications géométriques est défini en deux étapes distinctes. La première est appelée la phase de définition. Elle consiste à calculer la déformation de référence qui correspond, dans notre cas, au déplacement de certains nœuds du maillage utilisé. Elle peut être obtenue de différentes manières, par exemple par modification manuelle en utilisant un outil graphique tel Blender ([Blender]) ou par l’intermédiaire d’un logiciel de simulation physique appelé code de calcul. Dans tous les cas, les maillages avant et après déformation sont appariés, c’est-à-dire qu’ils partagent une même connectivité mais que tout ou partie des nœuds peut avoir été déplacé. La seconde phase réalise le transfert des déformations en s’appuyant sur le résultat de la première étape. L’approche envisagée devra faire intervenir des techniques d’interpolation afin de s’appuyer sur les positions exactes du maillage résultat de l’étape précédente. De plus, le transfert ne devra pas créer de nouveaux nœuds ou en supprimer car des données physiques y sont attachées. Seules leurs positions peuvent être mises à jour, c’est pourquoi une approche par remaillage est à proscrire. Il faut également ajouter que le transfert doit être réalisé en un temps relativement faible en comparaison de celui des codes de calcul ; il doit au moins être d’un ordre de grandeur inférieur.

Couplage de codes de calcul

Pour mettre en place un couplage de codes, il est possible d’adopter différentes stratégies. Tout d’abord, les données peuvent être transmises d’un code à l’autre par échange de fichiers. Pour cela, tous les codes doivent être modifiés pour pouvoir intégrer l’ensemble des formats de fichiers qu’ils sont susceptibles de recevoir. Une telle approche est longue à mettre en œuvre et non pérenne dans le temps. Pour éviter cela, le superviseur ISAS, Integrated Safety Analysis System, a été mis en place par le CEA.

ISAS

En 1995, afin de pallier le problème du dialogue entre les codes de calcul, le CEA a décidé de développer le superviseur ISAS, Integrated Safety Analysis System . Il s’agit d’une bibliothèque de communication programmée en OCAML, dont le noyau est écrit en C, utilisant le langage de commande spécifique CEA Gibiane et s’appuyant sur la librairie PVM (Parallel Virtual Machine) pour gérer les échanges de messages et de données entre les différents codes scientifiques.

Le langage, les formats de fichiers utilisés et les appels possibles sont, très souvent, différents d’un code à l’autre. Ainsi, la mise en place d’un coupleur est une tâche ardue. Son développement nécessite de connaître parfaitement l’ensemble des codes intervenant dans l’étude en cours car ils sont modifiés pour prendre en compte les résultats de ceux avec lesquels ils sont couplés. Les données échangées transitent par le superviseur ISAS, apportant ainsi une aide dans la standardisation de bas-niveau des échanges (types de données échangées). Il faut noter que les codes sont modifiés spécifiquement pour un cas étudié. Remplacer un code par un autre imposera de le connaître parfaitement et de réaliser des ajustements lourds au niveau du coupleur. Plusieurs couplages ont tout de même été réalisés grâce à ISAS ([GNP∗97, GGTF98, PC00, BG02]). En raison de contraintes techniques et internes au CEA, ISAS n’est plus maintenu depuis les années 2000 et n’est plus compilable depuis trois ans. Le superviseur a donc définitivement été abandonné.

Travail de doctorat de T. Bonaccorsi

Durant son doctorat, T. Bonaccorsi ([Bon06]) s’est concentré sur la problématique de la modélisation pluridisciplinaire. Il a mis en place un modèle de données commun à plusieurs disciplines physiques et a proposé des outils adaptés au couplage permettant d’automatiser les simulations numériques. Pour cela, il définit un modèle commun s’appuyant sur des atomes de construction appelés Entités technologiques. Les jeux de données, ces fichiers requis par les codes pour décrire le problème à traiter et la méthode de résolution à utiliser, sont ensuite encapsulés dans une instance informatique correspondant au problème de l’étude. Elle intègre des fonctions de pilotage du code, comme l’initialisation et le lancement de la résolution, et impose une fonction d’accès aux données appelée getResults. Relativement générique, elle est spécialisée dans l’échange de champs de valeurs entre simulations. Pour cela, il est nécessaire de fournir une forme sur laquelle l’interpolation du champ doit être réalisée. L’inconvénient de cette approche est le fait que le travail d’interpolation est réalisé pour chaque code de calcul et que son développement est laissé à la charge des physiciens. De plus, il n’est pas possible de transférer de déformations géométriques entre les codes.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

INTRODUCTION
1 Cadre de l’étude
1.1 Simulations numériques
1.2 Problématique de la thèse
1.2.1 Centralisation des données
1.2.2 Transfert de déformations géométriques
1.3 Synthèse
2 Etat de l’art
2.1 Couplage de codes de calcul
2.1.1 ISAS
2.1.2 Travail de doctorat de T. Bonaccorsi
2.1.3 SALOME
2.1.4 MpCCI
2.1.5 ICoCo
2.1.6 Bilan
2.2 Modèle commun
2.2.1 Modélisation géométrique
2.2.2 Modélisation sémantique
2.2.3 Modélisation déclarative
2.2.4 Modélisation par entités
2.2.5 Bilan
2.3 Formats d’échange
2.3.1 Formats spécifiques
2.3.2 Formats génériques
2.3.3 Bilan
2.4 Caractérisation de déformations
2.4.1 Déformations d’espaces et de sous-espaces
2.4.1.1 Déformations de formes
2.4.1.2 Déformations utilisant des coordonnées différentielles
2.4.1.3 Fonctions de base radiale
2.4.1.4 Déformations physiques
2.4.2 Surfaces déformables
2.4.2.1 Multirésolution
2.4.2.2 Déformations physiques
2.4.3 Méthodes de transfert de déformations
2.4.4 Bilan
2.5 Méthodes de simplification
2.5.1 Fusions de faces
2.5.2 Ré-échantillonnage de surfaces polygonales
2.5.3 Plongement dans une grille régulière (vertex clustering)
2.5.4 Décimation
2.5.5 Contraction d’arêtes/faces
2.5.6 Bilan
2.6 Synthèse
3 Couplage de codes de calcul et modèle commun
3.1 Procédure de couplage de codes
3.2 Architecture du modèle commun
3.2.1 Intégration de données
3.2.2 Définition des caractéristiques
3.2.3 Niveau de finesse
3.2.4 Définition des entités
3.2.4.1 Entité de base
3.2.4.2 Entité abstraite
3.2.4.3 Entité élémentaire
3.2.4.4 Entité complexe
3.3 Modèle commun mis en place
3.4 Synthèse
4 Etudes préliminaires
4.1 Protocole d’évaluation mis en place
4.2 Interpolation linéaire
4.3 Fonctions de base radiale
4.3.1 RBF multiquadrique
4.3.2 RBF Thin-Plate Spline
4.3.3 CS-RBF
4.4 Synthèse
5 Transfert de déformations
CONCLUSION

Lire le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *