Suivez

la liste

La nécessité de réaliser des simulations de phénomènes multiphysiques (transfert de chaleur entre un gaz et un solide, interactions fluide-structure…) de plus en plus complexes rend difficile voire impossible l'implémentation de tous les modèles requis dans un unique code (approche dite monolithique). Il est préférable de réutiliser des codes spécialisés (CFD, mécanique et thermique du solide…) déjà disponibles pour chaque modèle, en les modifiant légèrement pour les coupler. Cette approche est classiquement dite partitionnée.

La méthode la plus courante pour réaliser un tel couplage consiste à échanger de manière régulière un certain nombre de variables entre les différents solveurs. Ces variables sont celles qui interviennent dans les conditions de couplage entre les différents modèles, par exemple un flux de chaleur ou une pression pariétale. L'écart entre deux échanges successifs est appelé pas de temps de couplage. Il est habituellement constant et fixé par l'utilisateur, ce qui est sous-optimal. En effet, il est possible qu'un couplage très fréquent des différents codes ne soit pas toujours nécessaire pour obtenir un résultat précis. En outre, les éventuelles instabilités de couplage qui peuvent apparaître au cours du calcul imposent d'utiliser un pas de temps faible sur toute la durée du calcul. Enfin, les variables de couplage étant constantes durant un pas de temps de couplage, l’ordre de convergence en temps est généralement égal à 1, ce qui limite la précision de la solution numérique couplée.

L’ONERA développe une librairie C++ de couplage, nommée CWIPI, qui permet de mettre en place cette stratégie d’ordre 1 pour des calculs haute-performance (HPC). L’objectif du stage est d’enrichir cette librairie afin de permettre une adaptation dynamique du pas de temps de couplage, d’augmenter l'ordre de convergence en temps des solutions couplées obtenues, et d’en améliorer la stabilité.

Ces dernières années, des recherches ont été initiées sur une nouvelle méthode, nommée multistep interface coupling, qui permet de répondre à ces besoins. Celle-ci se base sur l’utilisation des valeurs des variables de couplages à plusieurs instants précédents, pour construire des approximations d'ordre élevé de leur évolution au cours du temps. L'approche permet d’avoir un ordre de convergence global plus élevé, et a l’avantage de permettre une sélection dynamique du pas de couplage requis afin d’assurer la précision de la solution. Enfin, une procédure itérative d'implicitation permet d’en augmenter largement la stabilité.

Le stage se situe dans la continuité de ces travaux. Son objectif principal sera de développer cette méthode directement dans la librairie CWIPI, afin de permettre à ses utilisateurs de tirer profit des améliorations apportées par la nouvelle approche (stabilité, précision, adaptation du pas de temps). Le stagiaire devra concevoir la structure du code de cette extension, en garantissant sa performance dans un contexte HPC et sa lisibilité. Une attention particulière sera portée à l’implicitation du couplage, qui requiert la résolution de systèmes linéaires en parallèle. Des simulations de démonstration en 3D seront réalisées sur les supercalculateurs de l’ONERA afin de démontrer l’efficacité de la librairie et la qualité des résultats obtenus avec la nouvelle approche.

Ce stage sera encadré par des chercheurs impliqués dans le développement de CWIPI et la réalisation de simulations multiphysiques. Des interactions auront aussi lieu avec le centre de mathématiques appliquées de l’École Polytechnique (CMAP) qui collabore au développement de la nouvelle méthode de couplage. Pour le candidat souhaitant poursuivre en doctorat, il sera possible d’effectuer une thèse à l’ONERA qui approfondira ce sujet, tant au niveau de l’implémentation que de l’étude théorique de la méthode de couplage.