• Aucun résultat trouvé

7.4 FluxIC à pas d’espace variable

7.4.2 Cas test du Patch

7.1 Cas test du patch, étude de convergence en maillage

7.1.1 Introduction

Dans cette partie la convergence en maillage du cas test du patch simulé avec le code compressible FluxIC sera réalisée. Elle nous permettra d’identifier les pressions d’impact que nous pouvons atteindre avec des simulations réalisées sur des maillages très fins. Cette étude permettra également d’étudier d’autres techniques de réduction de temps de simulation dans la suite de cette thèse, et aussi d’étudier le comportement de notre code de calcul sur des architectures de types cluster. Une version parallèle du code FluxIC sera utilisée dans ce travail, elle sera décrite brièvement dans la suite.

Le cas test étudié ici est le benchmark du patch, décrit dans le paragraphe précédent avec l’option 1 configuration GNL liquide/GNl gazeux).

Le code FluxIC a montré son efficacité sur plusieurs cas test [17, 14, 12, 66], et pourra être utilisés pour atteindre des précisions de l’ordre de quelques centimètres. Une telle précision peut être nécessaire pour étudier le phénomène d’impact se produisant au voisinage d’une paroi, car la pression maximale est atteinte dans une poche constituée d’un seul fluide (gaz dans notre cas) et restera pure durant l’impact, ce qui n’est pas assuré lors de l’utilisation de maillages grossiers.

Dans le cadre d’une demande de ressources sur les centres nationaux de calcul (TGCC, Idris ou Cines) via un appel à projets DARI (Demande d’Attribution de Ressources Informatiques), le LRC Meso, laboratoire de recherche issu d’un partenariat entre le CMLA de l’ENS Cachan et le CEA-DAM Ile-de-France, s’est vu attribuer deux millions d’heures de calculs, que nous avons utilisé pour mener cette étude de convergence en maillage et d’autres études publiés dans les actes de conférence d’ISOPE [26].

7.1.2 Code FluxIC : la version parallèle

La simulation des géométrie réalistes (susceptibles de contenir plusieurs millions de mailles), peut nécessiter l’utilisation de moyens de calculs importants et demande une gestion efficace de la mémoire en utilisant une stratégie de parallélisation adaptée.

La parallélisation de la méthode VFFC-NIP est basée sur le principe de communication MPI des tranches de domaine de calcul. Une méthode de directions alternées est utilisée dans l’algorithme actuel pour la gestion des cellules mixtes qui demande d’agglomérer les cellules pures situées de part et d’autre de la cellule mixte. Cette méthode introduit un nouveau type de données qui s’appelle "condensat". (Voir figure 7.1)

Figure 7.1 – Extraction des cellules mixtes formant un condensat et évoluant selon la méthode des directions alternées

Selon cette méthode de directions alternées, sur un pas de temps, le domaine de calcul est décom-posé dans un cas bidimensionnel en tranches horizontales, durant l’étape de calcul, selon la direction horizontale et en tranches verticales lors de l’étape du calcul selon la direction verticale. Cette méthode va être ensuite adaptée au calcul parallèle en utilisant les bibliothèques MPI et OpenMP.

Parallélisme mis en œuvre dans le code Parallélisme MPI

L’algorithme VFFC-NIP n’est pas adapté à la méthode de la décomposition du domaine classique, car un condensat peut appartenir à plusieurs sous domaine. L’algorithme parallèle présenté ici permet de calculer chaque condensat définis dans la section précédente en une seule étape pour tirer profit de la méthode des directions alternées utilisée dans le schéma numérique VFFC-NIP.

Pendant le calcul effectué, selon la direction horizontale, le domaine est découpé en tranches horizon-tales (figure7.2), de taille correspondante à la taille globale du domaine, selon la direction horizontale divissée par le nombre de processus MPI utilisés lors du calcul, chaque tranche est prise en compte par un processus MPI.

Figure 7.2 – Découpage du domaine de calcul selon la direction horizontale

Transposition

Lors du changement de direction entre deux étapes de la méthode des directions alternées, une étape de transposition est nécessaire pour convertir les données calculées dans l’étape précédente, selon la direction horizontale en tranches verticales (et inversement). Ce transfert de données se fait à l’aide des communications MPI collectives.

Le transfert de données se fait en utilisant des communications non bloquantes, pour couvrir les communications et le découpage de nouvelles tranches, afin de limiter le temps de communication de chaque processeur et éviter le blocage des processeurs dus à l’attente de la réception d’une donnée par un processus voisin.

Les blocs communiqués contiennent uniquement les données nécessaires à l’algorithme. Pour chaque cellule, on communique le nombre de matériaux présents, le volume associé à chaque matériau ainsi que le vecteur des quantités conservatives (ρ, ρux, ρuy, ρE). Les autres quantités nécessaires pour le calcul seront déduites directement selon des opérations mathématiques élémentaires et en utilisant les équations d’état associées à chaque matériau.

Figure 7.3 – Étape de transposition

De la même manière, on utilise des tranches verticales pour décomposer le domaine pendant l’étape Y du splitting (figure7.4)

Figure 7.4 – Découpage du domaine de calcul selon la direction verticale

Chaque tranche contient le même nombre de cellules, égal au nombre total de cellules divisé par le nombre de processus, ce qui nous permet de réaliser l’équilibrage de charge entre les processus.

Contrairement aux méthodes de décomposition de domaine classique, cette méthode ne requiert pas d’utiliser des cellules supplémentaires pour enregistrer les données des bords des sous domaines (appelée cellules fantômes) et permet donc d’économiser la taille des données communiquées lors du calcul.

Les trois étapes décrites précédemment sont réalisées deux fois dans le code pour réaliser le deuxième

ordre en temps qui nécessite d’effectuer une prédiction puis une correction (voir Figure 7.5).

Les calculateurs et même les stations de travail actuelles contiennent plusieurs niveaux hiérar-chiques de parallélisme, ils contiennent des processeurs multi-cœurs avec plusieurs niveaux de mémoire (partagée et distribuée).

Lorsqu’on augmente le nombre de processus MPI, le cout des communications MPI augmente jusqu’à devenir l’étape la plus coûteuse. Pour améliorer les performances de la version MPI du code FluxIC, un niveau de parallélisme à mémoire partagée s’appuyant sur l’utilisation du langage OpenMP a été introduit, les tranches sont fixées par les processus MPI et dans chaque tranche on utilise le langage

l’OpenMP pour tirer profit de la mémoire partagée (voir Figures7.2 et7.4).

Figure 7.5 – Algorithme associé à la méthode VFFC-NIP parallèle

7.1.3 Description du supercalculateur Curie

Le supercalculateur Curie est la première machine ouverte aux scientifiques européens dans le cadre de la participation française aux infrastructures de recherche PRACE (Partnership for Advanced

Computing in Europe), cette machine appartient à GENCI (Grand Équipement National de Calcul

Intensif) et est hébergée dans les locaux du CEA au TGCC (Trés Grand Centre de Calcul). Nous avons pu bénéficier par intermédiaire de l’appel à projet national DARI (Demande d’Attribution de Ressources Informatiques), deux millions d’heures de calcul pour effectuer cette étude et d’autres études réalisées par notre équipe de recherche.

La machine Curie propose trois différents types de ressources de calcul basées sur une architecture x86-64, s’adressant à un large panel de challenges scientifiques, et offrant une puissance de calcul crête globale de 2 Pflops.

Les trois types d’architectures disponibles sur Curie sont :

— Curie nœuds fins, constitué de 5040 nœuds de ce type, chacun composé de : 2 processeurs octo-cœurs Intel® Sandy Bridge EP (E5-2680) 2.7 GHz 64 Go, 1 disque local SSD.

— Curie noeuds larges : constituée de 360 nœuds S6010 Bullx,chacun composé de : 4 processeurs octo-cœurs Intel® Xeon®, 128 Go, 1 disque local de 2To. 105 téraflops de puissance crête.

Ces nœuds ont pour spécificité d’avoir des sockets avec plus de processeurs (4 processeurs par socket au lieu de 2 par socket pour les nœuds fins) et une mémoire partagée plus importante que les nœuds fins. Ces nœuds sont donc dédiés au passage de codes parallèles hybride (MPI/OpenMP), codes nécessitant une grande capacité mémoire et / ou des capacités de multi-threading. Ils sont aussi adaptés à une utilisation pour les pré et post-traitements massifs des données.

— Curie nœuds hybrides, constituée de 144 nœuds hybrides, chacun composé de : 2 Intel® Westmere® 2.66 GHz/ 2 Nvidia M2090 T20A

192 téraflops crête.

Les résultats de cette étude, ont été obtenus à l’aide de la version robuste MPI du code. Le nombre de processus MPI est de l’ordre de quelques centaines de processus (entre 100 processus et 400 pour le cas le plus finement maillé), en utilisant les nœuds fins de Curie.

7.1.4 Convergence en maillage

Dans cette partie nous allons nous intéresser à l’étude de convergence en maillage, en effet nous utilisons des maillages allant d’un maillage régulier (600×900) constitué de cellules carrées de 1.6 cm de côté, jusqu’à un maillage régulier (3200×4800) constitué de cellules carrées de 3 mm, avec des simulations réalisées sur plusieurs centaines de processeurs.

On se base dans cette partie sur la théorie des chargements élémentaires introduite dans l’article de Lafeber et al [60], et qui permet de décomposer le phénomène d’impact en 3 parties. Cette théorie est appelée ELPs Elementary Loading Process, ils sont définis comme suit :

— ELP1 : associé à l’impact du liquide sur la paroi et l’apparition d’un pic de pression, qui est d’ailleurs très difficile à capturer lors des expériences, cet EPL est appelé Direct Impact.

— ELP2 : associé à un jet se déplaçant le long de la paroi d’impact, caractérisé par le changement de direction du fluide après l’impact ;

— ELP3 : associé à la capture d’une poche de gaz par le liquide, un pic de pression est observé dans cette zone avec un comportement oscillant par la suite.

Dans la suite de ce chapitre on s’intéressera à l’évolution temporelle de la pression sur le mur d’impact (direction horizontale au niveau de la paroi d’impact, l’axe x avec les notations utilisées), ainsi que l’évolution temporelle de la pression selon la direction verticale au niveau de l’axe de symétrie du cas test patch (axe y avec les notations utilisées). Cela permet de tracer des cartes de pressions suivant les deux directions de l’écoulement et dégager des tendances générales sur le comportement de la pression, ainsi que le type d’ELPs simulés. Nous représentons aussi les courbes de pression dans les zones d’intérêt, telle que le centre de la poche de gaz (un pic de pression et des oscillations sont observées dans cette zone) et la pression au voisinage du point de l’impact du liquide ELP1. Pour finir on réalise des captures d’écran à l’instant où le pic de pression est atteint afin de visualiser les profils de fractions volumiques ainsi que le champs de pression dans le domaine de calcul.

Maillage 600×900

Surfaces de pression

Les figures 7.6 et 7.7 représentent l’évolution temporelle des pressions au cours du temps selon

l’axe de symétrie et à la paroi d’impact. On constate que la pression est uniforme tout au long de la simulation jusqu’à un instant proche de 0.6 s, cet instant correspond à la création de la poche de gaz et donc l’augmentation de la pression dans celle-ci, on observe donc un comportement avec un pic de type ELP2+ELP3. À partir de ce moment, le gaz est bloqué et il y a apparition d’une poche de gaz dont on constate le comportement oscillant aux alentours de t = 0.8 s.

Figure 7.6 – Maillage 600×900 : Évolution de la pression au cours du temps selon l’axe de symétrie du bloc

Figure 7.7 – Maillage 600×900 : Évolution de la pression au cours du temps à la paroi d’impact

Figure 7.8 – Maillage 600×900 : profils de fraction volumique et de pression à l’instant du pic de pression

Courbes de pression

Figure 7.9 – 600×900 : Evolution de la pression au centre de la paroi d’impact

La valeur du pic de pression est de l’ordre de 5.58 bar à un instant t = 0.6594 s , le calcul a été réalisé avec 100 processus MPI, le temps de calcul est de 11h51 min, il inclut le temps d’écriture des résultats en parallèle (12GB de données dans ce cas test). Ces données seront ensuite fusionnées à la fin du calcul avec un outil de post-traitement parallèle développé lors de cette thèse pour obtenir un fichier par pas de temps d’écriture.

Maillage 1200×1800

Nous allons multiplier le nombre de maille par 4. Cette fois-ci le calcul sera réalisé à l’aide d’un maillage régulier constitué de cellules carrées (1200×1800) de 0.8 cm de côté,

Surfaces de pression

Figure 7.10 – Maillage 1200×1800 : Évolution de la pression au cours du temps selon l’axe de symétrie du bloc.

Figure 7.11 – Maillage 1200×1800 : Évolution de la pression au cours du temps à la paroi d’impact. Les surfaces de pressions présentent globalement les mêmes caractéristiques que pour le cas avec un maillage 600 × 900. On observe néanmoins une apparition d’un pic de pression au voisinage du coin du patch (x = 5 m) qui est identifié comme un ELP3, et qui est dû à l’impact du liquide avec la paroi d’impact. Nous observons aussi aux alentours de ce point des variations rapides du signal de pression. Ces variations sont caractéristiques de l’équation d’état Stiffened gas utilisée pour modéliser le liquide, et qui proviennent du changement brutal de densité dans les mailles mixtes entre le liquide et le gaz. Captures d’écran

Figure 7.12 – maillage 1200×1800 : profils de fraction volumique et de pression à l’instant du pic de pression

Courbes de pression

Figure 7.13 – Maillage 1200×1800 : évolution de la pression au centre de la paroi d’impact La valeur du pic de pression est de l’ordre de 5.56 bar à un instant t = 0.6592 s, le calcul a été réalisé avec 150 processus MPI, le temps de calcul est de 23h55 min, il inclut le temps d’écriture des résultats en parallèle.

Maillage 2400×3600

Le calcul dans cette section sera réalisé à l’aide d’un maillage régulier constitué de cellules carrées (maillage 2400×3600) de 0.4 cm de côté,

Figure 7.14 – Maillage 2400×3600 : évolution de la pression au cours du temps selon l’axe de symétrie du bloc.

Figure 7.15 – Maillage 2400×3600 : évolution de la pression au cours du temps à la paroi d’impact. La surface de pression à la paroi d’impact montre l’apparition cette fois-ci un impact de type ELP1 + ELP2 dans le coin du patch situé en x = 3.8 m. On observe aussi un jet rentrant vers l’intérieur du bloc caractérisé par un ELP2, ce qui implique la création de deux poches de gaz, séparé par le point d’impact.

Figure 7.16 – Maillage 2400×3600 : profils de fraction volumique et de pression à l’instant de la fermeture de la poche de gaz

À la différence des deux maillages 600 × 900 et 1200 × 1800, le maximum de la pression avec le maillage 2400 × 3600 est observé au point de contact du liquide à la paroi (situé au point x = 3.82 m), comme discuté dans le paragraphe précédent. Ce maximum correspond à un comportement ELP1 et engendre par la suite un comportement de type ELP2.

Courbes de pression

Nous traçons maintenant les évolutions temporelles de la pression en des points caractéristiques présentant un intérêt particulier.

Figure 7.17 – maillage 2400×3600 : comparaison entre la pression au centre de la paroi d’impact et au point d’impact

On constate sur la figure7.17que le pic de pression cette fois-ci est au point 3.8241 m et se produit au même temps que le pic de pression au centre de la poche de gaz.

Le fait d’impacter sur un point situé à 3.8 m et non pas 5 m comme dans les cas précédents, crée une double poche de gaz. Une première poche de gaz entre le centre de la paroi et le point d’impact, ce qui justifie que la pression au centre de la paroi reste élevée lors de la deuxième oscillation autour de l’instant (t = 0.8 s). La deuxième poche de gaz se comporte comme la poche de gaz dans les deux cas moins maillés précédents : une pression d’impact élevée et une pression moins élevée lors de la deuxième oscillation et qui est de l’ordre de la moitié de la valeur de la pression d’impact.

de gaz est de 6.65 bar (ELP3). Les deux pics se produisent au même instant t = 0.6639 s. Le calcul a été réalisé avec 300 processus MPI, le temps de calcul est de 6j11h.

Maillage 2800×4200

Le calcul dans cette section sera réalisé à l’aide d’un maillage régulier constitué de cellules carrées (2800 × 4200) de 0.35 cm de côté

Surfaces de pression

Figure 7.18 – Maillage 2800×4200 : évolution de la pression au cours du temps selon l’axe de symétrie du bloc

Captures d’écran

Figure 7.20 – Maillage 2800×4200 : profils de fraction volumique et de pression à l’instant du pic de pression

Les tendances observées avec le maillage 2400×3600 se confirment, avec la présence des trois ELPs. On note également l’apparition très localisées de pressions négatives (erreurs numériques) provenant de la loi d’état du liquide.

Courbes de pression

Figure 7.21 – Maillage 2800×4200 : comparaison entre la pression au centre de la paroi d’impact et au point d’impact.

On constate sur la figure7.21les mêmes comportements que le cas test avec un maillage 2400×3600,

le pic de pression est de 8.63 bar. Il est situé au point x = 3.82 m. La pression maximale dans la poche de gaz de 7.54 bar, ces deux pics produisent au même instant t = 0.6619 s.

Nous observons aussi l’effet de la double poche de gaz, ce qui justifie la valeur élevée du deuxième pic de pression au centre de la paroi d’impact.

Ce calcul a été réalisé avec 400 processus MPI avec un temps de calcul et écriture des résultats de 13 jours et 4 heures.

Maillage 3200×4800

Le calcul dans cette section sera réalisé à l’aide d’un maillage régulier constitué de cellules carrées (2800 × 4200) de 0.31 cm de côté

Surfaces de pression

Figure 7.22 – Maillage 3200×4800 : évolution de la pression au cours du temps selon l’axe de symétrie du bloc.

Figure 7.23 – Maillage 3200×4800 : évolution de la pression au cours du temps à la paroi d’impact. Nous constatons l’apparition des 3 ELPs avec une pression à l’impact qui semble plus importante que les simulations précédentes.

Captures d’écran

Figure 7.24 – maillage 3200×4800 : profils de fraction volumique et de pression à l’instant du pic de pression.

Courbes de pression

Figure 7.25 – maillage 3200×4800 : comparaison entre la pression au centre de la paroi d’impact et au point d’impact

On constate sur la figure7.25les mêmes comportements que le cas test avec un maillage 2400×3600,

par contre le pic de pression continue à augmenter il est de l’ordre de 12 bar est situé points x = 4.12m, avec une pression maximale dans la poche de gaz de 8 bar. Les deux pics se produisent tous les deux à un instant t = 0.6619s. Nous observons aussi l’effet de la double poche de gaz, justifiant la valeur élevée du deuxième pic de pression au centre de la paroi d’impact.

Ce calcul a été réalisé avec 400 processus MPI avec un temps de calcul et écriture des résultats de 14 jours 4 heures.

Comparaison des résultats Courbes de pression

Figure 7.26 – Comparaison de l’évolution de la pression au centre de la paroi d’impact, premier pic de pression.

On constate que la pression au centre de la paroi d’impact varie en fonction du maillage et donc en fonction de la poche gaz. En effet les deux premiers maillages ne sont pas capables de simuler l’ELP1. De plus, les pressions de la compression de la poche de gaz sont proches et se différencient au niveau du second pic de pression qui est moins important et se produit plus tôt dans le cas de la simulation avec le maillage 1200 × 1800. Tous les autres maillages, arrivent à simuler les trois ELPs et donc l’impact du liquide), engendrant une double poche de gaz. Cela justifie la valeur importante de la deuxième oscillation de la poche de gaz. À noter que nous avons ajouté les résultats d’un cas test plus maillé (3600 × 5400) qui n’a pus aller jusqu’à son terme du fait des pressions négatives dans le liquide (problème de la loi d’état). l’instant final de ce cas test se situe situe juste après l’impact.

Documents relatifs