Commit b1dd60d3 authored by Calcul Bot's avatar Calcul Bot Committed by Roland Denis
Browse files

New job offer job_d222c40e6b96ac121419c33ba0363625

parent 4ef501b2
Title: Développement d'une nouvelle méthode parallèle pour la gestion de la périodicité dans les simulations CFD
Date: 2020-10-26 09:57
Slug: job_d222c40e6b96ac121419c33ba0363625
Category: job
Authors: Anida Khizar
Email: anida.khizar@cea.fr
Job_Type: Stage
Tags: stage
Template: job_offer
Job_Location: CEA Saclay
Job_Duration: 6 mois
Job_Website:
Job_Employer: CEA Saclay
Expiration_Date: 2021-01-18
Attachment: job_d222c40e6b96ac121419c33ba0363625_attachment.pdf
**Contexte**
Pour évaluer la sûreté des installations nucléaires, le CEA développe, valide et utilise des outils de simulation en thermohydraulique. Il s’intéresse en particulier à la modélisation des écoulements diphasiques eau-vapeur par différentes approches de la plus fine à la plus intégrale. La simulation fine (DNS, Simulation Numérique Directe diphasique) joue un rôle particulier en produisant des données de référence, ensuite comparées aux modèles à plus grande échelle. Cette démarche est appliquée à des écoulements de plus en plus complexes, dans le but, à terme, de mieux prédire le déclanchement de la crise d’ébullition.
Pour produire ces données, le service a développé une méthode de simulation fine diphasique (Front-Tracking). Cette méthode est implémentée dans notre code Open-Source de thermo-hydraulique: TRUST/TrioCFD (code orienté objet, C++) [1]. Elle permet de réaliser des simulations massivement parallèles pour décrire finement les interfaces et les structures turbulentes sans recourir à des modèles. La méthode Front-Tracking offre une grande précision des résultats mais elle est associé au suivi d’un maillage surfacique mobile et déformable (le Front), immergé dans une grille volumique fixe (maillage dit Eulerien). La qualité de ce maillage est importante. Les interactions entre les deux grilles sont complexes, en particulier au niveau de la gestion des conditions aux limites.
Pour satisfaire aux contraintes HPC (Calcul Haute Performance), une refonte importante du code a été entreprise il y a 10 ans, afin d’évaluer le gain de performance lié à l’utilisation d’une discrétisation structurée couplée à la création d’un solveur multi-grille et à l’utilisation intensif de la vectorisation. Une application très spécifique (nommée TrioIJK), dédiée aux écoulements en canal plan est ainsi née, puis a évoluée pour prendre en compte les écoulements diphasiques. Elle est utilisée intensivement pour des simulations massivement parallèles.
D'un point de vue informatique, le code est intégralement écrit en C++ et se base sur un parallélisme de type SPMD (Single Process Multiple Data) mis en œuvre grâce au standard MPI. Les domaines de calcul (Eulérien et le Front) sont découpés en sous-parties traitées chacune par un processeur. L'échange d'information entre les processeurs se fait par l'adjonction aux bords de chaque sous-domaine d'éléments fantômes (ghost cells) servant de vecteur d'échange avec les processeurs voisins.
D'un point de vue physique, et afin de simuler un domaine d'étude d'étendue infinie dans certaines directions, des conditions limites périodiques sont appliquées sur certains bords du domaine. Ainsi dans ces directions les grandeurs physiques se raccordent continûment d'un bord à l'autre du domaine. Il est alors difficile de maintenir la connectivité nécessaire sur le Front pour évaluer la courbure par exemple. En pratique, l'implémentation informatique sous-jacente de la périodicité fait appel à un domaine étendu dans lequel le front d'interface est dupliqué artificiellement de part et d'autres des bords du domaine. Ce mécanisme lourd et complexe (notamment en configuration parallèle où les découpages des deux domaines est différent) rend le code peu flexible et alourdit inutilement son empreinte mémoire.
Figure 1 Direct Numerical Simulation of a turbulent bubbly flow.
**Objectifs**
L'objectif du stage est de passer en revue la méthode actuelle de traitement des conditions limites de périodicité, et de remplacer ce mécanisme par l'utilisation de cellules fantômes de part et d'autre des bords périodiques. Un challenge particulier concerne la bonne marche de ce mécanisme dans une configuration séquentielle.
Ce travail s'inscrit dans une démarche plus globale visant à appliquer un traitement similaire aux conditions limites périodiques dans TRUST/TrioCFD lui-même.
Environnement de travail
Le stage s’effectuera au sein du Laboratoire de Génie Logiciel (ISAS/DES/DM2S/STMF/LGLS) sur le site du CEA à Saclay.
**Compétences requises ou souhaitées **
- maîtrise de la programmation objet et du C++
- solides notions de parallélisme à mémoire distribuée (MPI)
- des connaissances de base en mécanique des fluides sont souhaitables
**Profil recherché**
Formation Master 2 ou équivalent en informatique, maths applis, ou génie logiciel.
...@@ -47,6 +47,7 @@ def get_indico_event_as_schedule(url, event): ...@@ -47,6 +47,7 @@ def get_indico_event_as_schedule(url, event):
import json import json
try: try:
print(url + '/export/timetable/' + str(event) + ".json")
response = urlopen(url + '/export/timetable/' + str(event) + ".json").read() response = urlopen(url + '/export/timetable/' + str(event) + ".json").read()
except: except:
print("WARNING: indico content could not be fetched, no programme will be built. Offline ?") print("WARNING: indico content could not be fetched, no programme will be built. Offline ?")
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment