Franck Ledoux CEA DAM le-de-France, Bruyres-le-Chtel franck.ledoux@cea.fr Prsentation adapte du tutorial de Steve Owen, Sandia National Laboratories, Albuquerque, NM, USA 1 Introduction ! La simulation numrique consiste reproduire informatiquement un phnomne physique, chimique, biologique ou autre, au moyen de " quations physiques dans un monde continu " Schmas numriques dans un monde discret " Algorithmes informatiques " Maillages une partie du monde discret ! Procd trs gourmand en temps de calcul et en espace mmoire " Parfait candidat pour le HPC 2 Franck Ledoux Prparation de la simulation numrique 3 2 1. Cration du modle gomtrique 2. Maillage 3. Dfinition des conditions physiques (conditions limites, densits, matriaux,) 4. Simulation numrique (CALCUL, potentiellement plusieurs heures) 5. Visualisation 2 kN Processus simplifie Dassault Aviation-CEA/DIF : Falcon 7x Ecoulements 3D autour dun avion complet - 800 processeurs de TERA 10 pendant 250 heures Dmonstration de compatibilit des outils de conception avec les architectures informatiques ncessaires dans le futur Amlioration du processus de conception actuel : matrise des incertitudes induites par les maillages de calcul de trane Application possible des problmes plus complexes Maillage de 115 millions d'lments, calcul de 7 valeurs physiques (pression, vitesses, temprature, nergie cintique, ...) en chaque maille pour chaque pas de temps (140 millions d'quation rsoudre pour l'ensemble du calcul) La prdiction du sillage est un effet direct du raffinement en maillage ! amlioration de la prdiction de la traine Soufflerie ONERA S2MA Maillage industriel : 6.10 6 points & 30.10 6 lments Essai Calcul 4 Franck Ledoux Autres exemples 5 Franck Ledoux ! Deux exemples de mcaniques des solides Plan trs simple ! Prsentation des algorithmes traditionnels en maillage ! Maillage triangulaire et ttradrique ! Maillage quadrangulaire et hexadrique On nabordera pas ! Les maillages mixtes ! Les algorithmes de recherche ! Les dtails qui vont quun algorithme est optimis ! Les structures de donnes informatiques ncessaires 6 Franck Ledoux Partie 1 Maillage triangulaire et ttradrique 7 http://www.simulog.fr/mesh/gener2.htm http://cubit.sandia.gov/ Maillage triangulaire et ttradrique 3 grandes familles dalgorithmes Quadtree / Octree Avance de front Delaunay 8 Franck Ledoux Mthodes QuadTree (2D) Octree (3D) ! Dfinition dune bote englobante initiale (racine du quadtree) ! Dcoupage rcursif de chaque quadrangle en 4 feuilles dans les zones o la gomtrie est mal capture ! Rcupration des intersection entre les artes des feuilles et la gomtrie ! Maillage de chaque feuille en utilisant les sommets (coins) de la feuille et les intersections avec la gomtrie ! Suppression des triangles extrieurs la gomtrie [Yerry and Shephard, 84] [Shepherd and Georges, 91] 9 Franck Ledoux Mthodes QuadTree (2D) Octree (3D) QMG, Cornell University 10 Franck Ledoux Mthodes QuadTree (2D) Octree (3D) QMG, Cornell University Franck Ledoux 11 Problmes de ces mthodes - Rapport de tailles entre lments voisins - Angles des lments # Maillages assez laids Algorithmes par avance de front A B C 12 Franck Ledoux ! Front initial maillage du bord (nuds + artes) ! Pour chaque arte [A,B] du front, on cherche la position idal du point C ABC triangle quilatral Avance de front 2D Algorithme par avance de front A B C r D 13 Franck Ledoux ! On dtermine si des nuds du front courant ne seraient pas de candidats pour tre le point C du triangle " Utilisation dun paramtre distance r " On cherche un point du front existant dans le cercle de centre C idal (i.e. ABC quilatral) Si oui, on prend ce point Algorithme par avance de front D 14 Franck Ledoux ! Mise jour permanente du front (qui est compose dune liste dartes) ! On continue tant quil reste des artes dans le front Algorithme par avance de front 15 Franck Ledoux ! Mise jour permanente du front (qui est compose dune liste dartes) ! On continue tant quil reste des artes dans le front Algorithme par avance de front 16 Franck Ledoux ! Mise jour permanente du front (qui est compose dune liste dartes) ! On continue tant quil reste des artes dans le front ! Attention, plusieurs fronts peuvent cohabiter Algorithme par avance de front 17 Franck Ledoux ! Mise jour permanente du front (qui est compose dune liste dartes) ! On continue tant quil reste des artes dans le front Algorithme par avance de front A B C [Lohner,88;96] [Lo,91] r 18 Franck Ledoux ! Si plusieurs choix pour le point C ? ! On prend celui qui nous fournit le triangle le plus proche dun triangle quilatral ! On supprime toutes les possibilits qui intersecteraient un front existant ! On rejette les triangles inverses ( I AB x AC I > 0) Avantages de ces mthodes - Permet de contrler laspect des triangles au bord Algorithme de type Delaunay cercle circonscrit 19 Franck Ledoux ! Algorithmes bass sur la proprit de cercle vide Pour tout triangle ABC, aucun sommet diffrent de A, B et C appartient au cercle circonscrit ABC Algorithme de type Delaunay 20 Franck Ledoux ! Algorithmes bass sur la proprit de cercle vide Pour tout triangle ABC, aucun sommet diffrent de A, B et C appartient au cercle circonscrit ABC ! Assure des mailles de bonne qualit ! Extensible en 3D Pour tout ttradre ABCD, aucun sommet diffrent de A, B, C et D appartient la sphre circonscrite ABCD 21 Franck Ledoux Algorithme de type Delaunay Triangulation de Delaunay o Ensembles de triangles recouvrant lespaces et dfini partir dun ensemlbe de sommets o Obit la proprit du cercle vide 22 Franck Ledoux Algorithme de type Delaunay Ici, on na pas un triangulation de Delaunay Cest le type de maillage inadapt la simulation numrique, les lments sont trop plats X 23 Franck Ledoux Algorithme de type Delaunay Comment ajouter un sommet dans une triangulation de Delaunay ? Algorithme de Lawson (1977) 1. On dtermine le triangle contenant X 2. On subdivise ce triangle en 3 3. On teste la proprit de sphre vide sur ces nouveaux triangles et les triangles adjacents 4. On effectue un swap darte si ncessaire 5. Les tapes 3 et 4 sont rptes tant quun swap est effectu X 24 Franck Ledoux Algorithme de type Delaunay Comment ajouter un sommet dans une triangulation de Delaunay ? Algorithme de Lawson (1977) 1. On dtermine le triangle contenant X 2. On subdivise ce triangle en 3 3. On teste la proprit de sphre vide sur ces nouveaux triangles et les triangles adjacents 4. On effectue un swap darte si ncessaire 5. Les tapes 3 et 4 sont rptes tant quun swap est effectu X r c d 25 Franck Ledoux Algorithme de type Delaunay Comment ajouter un sommet dans une triangulation de Delaunay ? Algorithme de Bowyer-Watson (1981) 1. On dtermine le triangle contenant X 2. On cherche tous les triangles dont le cercle circonscrit contient X 3. On supprime ces triangles formant ainsi une cavit 4. On cre de nouveaux triangles partir des artes bordant cette cavit et du sommet X X 26 Franck Ledoux Algorithme de type Delaunay Comment ajouter un sommet dans une triangulation de Delaunay ? Algorithme de Bowyer-Watson (1981) 1. On dtermine le triangle contenant X 2. On cherche tous les triangles dont le cercle circonscrit contient X 3. On supprime ces triangles formant ainsi une cavit 4. On cre de nouveaux triangles partir des artes bordant cette cavit et du sommet X 27 Franck Ledoux Algorithme de type Delaunay ! Utilisation du principe de la triangulation de Delaunay pour raliser un maillage ! On commence avec une triangulation dune bote englobante largie 28 Franck Ledoux Algorithme de type Delaunay ! On insre les nuds au bord du domaine mailler avec un algorithme dinsertion tel que celui de Lawson ou de Bowyer-Watson 29 Franck Ledoux Algorithme de type Delaunay ! On insre les nuds au bord du domaine mailler avec un algorithme dinsertion tel que celui de Lawson ou de Bowyer-Watson Algorithme de type Delaunay 30 Franck Ledoux ! On insre les nuds au bord du domaine mailler avec un algorithme dinsertion tel que celui de Lawson ou de Bowyer-Watson Algorithme de type Delaunay 31 Franck Ledoux ! On insre les nuds au bord du domaine mailler avec un algorithme dinsertion tel que celui de Lawson ou de Bowyer-Watson Algorithme de type Delaunay 32 Franck Ledoux ! On insre les nuds au bord du domaine mailler avec un algorithme dinsertion tel que celui de Lawson ou de Bowyer-Watson Algorithme de type Delaunay 33 Franck Ledoux ! On rcupre le bord du domaine si on ne la pas ! On supprime les triangles extrieurs ! On insert des nuds internes selon les paramtres du maillage souhait (densit de mailles dans un zone par exemple) h Algorithme de type Delaunay Franck Ledoux ! Insertion de nuds internes partir de la donne dune grille " La grille peut tre quelconques (rectangles de tailles diffrentes, triangles, quadtree) " On ignore les nuds externes Algorithme de type Delaunay 35 Franck Ledoux ! Insertion de nuds internes partir de la donne dune grille " La grille peut tre quelconques (rectangles de tailles diffrentes, triangles, quadtree) " On ignore les nuds externes Algorithme de type Delaunay 36 Franck Ledoux ! Insertion de nuds internes comme centrodes " Les nouveaux nuds sont dfinis comme centrodes des triangles existants " On continue tant que les artes nont pas une longueur indique en paramtre l Algorithme de type Delaunay 37 Franck Ledoux ! Insertion de nuds internes comme centrodes " Les nouveaux nuds sont dfinis comme centrodes des triangles existants " On continue tant que les artes nont pas une longueur indique en paramtre (Chew,Ruppert,Shewchuk) Algorithme de type Delaunay 38 Franck Ledoux ! Insertion de nuds internes laide de cercles circonscrits " Les nouveaux nuds sont les centres des cercles circonscrits aux triangles existants " Lordre dinsertion se base sur le plus petit angle au coin des triangles " Objectif (environ 30) Algorithme de type Delaunay 39 Franck Ledoux ! Insertion de nuds internes laide de cercles circonscrits " Les nouveaux nuds sont les centres des cercles circonscrits aux triangles existants " Lordre dinsertion se base sur le plus petit angle au coin des triangles " Objectif (environ 30) (Chew,Ruppert,Shewchuk) A B C Algorithme de type Delaunay 40 Franck Ledoux ! Insertion de nuds internes par avance de front " Les nouveaux nuds sont insrs la position idale partir des artes du front " La structure du front doit tre maintenue en permanence [Marcum, 95] Algorithme de type Delaunay 41 Franck Ledoux ! Insertion de nuds internes par avance de front " Les nouveaux nuds sont insrs la position idale partir des artes du front " La structure du front doit tre maintenue en permanence [Marcum, 95] Algorithme de type Delaunay 42 Franck Ledoux ! On rcupre le bord du domaine si on ne la pas " Il faut insrer des nuds et des artes l o les artes, introduites lors de la triangulation initiale, coupent le bord du domaine gomtrique " Ou faire du swapping dartes pour rcuprer les artes du bord gomtrique Algorithme de type Delaunay 43 Franck Ledoux ! On rcupre le bord du domaine si on ne la pas " Il faut insrer des nuds et des artes l o les artes, introduites lors de la triangulation initiale, coupent le bord du domaine gomtrique " Ou faire du swapping dartes pour rcuprer les artes du bord gomtrique Algorithme de type Delaunay 44 Franck Ledoux ! On rcupre le bord du domaine si on ne la pas " Il faut insrer des nuds et des artes l o les artes, introduites lors de la triangulation initiale, coupent le bord du domaine gomtrique " Ou faire du swapping dartes pour rcuprer les artes du bord gomtrique Algorithme de type Delaunay 45 Franck Ledoux ! On rcupre le bord du domaine si on ne la pas " Il faut insrer des nuds et des artes l o les artes, introduites lors de la triangulation initiale, coupent le bord du domaine gomtrique " Ou faire du swapping dartes pour rcuprer les artes du bord gomtrique Algorithme de type Delaunay 46 Franck Ledoux ! On rcupre le bord du domaine si on ne la pas " Il faut insrer des nuds et des artes l o les artes, introduites lors de la triangulation initiale, coupent le bord du domaine gomtrique " Ou faire du swapping dartes pour rcuprer les artes du bord gomtrique Algorithme de type Delaunay 47 Franck Ledoux ! On rcupre le bord du domaine si on ne la pas " Il faut insrer des nuds et des artes l o les artes, introduites lors de la triangulation initiale, coupent le bord du domaine gomtrique " Ou faire du swapping dartes pour rcuprer les artes du bord gomtrique [George,91] [Owen,99] Algorithme de type Delaunay 48 Franck Ledoux ! On rcupre le bord du domaine si on ne la pas " Il faut insrer des nuds et des artes l o les artes, introduites lors de la triangulation initiale, coupent le bord du domaine gomtrique " Ou faire du swapping dartes pour rcuprer les artes du bord gomtrique D C V S
Exemple de swapping local o Rcupration de larte CD le long du vecteur V s
Algorithme de type Delaunay 49 Franck Ledoux D C E 1
E 2
E 3
E 4
E 5
E 6
E 7
E 8
Exemple de swapping local o on liste lensemble des artes intersectes par V s
Algorithme de type Delaunay 50 Franck Ledoux D C E 1
E 2
E 3
E 4
E 5
E 6
E 7
E 8
Exemple de swapping local o On fait du swapping dartes pour les couples de triangles adjacent aux artes de la liste Algorithme de type Delaunay 51 Franck Ledoux D C E 2
E 3
E 4
E 5
E 6
E 7
E 8
Exemple de swapping local o On teste si le swapping ninduit pas de recouvrement (croisement) entre triangles o Si oui, on reporte le swapping plus tard Algorithme de type Delaunay 52 Franck Ledoux D C E 3
E 4
E 5
E 6
E 7
E 8
Algorithme de type Delaunay 53 Franck Ledoux Exemple de swapping local o On teste si le swapping ninduit pas de recouvrement (croisement) entre triangles o Si oui, on reporte le swapping plus tard D C E 6
Exemple de swapping local o Au final, larte CD est rcupre mais la qualit des triangles peut tre mauvaise o Le critre de Delaunay nest plus respect Algorithme de type Delaunay 54 Franck Ledoux Bilan sur les mthodes de triangles/ttradres ! Pas de problme de connectivit / topologie dans les maillages triangulaires / ttradriques " Triangulation de Delaunay tant donn un ensemble de points, on peut les connecter entre eux pour former des triangles (2D), ttradres (3D), n-simplexes (nD) La proprit de la sphre vide est locale et favorise les oprations locales Cavits ! Difficile davoir des maillages de trs bonne qualit en 3D ! Difficile dassurer les contraintes au bord en 3D " Techniques base doctree On divise des polydres jusqu avoir des simplexes ! Inutile dajouter des sommets sur le bord " Mthodes par avance de front Se base sur le fait que la cavit restante est toujours subdivisable en ttradres 55 Franck Ledoux