Laboratoire de modélisation des accidents graves (LMAG) dont la mission est de développer des codes de calculs.
Le sujet proposé porte sur les couplages multi-physiques, ou encore, l'interopérabilité d'un code de calcul en vue de son intégration dans une plateforme.
Contexte : Jusqu’à une époque récente, nous nous sommes concentrés sur la construction d’Outils de Calculs Scientifiques qui répondent à une problématique donnée (en l’occurrence la simulation des accidents graves pour un réacteur de 4ème génération) ;
Par exemple, un code de thermohydraulique (CFD) pour calculer la dégradation du cœur (SIMMER), ou un code de neutronique pour calculer la réactivité d’un cœur (PARIS), ou autres.
Les couplages étaient alors résolus avec des interfaces spécifiques (drivers) qui montrent des limites en matière de performance et de robustesse.
Le CEA a récemment développé des techniques et des standards d’encapsulation de codes de calculs dans le but de favoriser leur intégration au sein d’une plateforme multiphysique (cf. en particulier SALOME, la plateforme de référence
thermohydraulique et neutronique CEA-EDF https://www.salome-platform.org).
Ces techniques d’intégration reposent sur les principes suivants :
- Le code de calcul doit être doté d’une API Python qui offre les services décrits par le standard de couplage ICoCo (https://pypi.org/project/icoco/).
Cette interface comprend deux types de service :
- qui assurent le pilotage de la boucle en temps (lecture du jeu de données, initialisation du calcul, exécution d’un pas temps, etc.)
- qui assurent des échanges normalisés entre les codes, en l’occurrence des champs MEDCoupling
(https://docs.salomeplatform.org/latest/dev/MEDCoupling/tutorial/index.html)
Par ailleurs, le CEA a développé une librairie Python qui offre une structure objet adaptée à l’écriture d’applications de couplage entre des codes équipés de l’interface ICoCo. Il s’agit de la librairie Objet C3PO décrite ici :
https://www.sciencedirect.com/science/article/pii/S0306454924001324.
Au LMAG, nous appliquons cette technologie pour notre plateforme SEASON. Cette plateforme porte principalement le couplage entre SIMMER et PARIS et elle sera le cadre de réalisation du sujet proposé :
Travail prévu : L’API Python de SIMMER a déjà été équipé des méthodes ICoCo.
Cette implémentation n’est pas tout à fait complète car les méthodes d’échange ne sont fonctionnelles que pour les données situées sur les frontières du calcul et ne permettent pas des échanges sur les parties internes au domaine.
Votre mission sera d' étendre ces échanges (développement Fortran). Une fois cette extension réalisée, vous développerez des cas tests de couplage sous la forme de scripts Python qui exploitent la structure C3PO.
On commencera avec des tests homogènes (couplages SIMMERSIMMER) et selon la progression, on s’intéressera à des couplages hétérogènes (SIMMERCATHARE, ce second code étant lui aussi équipé de son interface ICoCo).
Dans la limite de durée de stage, on s’intéressera à des questions particulières comme la mise en œuvre de schémas en temps particuliers, la gestion des hétérogénéités entre les codes couplés, et autres questions.
Vous préparez un Bac +5 (Master 2 ou équivalents) en calcul scientifique et génie logiciel et/ou en simulation de processus physiques.
Doté d'un esprit d'initiative, vous proposez des solutions et des actions de façon autonome. Vous savez vous adapter aux demandes formulées et y répondre dans un souci de satisfaction client.
Bon communicant, vous appréciez le travail d'équipe et savez dialoguer avec différents interlocuteurs.
En intégrant nos équipes, vous mettrez vos compétences et votre enthousiasme au service de projets sociétaux majeurs.
Conformément aux engagements pris par le CEA en faveur de l’intégration des personnes en situation d’handicap, cet emploi est ouvert à toutes et à tous. Le CEA propose des aménagements et/ou des possibilités d'organisation.