You are on page 1of 10

A1-1 TP2 Gmsh et partitionnement de maillage

Nicolas Kielbasiewicz 20 septembre 2011

Introduction ` a Gmsh

Sous Windows et Mac OS, Gmsh est une application native. Sous Linux, il se lance en ligne de commande, avec quelques options. Ce quil faut savoir au pr ealable, cest que Gmsh est un outil qui peut etre utilis e directement en mode graphique ou purement en ligne de commande. En eet, en mode graphique, la g en eration des di erents objets saccompagne de la g en eration dun chier texte dextension .geo qui contient la d enition de lensemble des objets g eom etriques. Par ailleurs, comme son nom lindique, Gmsh est utilis e pour g en erer des maillages au format msh. Gmsh est un logiciel poss edant une interface graphique minimaliste, mais assez fonctionnelle. Elle se compose de deux frames : un menu, articul e en quatre modules, et une fen etre principale. Les boutons du menu donnent acc` es ` a des sous-menus.

2
2.1

Tutoriel 2D : une ellipse per cant un rectangle


D enition du rectangle
D enition des sommets

2.1.1

On veut d enir les quatre sommets, respectivement aux coordonn ees (0, 0, 0), (2, 0, 0), (2, 1, 0) et (0, 1, 0). Pour cela : 1. Lancer Gmsh sur un chier au nom de votre choix (par exemple test.geo). 2. Cliquer sur Elementary entities. 3. Cliquer sur Add. 4. Cliquer sur New. 5. Cliquer sur Point. Hormis les coordonn ees spatiales du point, un champ tr` es important ` a remplir est celui de la longueur caract eristique. Sa valeur repr esente la valeur du pas de maillage en ce point.

On va choisir la valeur 0.05. On a ensuite la possibilit e de positionner le point ` a la souris et dappuyer sur la touche e pour ajouter un point, ou alors de remplir les trois champs de coordonn ees et de cliquer ensuite sur le bouton Add. On appuie sur q pour sortir du mode insertion (Figure 1).

Figure 1 G en eration des quatre sommets du bord rectangulaire. 2.1.2 D enition des ar etes

` partir des points, on peut maintenant tracer les ar A etes en reliant les sommets deux ` a deux : 1. Cliquer, depuis le menu geometry, sur Elementary entities. 2. Cliquer sur Add. 3. Cliquer sur New. 4. Cliquer sur Straight Line. 5. Cliquer sur le sommet de d epart. 6. Cliquer sur le sommet darriv ee. 7. Construire les trois autres ar etes de la m eme mani` ere. 8. Cliquer sur q pour quitter le mode insertion (Figure 2).

Figure 2 G en eration des quatre ar etes du bord rectangulaire.

2.2

D enition de lellipse

Pour g en erer une ellipse, il faut g en erer quatre arcs elliptiques. 2.2.1 D enition des points de construction

Pour construire les arcs elliptiques, on a besoin des points de d epart et darriv ee de chaque arc, dun point sur le grand axe de lellipse, et du centre de lellipse. Si lon choisit comme points de constructions les quatre sommets , alors il y a cinq points ` a construire. 1. G en erer les points de coordonn ees (1, 0.5, 0), (1.5, 0.5, 0), (1, 0.8, 0), (0.5, 0.5, 0), (1, 0.2, 0) avec pour longueur caract eristique 0.1 (Figure 3).

Figure 3 G en eration des cinq points de construction de lellipse. 2.2.2 D enition des arcs elliptiques

1. Cliquer, depuis le menu geometry, sur Elementary entities. 2. Cliquer sur Add. 3. Cliquer sur New. 4. Cliquer sur Ellipse arc. 5. Cliquer sur le point de droite. 6. Cliquer sur le centre de lellipse. 7. Cliquer sur le point de droite (il est sur le grand axe). 8. Cliquer sur le point du haut. Vous avez construit votre premier arc. 9. Construire les trois autres arcs de la m eme mani` ere. 10. Cliquer sur q pour quitter le mode insertion (Figure 4).

Figure 4 G en eration des quatre arcs elliptiques.

2.3

D enition de la surface plane

Maintenant que nous avons d eni les el ements des contours, on va d enir la surface du domaine. 1. Cliquer, depuis le menu geometry, sur Elementary entities. 2. Cliquer sur Add. 3. Cliquer sur New. 4. Cliquer sur Plane surface. 5. Cliquer sur le contour principal (le rectangle). 6. Cliquer sur le trou (lellipse). 7. Cliquer sur e pour terminer la selection. Des traits en pointill e apparaissent (Figure 5).

Figure 5 G en eration de la surface ` a mailler.

2.4

D enition des entit es physiques

On va maintenant etiqueter les di erents el ements du maillage. 1. Cliquer, depuis le menu geometry, sur Physical groups. 2. Cliquer sur Add. 3. Cliquer sur Line. 4. Cliquer sur chacune des quatre ar etes du rectangle. 5. Cliquer sur e. 6. Cliquer sur chacun des quatre arcs de lellipse. 7. Cliquer sur e. 8. Cliquer sur q pour quitter. 9. Cliquer dans le menu sur Surface. 10. Cliquer sur lun des traits pointill es. 11. Cliquer sur e. 12. Cliquer sur q pour quitter.

2.5
2.5.1

G en eration du maillage
Le module mesh

Nous avons maintenant g en er e notre domaine g eom etrique. On peut maintenant g en erer le maillage, en selectionnant le module mesh, soit gr ace a la liste de s ` election dans le menu, soit avec le raccourci m. 1. Cliquer, dans le menu mesh, sur le bouton 2D, ou appuyer sur la touche 2. 2. Cliquer sur le bouton Save. Un chier test.msh est cr e e (si le chier de script est test.geo).

Figure 6 Exemple de maillage rectangulaire avec un trou elliptique. 2.5.2 Le format msh

Lent ete $MeshFormat 2.2 0 8 $EndMeshFormat Lent ete, repr esent e par un bloc MeshFormat, sp ecie la version du format msh (2.2), que le maillage est un chier texte (0) et enn la pr ecision des ottants (8).

D enition des nuds $Nodes 732 1 0 0 0 2 2 0 0 3 2 1 0 4 0 1 0 5 1.5 0.5 0 6 1 0.8 0 7 0.5 0.5 0 8 1 0.2 0 9 0.05128205128192818 0 0 10 0 . 1 0 2 5 6 4 1 0 2 5 6 3 8 5 6 4 0 0 Le bloc Nodes permet de sp ecier le nombre de nuds ainsi que les coordonn ees de chaque nud. Dans le maillage g en er e, il y a ici 732 nuds, et le nud 10 a pour coordonn ees (x, y, z ) = (0.10256410 . . . , 0, 0). D enition des el ements $Elements 1464 1 1 2 12 1 2 1 2 12 1 3 1 2 12 1 4 1 2 12 1

1 9 9 10 10 11 11 12

Le bloc Elements permet de d enir le nombre et lensemble des el ements du maillage (lignes, triangles, . . . ) ` a partir des r ef erences des nuds quils contiennent. Dans notre exemple, il y a donc 1464 el ements. La premi` ere colonne sp ecie le num ero de l el ement. La deuxi` eme colonne sp ecie le type de l el ement (1 pour segment, 2 pour triangle, . . . ). Nous avons donc dans cet extrait du chier uniquement des segments. La troisi` eme colonne sp ecie le nombre d etiquettes associ e ` a cet el ement (ici, 2), correspondant aux colonnes suivantes. La premi` ere etiquette vaut ici 12, ce qui signie que les segments pr esent es sont pr esents dans lobjet g eom etrique num ero 12. La seconde etiquette vaut ici 1, ce qui signie que les segments sont sur le domaine physique num erot e 1, cest-` a-dire le rectangle. Les colonnes suivantes sp ecient la liste des nuds que l el ement contient. L el ement 1 est le segment reliant les nuds 1 et 9, . . . Quen est-il des triangles ?

165 166 167 168 169 170

2 2 2 2 2 2

2 2 2 2 2 2

14 14 14 14 14 14

11 11 11 11 11 11

268 270 194 281 191 187

200 199 198 104 281 180

195 196 271 105 343 345

On retrouve la m eme structure. L el ement 165 est un triangle (2) ayant deux etiquettes : l el ement physique qui le contient (14) et l el ement g eom etrique qui le contient (11), ` a savoir la surface. Logique ! ! ! Ce triangle a pour sommets les nuds 268, 200 et 195.

Exercice 3D : la sph` ere

Le principe de base de Gmsh est dassembler les el ements 2D ` a partir des contours 1D, et par l` a m eme de d enir les el ements 3D ` a partir de leurs contours 2D. Par ailleurs, pour d enir des surfaces courbes, Gmsh d enira la surface minimale qui epouse le contour souhait e. Imaginez que vous coupez une sph` ere par un plan qui ne contient pas le centre, et que le cercle qui est lintersection des deux est celui que vous dessinez. Alors, le morceau de sph` ere que Gmsh choisira sera toujours le plus petit parmi les deux port es par le cercle. ` votre avis, quels 1. A el ements g eom etriques (nombre, nature et localisation) faut-il pour d enir une sph` ere ? 2. Construire une sph` ere avec une d emarche similaire au tutoriel (pas dextrusion). On utilisera toutefois les surfaces r egl ees et non plus les surfaces planes pour d enir les quarts de sph` eres. On prendra une fois encore un pas de 0.1.

Probl` eme : choisir le bon partitionneur

Il existe un grand nombre de partitionneurs, et deux sont impl ement es dans Gmsh : M etis et Chaco. Chacun dispose de plusieurs jeux de param` etres concernant lalgorithme de partitionnement (Recursive ou K-Way pour Metis, MultiLevel-KL, Spectral, Linear, Random ou Scattered pour Chaco), mais aussi dautres options, comme le type de correspondance dar etes et lalgorithme de ranement pour M etis, et larchitecture de la topologie r eseau, le type de divisions, le solveur modal ou lalgorithme local pour Chaco. Dans Gmsh, ces param` etres sont accessibles dans le module mesh en cliquant sur le bouton partition, et ensuite eventuellement sur le bouton Advanced. 9

Les informations concernant le partitionnement sont pr esentes dans le format msh dans la d enition de chaque el ement : 188 189 190 191 192 193 2 2 2 2 2 2 4 4 4 4 4 4 14 14 14 14 14 14 11 11 11 11 11 11 1 1 1 1 1 1 3 3 4 4 4 4 200 308 301 309 301 202 204 300 300 204 78 79 301 79 202 198 301 309

Dans lextrait de chier .msh ci-dessus, l el ement 188 est un triangle (2) ayant quatre etiquettes : l el ement physique qui le contient (14), l el ement g eom etrique qui le contient (11), le nombre de partitions le contenant (1) et la liste des partitions qui le contient (3). Lobjet de cette partie du TP consiste ` a etudier le partitionnement des deux maillages pr ec edents en 64 sous-maillages, en jouant sur les di erents param` etres. On pourra acher la fen etre de log de Gmsh en cliquant sur message console dans le menu Tools ou en cliquant sur CTRL+L. 1. En chargeant le maillage rectangulaire avec un trou elliptique (pas 0.1), demander de calculer une partition de 64 sous-maillages avec M etis et K-way. 2. M eme question avec Chaco, algorithme global Spectral, architecture 2D-mesh, bisection, solveur Lanczos et pas dalgorithme local. Comparez la qualit e du partitionnement avec la question pr ec edente, notez en particulier le nombre total dar etes coup ees (edge cuts). 3. M eme question en choisissant Kernighan-Lin comme algorithme local. 4. M eme question en choisissant le solveur multilevel RQI/SYMMLQ sans algorithme local. 5. M eme question en choisissant Kernighan-Lin comme algorithme local. 6. M eme question en choisissant successivement quadrisection puis octasection. 7. Reprendre les questions 1 ` a 7 avec un pas de maillage de 0.005. Quobservez-vous ? 8. Reprendre les questions 1 ` a 7 avec le maillage 3D de la sph` ere et un pas de 0.1. Quobservez-vous ? 9. Reprendre les questions 1 ` a 7 avec le maillage 3D de la sph` ere et un pas de 0.03. Quobservez-vous ?

10

You might also like