gmsh

download gmsh

of 32

Transcript of gmsh

Introduction a Gmsh `Nicolas Kielbasiewicz 5 mars 2010

Gmsh est un logiciel libre cr par Christophe Geuzaine 1 et Jeanee Franois Remacle 2 , permettant de gnrer des maillages 2D et 3D de type c e e lments nis avec des outils de pr/post-traitement. Cest un logiciel multiee e plateforme (Windows, Linux et Mac OS X) tlchargeable sur : ee http://geuz.org/gmsh Lobjectif ici est de prsenter les commandes lmentaires permettant e ee de gnrer des maillages 2D ou 3D au format msh ` laide de cet outil. e e a Je prsenterai aussi des exemples permettant, entre autres, de gnrer e e e des maillages de toutes les natures possibles, avec les outils ncessaires e et les contraintes quils imposent. Pour des informations dtailles sur les e e fonctionnalits de Gmsh, je vous renvoie ` la documentation disponible sur e a le site susnomm. e

Table des mati`res e1 Le format msh 1.1 Informations du chier de maillage . . . . 1.2 Dnition des nuds . . . . . . . . . . . . e 1.3 Dnition des lments . . . . . . . . . . . e ee 1.4 Dnition des labels . . . . . . . . . . . . e 1.5 Dnition des donnes de post-traitement e e 1.5.1 Les donnes de nuds . . . . . . . e 1.5.2 Les donnes des lments . . . . . e ee 1.5.3 Les donnes des nuds dlments e ee 1.6 Numrotation des lments . . . . . . . . e ee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 3 3 5 5 5 6 6

1. Professeur a lUniversit de Li`ge : http://www.montefiore.ulg.ac.be/~geuzaine ` e e 2. Professeur a lUniversit Catholique de Louvain http://perso.uclouvain.be/ ` e jean-francois.remacle/

2 Gmsh, outil graphique 2.1 Le module geometry . . . . . 2.2 Le module mesh . . . . . . . . 2.3 Le module solver . . . . . . 2.4 Le module post-processing

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

8 8 10 11 11 11 11 12 12 12 13 13 13 14 14

3 Gmsh, outil en ligne de commande 3.1 Excution en ligne de commande . e e 3.2 Elments de syntaxe . . . . . . . . 3.3 Points de dpart . . . . . . . . . . e 3.4 Lignes et contours . . . . . . . . . 3.5 Surfaces et contours surfaciques . . 3.6 Volumes . . . . . . . . . . . . . . . e 3.7 Elments physiques . . . . . . . . . 3.8 Transformations gomtriques . . . e e 3.9 Transformations du maillage . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

4 Exemples 16 4.1 Maillage non structur dun domaine rectangulaire contenant e un trou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2 Maillages structurs dun domaine rectangulaire . . . . . . . . 18 e 4.3 Maillage non structur dun cnesph`re . . . . . . . . . . . . 20 e o e 4.4 Maillage non structur dune sph`re . . . . . . . . . . . . . . 22 e e 4.5 Maillage non structur dun cylindre contenant 2 tuy`res . . . 24 e e 4.6 Maillages structurs par extrusion . . . . . . . . . . . . . . . 29 e 4.6.1 Maillage prismatique dans un prisme . . . . . . . . . . 29 4.6.2 Maillage rgulier dans un cne . . . . . . . . . . . . . 31 e o

1

Le format msh

Un chier de maillage au format msh est organis en blocs de e donnes. Chacun de ces blocs est dcrit dans une sous-section, dans lordre e e dapparition dans le chier de maillage (au moins pour les blocs obligatoires).

1.1

Informations du chier de maillage

Le premier bloc concerne les informations gnrales sur le chier : e e $MeshFormat v e r s i o n number f i l e type datas i z e $EndMeshFormat version-number est un rel valant actuellement 2.1 ou 2.2 (derni`res e e versions du format msh). 2

file-type vaut 0 pour un chier texte. data-size prcise le nombre de dcimales signicatives dun ottant e e double prcision (=sizeof(double)). e

1.2

Dnition des nuds e

Le bloc suivant concerne la dnition des nuds, ` savoir leur nombre e a et la liste de leurs coordonnes : e $Nodes numberof nodes nodenumber xc o o r d yc o o r d zc o o r d ... $EndNodes

1.3

Dnition des lments e ee

Le bloc suivant concerne la dnition des lments (triangles, e ee quadrangles, ttra`dres, . . . ) : e e $Elements numberof e l e m e n t s elmnumber elmtype numberof t a g s nodenumber list ... $EndElements elm-type dsigne le type dlments nis (gomtrie de la maille et e ee e e ordre). Consulter le tableau 1. number-of-tags dsigne le nombre de param`tres de llment. e e ee dsigne la liste de ces param`tres, de taille number-of-tags. Par e e dfaut, le premier param`tre est la rfrence de lentit physique ` laquelle e e ee e a appartient llment, le second est la rfrence de lentit gomtrique ee ee e e e lmentaire contenant cet lment. Quand on partitionne le maillage (Gmsh ee ee propose cette fonctionnalit), un troisi`me tag est ajout et reprsente la e e e e rfrence de la partition du maillage contenant cet lment. ee ee node-number-list dsigne la liste ordonne des rfrences des nuds e e ee de llment (cf. sous-section 1.6). ee

1.4

Dnition des labels e

La section suivante concerne la dnition des labels physiques des e direntes rgions du maillage. Ce bloc nest pas obligatoire. e e

3

elm-type 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

gomtrie e e segment triangle quadrangle ttra`dre e e hexa`dre e prisme pyramide segment triangle quadrangle ttra`dre e e hexa`dre e prisme pyramide point quadrangle hexa`dre e prisme pyramide triangle triangle triangle triangle triangle triangle segment segment segment ttra`dre e e ttra`dre e e ttra`dre e e

nb de nuds 2 3 4 4 8 6 5 3 6 9 10 27 18 14 1 8 20 15 13 9 10 12 15 15 21 4 5 6 20 35 56

ordre 1 1 1 1 1 1 1 2 2 2 2 2 2 2 N/A 2 2 2 2 3 3 4 4 5 5 3 4 5 3 4 5

position 2S 3S 4S 4S 8S 6S 5S 2S+1A 3S+3A 4S+4A+1F 4S+6A 8S+12A+6F+1V 6S+9A+3FQ 5S+8A+1FQ 1S 4S+4A 8S+12A 6S+9A 5S+8A 3S+6A 3S+6A+1F 3S+9A 3S+9A+3F 3S+12A 3S+12A+6F 2S+2A 2S+3A 2S+4A 4S+12A+4F 4S+18A+12F+1V 4S+24A+24F+4V

Table 1 Quelques valeurs possibles pour le param`tre elm-type. Le e nombre de nuds est entre parenth`ses. Pour la position : A=arte, F=face, e e FQ=face quadrangulaire, S=sommet, V=volume.

4

$PhysicalNames numberof names p h y s i c a l d i m e n s i o n p h y s i c a l number p h y s i c a l name ... $EndPhysicalNames

1.5

Dnition des donnes de post-traitement e e

Les blocs de post-traitement servent ) tracer une quantit sur le maillage e ainsi dni. Ces blocs peuvent tre dnis dans des chiers spars de e e e e e celui contenant la dnition du maillage. Chaque chier reprsente alors e e un pas de temps. Ils contiendront donc les valeurs ` tracer sur chacun des a nuds/lments du maillage, rpartis en 3 catgories. ee e e 1.5.1 Les donnes de nuds e

$NodeData numberof s t r i n g t a g s ... numberof r e a l t a g s ... numberof i n t e g e r t a g s ... nodenumber v a l u e . . . ... $EndNodeData Les 3 premi`res sries de donnes concernent les tiquettes sur les nuds, e e e e rangs par leur type : cha de caract`res, entier ou ottant. e ne e La quatri`me et derni`re srie de donnes concerne les valeurs aectes e e e e e a ` chacun des nuds. value dsigne la valeur de la quantit ` tracer sur chacun des nuds. e ea 1.5.2 Les donnes des lments e ee

$ElementData numberof s t r i n g t a g s ... 5

numberof r e a l t a g s ... numberof i n t e g e r t a g s ... elmnumber v a l u e . . . ... $EndElementData Il sagit de la mme organisation que pour les nuds. Ce type de donnes e e sert ` tracer des fonctions constantes par maille. a value dsigne ici la valeur de la quantit ` tracer sur chacun des lments. e ea ee 1.5.3 Les donnes des nuds dlments e ee

$ElementNodeData numberof s t r i n g t a g s ... numberof r e a l t a g s ... numberof i n t e g e r t a g s ... elmnumber numberof nodespere l e m e n t v a l u e . . . ... $EndElementNodeData L` encore, on retrouve la mme organisation de donnes. Il sagit dune a e e verison plus gnrale que les donnes dlments, car ici, plutt que daecter e e e ee o la mme valeur ` chacun des nuds dune maille, on va spcier ici la valeur e a e pour chacun de ces nuds, maille apr`s maille. e value dsigne la valeur de la quantit ` tracer sur chacun des nuds de e ea chacun des lments. ee

1.6

Numrotation des lments e ee

Je vas prsenter ici la numrotation des lments utilise par Gmsh e e ee e sur les 3 familles dlments plans, ` savoir les segments (gure 1), les ee a triangles (gure 2) et les quadrangles (gure 3). Les exemples porteront sur les lments nis de Lagrange dordres respectifs 1, 2 et 4. On remarquera ee que lordre de numrotation des lments concerne les sommets, puis les e ee 6

nuds dartes, psui les nuds de faces. En 3D viendront sajouter ensuite e les nuds de volume.u 0 1 0 2 1 u 0 2 3 4 1 u

Figure 1 Numrotation des nuds sur un lment de type segment e ee (Lagrange P1 ` gauche, P2 au centre et P4 ` droite). a a

v

v

v 2 9 10 11 u 1

2

2 5 u 0 1 0 3 4

8 7 13 14 12 6 u

0 3 4 5 1

Figure 2 Numrotation des nuds sur un lment de type triangle e ee (Lagrange P1 ` gauche, P2 au centre et P4 ` droite). a a

v

v 6 2

2

3 7 u 0 1 0

8 4 1

5 u

Figure 3 Numrotation des nuds sur un lment de type quadrangle e ee (Lagrange P1 ` gauche, P2 ` droite). a a Apr`s cette prsentation du format du maillage gnr par Gmsh, je vais e e e ee a e ` prsent vous expliquer le fonctionnement de Gmsh, en commenant par c son interface graphique.

7

2

Gmsh, outil graphique

Gmsh est un logiciel possdant une interface graphique minimaliste, mais e assez fonctionnelle. Elle se compose de deux frames : un menu, articul en 4 e modules, et une fentre principale (gure 4). Les boutons du menu donnent e acc`s ` des sous-menus. e a

Figure 4 La fentre principale e

2.1

Le module geometry

Le module geometry (gure 5) est disponible sur le menu par la liste de slection ou le raccourci g. e

Figure 5 Menu du module geometry.

8

Il est ddi ` la construction gomtrique du maillage, avec la distinction e ea e e entre les lments purement gomtrique utiles ` la construction, et les ee e e a lments physiques du maillage ` gnrer (avec leurs rfrences, . . . ). Cest ee a e e ee aussi par ce menu que lon peut accder au chier de script (extension e .geo) servant ` gnrer le maillage, ainsi qu` le recharger apr`s modication a e e a e directe. Je parlerai plus en dtails de la syntaxe des instructions prsentes e e dans ces chiers dans la section suivante. Considrons que nous voulons dnir un nouveau point. On va donc e e cliquer respectivement sur Elementary entities, Add, New et Point. Une fentre appara alors (gure 6). Hormis les coordonnes spatiales du point, e t e un champ tr`s important ` remplir est celui de la longueur caractristique. e a e Sa valeur reprsente la valeur du pas de maillage en ce point. Cela permet e ainsi de dnir des maillages graduellement plus rans dun point ` un e e a autre.

Figure 6 Aspect du menu ` chaque tape conduisant ` la cration dun a e a e point par ouverture de la fentre contextuelle ddie. e e e

9

` A partir de ces points, on peut alors tracer des segments en reliant deux points, des arcs de cercles ` partie de 3 points, . . . . a

2.2

Le module mesh

Une fois la surface gomtrique dnie, on va gnrer le maillage. Pour e e e e e cela, on choisit le module mesh, soit grce ` la liste de slection, soit a a e ` partir de ce menu, on va pouvoir mailler avec le raccourci m (gure 7). A les contours, surfaces et volumes en prcisant lordre dapproximation des e lments nis, eectuer des oprations de partitionnement, de ranement et ee e dhomognisation des mailles. Cest ici galement que lon va sauvegarder e e e le maillage au format msh. Remarque : Pour des lments nis dordre suprieur, lorsquil sagit ee e de bords courbes, les points supplmentaires sont par dfaut, si ncessaires e e e dplacs sur le bord au lieu de rester sur larte de la maille. e e e

Figure 7 Menu du module mesh.

10

2.3

Le module solver

Gmsh peut tre interfac avec un solveur C++. Pour cela, il sut e e dinclure GmshSocket.h dans le code. 5 solveurs peuvent tre interfacs e e simultanment avec Gmsh. e

2.4

Le module post-processing

Comme nous lavons vu en prsentant le format msh, il existe la e possibilit de tracer des donnes ` condition quelles soient donnes dans e e a e le bon format. Le module post-processing permet de tracer ces donnes e et de les visualiser dans linterface de Gmsh.

33.1

Gmsh, outil en ligne de commandeExcution en ligne de commande e

Comme nous lavons vu, la construction du maillage en mode graphique saccompagne de la gnration dun chier de script dextension .geo. e e Gmshpeut tre utilis en ligne de commande moyennant une srie doptions e e e fort pratique. Voici quelques exemples de combinaisons doptions : gmsh -help cette commande ache laide avec la liste compl`te des options e gmsh -g le.geo cette commande dmarre le script le.geo avec le module e geometry (comportement par dfaut) e gmsh -m le.geo cette commande dmarre le script le.geo avec le module e mesh gmsh -s le.geo cette commande dmarre le script le.geo avec le module e solver gmsh -p le.geo cette commande dmarre le script le.geo avec le module e post-processing gmsh -1 le.geo -o maillage.msh cette commande gn`re le chier e e maillage.msh ` partir dun maillage 1D sur la gomtrie contenue dans a e e le.geo et sort (mode console) gmsh -2 -order 3 le.geo -o maillage.msh cette commande gn`re le e e chier maillage.msh ` partir dun maillage 2D dordre 3 sur la a gomtrie contenue dans le.geo et sort (mode console) e e gmsh -3 -clscale 0.1 le.geo -o maillage.msh cette commande gn`re e e le chier maillage.msh ` partir dun maillage 3D de longueur a caractristique (=pas) 0.1 sur la gomtrie contenue dans le.geo et e e e sort (mode console)

11

3.2

e Elments de syntaxe

La syntaxe des scripts geo est tr`s facile dacc`s et est base sur le e e e principe suivant : tout objet gomtrique est identi par une rfrence, et ce e e e ee sont ces rfrences qui sont utilises pour dnir des objets plus complexes. ee e e

3.3

Points de dpart e

Un point est dni par un quadruplet form par les 3 coordonnes e e e x, y et z, et par une longueur caractristique. Comme nous lavons vu e prcdemment, cette longueur caractristique sapparente ` la valeur du pas e e e a localement autour de ce point. La syntaxe est la suivante : l c =0.001; Po i nt ( 1 ) = { 0 . 0 , 0 . 0 , 0 . 0 , l c } ; Il est impossible de dnir 2 points dirents avec le mme identiant e e e (erreur ` lexcution). Par contre, la valeur de cet identiant est un entier a e naturel non nul quelconque.

3.4

Lignes et contours

Les lignes sont des objets orients qui peuvent tre de direntes natures : e e e segments, arcs de cercle, splines, arcs elliptiques, . . . Line ( 2 ) ={1 ,3}; C i r c l e (3) ={5 ,1 ,4}; E l l i p s e (4) ={8 ,7 ,6 ,9}; Line Loop ( 2 ) ={2 ,5 , 3 ,6}; Le segment rfrenc 2 va du point rfrenc 1 au point rfrenc 3. ee e ee e ee e Larc de cercle rfrenc 3 va du point 5 au point 4, et est bas sur un ee e e cercle de centre le point rfrenc 1. Larc elliptique rfrenc 4 commence ee e ee e au point rfrenc 8 et se termine au point rfrenc 9. Ses param`tres sont ee e ee e e le centre de lellipse (le point rfrenc 7), et la direction du grand axe ee e (le point rfrenc 6). La derni`re commande permet de dnir un contour ee e e e ferm. Dans lexemple, sa rfrence est 2 et il est construit ` partir de la e ee a ligne rfrence 2 et parcourue dans le sens direct, de la ligne rfrence 5 ee e ee e et parcourue dans le sens direct, de la ligne rfrence 3 parcourue dans le ee e sens indirect et de la ligne rfrence 6 parcourue dans le sens direct. ee e Remarque importante : Quelles que soit leurs natures gomtriques, e e deux lignes ne peuvent avoir le mme identiant. De mme pour deux e e contours.

12

3.5

Surfaces et contours surfaciques

Il existe 2 types de surfaces : les surfaces planes, et les surfaces dites rgles. Elles sappuient toutes deux sur des contours ferms et ne sont pas e e e orientes. Les surfaces rgles sont des surfaces non planes dnies ` partir e e e e a de la forme de leur contour. La seule option que lon peut passer est un forage de la construction de la surface comme portion de sph`re. c e Plane S u r f a c e ( 3 ) ={3 ,4}; Ruled S u r f a c e ( 4 ) ={1}; Ruled S u r f a c e ( 5 ) ={10} In Sphere { 1 } ; S u r f a c e Loop ( 3 ) = { 3 , 4 , 5 } ; La surface plane rfrence 3 est dnie ` partir des contours rfrencs 3 ee e e a ee e et 4. Il faut bien entendu que ces contours soit contenus dans un mme plan. e On dnit ainsi une surface possdant un trou. La surface regle rfrence 4 e e e ee e est dnie ` partir du contour rfrenc 1. La surface rgle rrrence 5 est e a ee e e e ee e dnie comme un lment de sph`re de centre le point rfrenc 1, ` partir e ee e ee e a du contour rfrenc 10. Enn, le contour surfacique rfrenc 3 est dni ee e ee e e comme lunion des 3 surfaces prcdentes. e e Remarque importante : Quelles que soit leurs natures gomtriques, e e deux surfaces ne peuvent avoir le mme identiant. De mme pour deux e e contours surfaciques.

3.6

Volumes

Par analogie, les volumes sont dnis ` partir de contours surfaciques. e a Volume ( 1 ) ={3};

3.7

e Elments physiques

Si lon regarde la dnition du format de maillage msh, on voit e quil existe pour chaque lment une rfrence physique et une rfrence ee ee ee gomtrique. Les identiants que lon a manipuls jusque l` sont les e e e a rfrences gomtriques des lments crs. ee e e ee ee Les rfrences physiques sont les identiants des objets physiques du ee maillage. Ce sont ces rfrences qui permettent de dnir les domaines ee e mathmatiques utiliss dans ltablissement des formulations variationnelles. e e e Ces lments physiques sont dnis ` partir dun ensemble dlments ee e a ee gomtriques de mme dimension. e e e

13

PhysicalPoint (1) ={1 ,2 ,4}; P h y s i c a l S u r f a c e ( 2 ) ={32 ,89}; PhysicalVolume ( 3 ) ={3};

3.8

Transformations gomtriques e e

Je vais ici parler de quelques commandes plus avances pour la e manipulation dobjets . Je vous renvoie pour cela ` la documentation a ocielle. Dilate . . . : cette commande permet de raliser une homothtie sur un e e ensemble dentits gomtriques. e e e Rotate . . . : cette commande permet defectuer une rotation sur un ensemble dentits gomtriques. e e e Translate . . . : cette commande permet deectuer une translation sur un ensemble dentits gomtriques. e e e Symmetry . . . : cette commande permet deectuer une symtrie plane e sur un ensemble dentits gomtriques. e e e Duplicata . . . : cette commande gn`re un duplicata dun ensemble e e dentits gomtriques. Tr`s utile en argument des commandes e e e e prcdentes pour conserver lensemble ` transformer. e e a Extrude . . . : cette commande permet de gnrer des lignes, surfaces ou e e volumes par extrusion de points, lignes ou surfaces respectivement. Lextrusion peut tre obtenue par une translation et/ou une rotation e et concerne galement le maillage de lobjet source. Voir les exemples e en sous-section 4.6.

3.9

Transformations du maillage

Par dfaut, Gmsh gn`re des maillages non structurs : des triangles e e e e en 2D, des ttra`dres en 3D. Il est possible de structurer le maillage. e e Pour cela, on fait appel ` lalgorithme transnite 1D, 2D ou 3D pour a transformer le maillage dune ligne, dune surface ou dun volume en un maillage triangulaire/ttradrique plus rgulier. Par ailleurs, il est possible e e e de gnrer un maillage quadrangulaire/hexadrique en appelant galement e e e e la commande de recombinaison. T r a n s f i n i t e Lin e {1 ,3}=10; T r a n s f i n i t e S u r f a c e . ; Recombine S u r f a c e { 2 , 3 } ; T r a n s f i n i t e Volume . ;

14

Les commandes Transnite prennent en argument la liste des lments ee dont on veut modier le maillage. Si on les veut tous, on peut se contenter dcrire *. On peut galement prciser le nombre de nuds gnrs par la e e e e ee restructuration. Cest obligatoire pour les lignes. La commande Recombine Surface associe ` Transnite convertit e a une fraction des triangles/ttra`dres en quadrangles/hexa`dres. e e e Remarque importante : Lorsquon utilise la commande Recombine Surface, on est oblig dappeler la commande Transnite Volume. En e eet, dans le cas contraire, le mailleur va essayer de gnrer des ttra`dres, ce e e e e qui est impossible quand on dispose de quadrangles sur certaines surfaces ! ! ! Il existe beaucoup dautres commandes dont je ne parlerai pas, permettant de gnrer dautres types de lignes, deectuer dautres e e manipulations sur les entits gomtriques et les maillages, comme e e e supprimer, masquer, sauvegarder, . . . . Je vous renvoie pour cela ` la a documentation ocielle. Je vais maintenant vous prsenter quelques exemples, illustrant les e direntes commandes prsentes et leur utilisation : e e e 1. Un maillage non structur dans un domaine 2D rectangulaire e contenant un trou elliptique. 2. Deux maillages structurs dans un domaine 2D rectangulaire plein. e 3. Un maillage non structur dans un domaine 3D de la forme dun e conesph`re. e 4. Un maillage non structur dans un domaine 3D de la forme dune e sph`re. e 5. Un maillage non structur dans un domaine 3D cylindrique. e 6. Un maillage structur prismatique dans un domaine 3D prismatique. e 7. Un maillage structur contenant des mailles pyramidales dans un e domaine 3D conique.

15

44.1

ExemplesMaillage non structur dun domaine rectangulaire e contenant un trou

Cet exemple permet dapprhender les direntes instructions de base e e pour gnrer des maillages surfaciques. e e l c =0.05; // g e n e r a t i o n du r e c t a n g l e Po i nt ( 1 ) ={0 ,0 ,0 , l c } ; Po i nt ( 2 ) ={2 ,0 ,0 , l c } ; Po i nt ( 3 ) ={2 ,1 ,0 , l c } ; Po i nt ( 4 ) ={0 ,1 ,0 , l c } ; Line ( 1 ) ={1 ,2}; Line ( 2 ) ={2 ,3}; Line ( 3 ) ={3 ,4}; Line ( 4 ) ={4 ,1}; // g e n e r a t i o n de l e l l i p s e Po i nt ( 5 ) = { 1 , 0 . 5 , 0 , l c } ; Po i nt ( 6 ) = { 1 . 5 , 0 . 5 , 0 , l c } ; Po i nt ( 7 ) = { 1 , 0 . 7 5 , 0 , l c } ; Po i nt ( 8 ) = { 0 . 5 , 0 . 5 , 0 , l c } ; Po i nt ( 9 ) = { 1 , 0 . 2 5 , 0 , l c } ; E l l i p s e (5) ={6 ,5 ,6 ,7}; E l l i p s e (6) ={7 ,5 ,8 ,8}; E l l i p s e (7) ={8 ,5 ,8 ,9}; E l l i p s e (8) ={9 ,5 ,6 ,6}; // g e n e r a t i o n d e s c o n t o u r s Line Loop ( 1 ) = { 1 , 2 , 3 , 4 } ; Line Loop ( 2 ) = { 5 , 6 , 7 , 8 } ; // g e n e r a t i o n de l a s u r f a c e Plane S u r f a c e ( 1 ) ={1 ,2}; Remarque : En donnant une valeur plus petite ` la longueur a caractristique associe aux points 2 et 3, le maillage sera graduellement e e plus ran dans la partie droite. e

16

Figure 8 Visualisation du maillage gnr sur un domaine rectangulaire e ee contenant un trou elliptique, sans et avec ranement dans la partie droite 17

4.2

Maillages structurs dun domaine rectangulaire e

Cet exemple vise ` montrer linuence des commandes Transnite a et Recombine Surface sur la structure du maillage dans un domaine rectangulaire. Dans un domaine cubique, les mailles seront des ttra`dres e e rguliers avec Transnite, et des cubes si lon ajoute Recombine Surface. e l c =0.05; // g e n e r a t i o n du r e c t a n g l e Po i nt ( 1 ) ={0 ,0 ,0 , l c } ; Po i nt ( 2 ) ={2 ,0 ,0 , l c } ; Po i nt ( 3 ) ={2 ,1 ,0 , l c } ; Po i nt ( 4 ) ={0 ,1 ,0 , l c } ; Line ( 1 ) ={1 ,2}; Line ( 2 ) ={2 ,3}; Line ( 3 ) ={3 ,4}; Line ( 4 ) ={4 ,1}; // g e n e r a t i o n de l a s u r f a c e Line Loop ( 1 ) = { 1 , 2 , 3 , 4 } ; Plane S u r f a c e ( 1 ) ={1}; // s t r u c t u r a t i o n du m a i l l a g e T r a n s f i n i t e Lin e {1 ,3}=40; T r a n s f i n i t e Lin e {2 ,4}=20; T r a n s f i n i t e S u r f a c e ; // m a i l l a g e q u a d r a n g u l a i r e // Recombine S u r f a c e ; Remarque : Dans cet exemple, on spcie 40 nuds sur lunion des e lignes 1 et 3 en argument de Transnite Line. Il ne sagit pas de 40 nuds pour la ligne 1 et 40 points pour la ligne 3, mais de 40 nuds rpartis sur e les deux lignes, soit 20 nuds pour la ligne 1 et 20 nuds pour la ligne 3. Mme raisonnement pour les 20 nuds sur les lignes 2 et 4. e

18

Figure 9 Visualisation du maillage gnr sur un domaine rectangulaire e ee avec transnite (` gauche) et avec transnite et recombine (` droite). a a 19

4.3

Maillage non structur dun cnesph`re e o e

Cet exemple vise ` montrer comment gnrer un maillage volumique a e e compos dlments non polydriques. Conformment ` la dmo propose e ee e e a e e dans Gmsh, on dnit la sph`re ` laide du cercle principal et de deux demie e a cercles orthogonaux 2 ` 2, dnissant ainsi les 4 lments de la surface de la a e ee demi-sph`re ` laide des surfaces rgles. Mme procd pour le cne. e a e e e e e o

Figure 10 Visualisation du maillage gnr dans un cnesph`re, dni e ee o e e comme lunion dun cne de rvolution et dune demi-sph`re. o e e l c =0.2; // d e f i n i t i o n de l a demis p h e r e Po i nt ( 1 ) = { 0 . 0 , 0 . 0 , 0 . 0 , l c } ; Po i nt ( 2 ) = { 1 , 0 . 0 , 0 . 0 , l c } ; Po i nt ( 3 ) = { 0 , 1 , 0 . 0 , l c } ; C i r c l e (1) ={2 ,1 ,3}; Po i nt ( 4 ) ={ 1 ,0 ,0.0 , l c } ; C i r c l e (2) ={4 ,1 ,3}; Po i nt ( 5 ) ={0 ,0 , 1 , l c } ; 20

C i r c l e (3) ={3 ,1 ,5}; C i r c l e (4) ={5 ,1 ,4}; C i r c l e (5) ={5 ,1 ,2}; Po i nt ( 6 ) ={0 ,0 ,1 , l c } ; C i r c l e (6) ={3 ,1 ,6}; C i r c l e (7) ={6 ,1 ,2}; C i r c l e (8) ={6 ,1 ,4}; // d e f i n i t i o n du cone Po i nt ( 7 ) ={0 , 3 ,0 , l c } ; Line ( 1 0 ) ={7 ,2}; Line ( 1 2 ) ={7 ,4}; Line ( 1 4 ) ={7 ,5}; Line ( 1 6 ) ={7 ,6}; // d e f i n i t i o n d e s s u r f a c e s de c o n t o u r de l a demi sphere Line Loop ( 2 0 ) = { 2 , 6 , 8 } ; Ruled S u r f a c e ( 2 1 ) ={20} In Sphere { 1 } ; Line Loop ( 2 2 ) = { 6 , 7 , 1 } ; Ruled S u r f a c e ( 2 3 ) ={22} In Sphere { 1 } ; Line Loop ( 2 4 ) = { 4 , 2 , 3 } ; Ruled S u r f a c e ( 2 5 ) ={24} In Sphere { 1 } ; Line Loop ( 2 6 ) = { 1 , 3 , 5 } ; Ruled S u r f a c e ( 2 7 ) ={26} In Sphere { 1 } ; // d e f i n i t i o n d e s s u r f a c e s de c o n t o u r du cone Line Loop ( 3 0 ) ={ 10 ,5 ,14}; Ruled S u r f a c e ( 3 1 ) ={30}; Line Loop ( 3 2 ) ={14 ,4 , 12}; Ruled S u r f a c e ( 3 3 ) ={32}; Line Loop ( 3 4 ) ={16 ,8 , 12}; Ruled S u r f a c e ( 3 5 ) ={34}; Line Loop ( 3 6 ) ={16 ,7 , 10}; Ruled S u r f a c e ( 3 7 ) ={36}; // d e f i n i t i o n du volume S u r f a c e Loop ( 5 0 ) = { 3 1 , 3 3 , 3 5 , 3 7 , 2 1 , 2 5 , 2 7 , 2 3 } ; Physical Surface (1) ={31 ,33 ,35 ,37}; Physical Surface (9) ={21 ,25 ,27 ,23}; Volume ( 5 1 ) ={50};

21

4.4

Maillage non structur dune sph`re e e

Dans lexemple prcdent, nous avons pu voir que pour gnrer une demie e e e sph`re, nous avions dni le cercle principal, plus 2 demi-cercles, de sorte e e a e ` dnir la demi-sph`re en 4 morceaux ` laide des surfaces rgles. Ceci e a e e est en eet bas sur la dmo de la sph`re disponible dans larborescence e e e de Gmsh, base sur la construction de 3 cercles orthogonaux 2 ` 2. Il est e a toutefois possible de simplier la procdure en ne dnissant que 2 cercles e e orthogonaux.

Figure 11 Visualisation du domaine sphrique. e l c =0.25; Po i nt ( 1 ) ={0 ,0 ,0 , l c } ; Po i nt ( 2 ) ={1 ,0 ,0 , l c } ; Po i nt ( 3 ) ={0 ,1 ,0 , l c } ; Po i nt ( 4 ) ={ 1 ,0 ,0 , l c } ; Po i nt ( 5 ) ={0 , 1 ,0 , l c } ; Po i nt ( 6 ) ={0 ,0 ,1 , l c } ; Po i nt ( 7 ) ={0 ,0 , 1 , l c } ;

22

C i r c l e (1) ={2 ,1 ,3}; C i r c l e (2) ={3 ,1 ,4}; C i r c l e (3) ={4 ,1 ,5}; C i r c l e (4) ={5 ,1 ,2}; C i r c l e (5) ={6 ,1 ,3}; C i r c l e (6) ={3 ,1 ,7}; C i r c l e (7) ={7 ,1 ,5}; C i r c l e (8) ={5 ,1 ,6}; Line Line Line Line Loop ( 1 ) = { 1 , 6 , 7 , 4 } ; Loop ( 2 ) ={1 , 5 , 8 ,4}; Loop ( 3 ) ={2 ,3 , 7 , 6}; Loop ( 4 ) = { 2 , 3 , 8 , 5 } ;

Ruled S u r f a c e ( 1 ) ={1} In Sphere { 1 } ; Ruled S u r f a c e ( 2 ) ={2} In Sphere { 1 } ; Ruled S u r f a c e ( 3 ) ={3} In Sphere { 1 } ; Ruled S u r f a c e ( 4 ) ={4} In Sphere { 1 } ; S u r f a c e Loop ( 1 ) = { 1 , 2 , 3 , 4 } ; Volume ( 1 ) ={1}; Une autre ide serait de dnir un seul cercle et de dnir la sph`re e e e e par extrusion de ce cercle par rotation, mais pour des raisons voques en e e paragraphe 4.6.2, cela nest pas possible.

23

4.5

Maillage non structur dun cylindre contenant 2 tuy`res e e

Cet exemple plus complexe vise ` prsenter lutilisation des commandes a e de transformation gomtrique (translation, symtrie, homothtie, copie) e e e e an de gnrer un domaine de type cylindre contenant 2 trous de type e e tuy`res, une dans chaque sens. e

Figure 12 Visualisation du domaine cylindrique comportant 2 tuy`res. e On commence par gnrer un cercle dont on translate une copie an e e de gnrer le cylindre principal. Par un procd similaire, on dnit la e e e e e premi`re tuy`re, en utilisant astucieusement lhomothtie an de dnir le e e e e rtrcissement. La deuxi`me tuy`re nest autre que la symtrie plane de la e e e e e premi`re que lon translate (on aurait pu eectuer 2 symtries planes). e e On remarque au passage les contraintes lies ` lutilisation des e a commandes Translate, Symmetry, Duplicata et Dilate en terme de numrotation des nuds gnrs. En eet, si tout se passe logiquement pour e e ee les lignes (segments et arcs de cercle), en ayant une numrotation continue, e qui commence au premier entier disponible, il est en autrement pour les points. Jai donc ajout en commentaire les rfrences des points gnrs. e ee e ee Pour les obtenir, il sut de pointer chaque objet avec la souris dans la fentre e graphique de Gmsh.

24

l c =0.3; // c y l i n d r e p r i n c i p a l Po i nt ( 1 ) ={0 ,0 ,0 , l c } ; Po i nt ( 2 ) ={0 ,0 ,2 , l c } ; Po i nt ( 3 ) ={0 ,2 ,0 , l c } ; Po i nt ( 4 ) ={0 ,0 , 2 , l c } ; Po i nt ( 5 ) ={0 , 2 ,0 , l c } ; C i r c l e (1) ={2 ,1 ,3}; C i r c l e (2) ={3 ,1 ,4}; C i r c l e (3) ={4 ,1 ,5}; C i r c l e (4) ={5 ,1 ,2}; Line Loop ( 1 ) = { 1 , 2 , 3 , 4 } ; // c e r c l e de b a s e Translate {10 ,0 ,0}{ D u p l i c a t a { L ine { 1 , 2 , 3 , 4 } ; } } // r e f s p o i n t s 6 , 7 , 8 , 1 3 , 18 // r e f s c i r c l e 5 , 6 , 7 , 8 Line ( 9 ) ={2 ,6}; Line ( 1 0 ) ={3 ,8}; Line ( 1 1 ) ={4 ,13}; Line ( 1 2 ) ={5 ,18}; Line Line Line Line Line Loop ( 2 ) = { 5 , 6 , 7 , 8 } ; // c e r c l e de b a s e oppose Loop ( 3 ) ={1 ,10 , 5 , 9}; // f a c e du c y l i n d r e Loop ( 4 ) ={2 ,11 , 6 , 10}; // idem Loop ( 5 ) ={3 ,12 , 7 , 11}; // idem Loop ( 6 ) ={4 ,9 , 8 , 12}; // idem

// p r e m i e r e t u y e r e // p r e m i e r t r o n c o n Po i nt ( 2 0 ) ={0 ,0 , 1 , l c } ; Po i nt ( 2 1 ) ={0 ,0 , 0.4 , l c } ; Po i nt ( 2 2 ) ={0 ,0.6 , 1 , l c } ; Po i nt ( 2 3 ) ={0 ,0 , 1.6 , l c } ; Po i nt ( 2 4 ) ={0 , 0.6 , 1 , l c } ; C i r c l e (20) ={21 ,20 ,22}; C i r c l e (21) ={22 ,20 ,23}; C i r c l e (22) ={23 ,20 ,24}; 25

C i r c l e (23) ={24 ,20 ,21}; Line Loop ( 2 0 ) = { 2 0 , 2 1 , 2 2 , 2 3 } ; Translate {4 ,0 ,0}{ D u p l i c a t a { L ine { 2 0 , 2 1 , 2 2 , 2 3 } ; } } // r e f s p o i n t s 2 5 , 2 6 , 2 7 , 3 2 , 37 // r e f s c i r c l e 2 4 , 2 5 , 2 6 , 27 Line ( 2 8 ) ={21 ,25}; Line ( 2 9 ) ={22 ,27}; Line ( 3 0 ) ={23 ,32}; Line ( 3 1 ) ={24 ,37}; Line Line Line Line Loop ( 2 1 ) ={20 ,29 , 24 , 28}; Loop ( 2 2 ) ={21 ,30 , 25 , 29}; Loop ( 2 3 ) ={22 ,31 , 26 , 30}; Loop ( 2 4 ) ={23 ,28 , 27 , 31};

// deuxieme t r o n c o n Dilate {{6 ,0 , 1} ,0.5}{ Translate {2 ,0 ,0}{ D u p l i c a t a { L ine { 2 4 , 2 5 , 2 6 , 2 7 } ; } } } // r e f s p o i n t s 3 8 , 3 9 , 4 0 , 4 5 , 50 // r e f s c i r c l e 3 2 , 3 3 , 3 4 , 35 Line ( 3 6 ) ={25 ,38}; Line ( 3 7 ) ={27 ,40}; Line ( 3 8 ) ={32 ,45}; Line ( 3 9 ) ={37 ,50}; Line Line Line Line Loop ( 2 5 ) ={24 ,37 , 32 , 36}; Loop ( 2 6 ) ={25 ,38 , 33 , 37}; Loop ( 2 7 ) ={26 ,39 , 34 , 38}; Loop ( 2 8 ) ={27 ,36 , 35 , 39};

// t r o i s i e m e t r o n c o n Translate {4 ,0 ,0}{ D u p l i c a t a { L ine { 3 2 , 3 3 , 3 4 , 3 5 } ; } } // r e f s p o i n t s 5 1 , 5 2 , 5 3 , 5 8 , 63 // r e f s c i r c l e 4 0 , 4 1 , 4 2 , 43 26

Line ( 4 4 ) ={38 ,51}; Line ( 4 5 ) ={40 ,53}; Line ( 4 6 ) ={45 ,58}; Line ( 4 7 ) ={50 ,63}; Line Line Line Line Line Loop ( 2 9 ) = { 4 0 , 4 1 , 4 2 , 4 3 } ; Loop ( 3 0 ) ={32 ,45 , 40 , 44}; Loop ( 3 1 ) ={33 ,46 , 41 , 45}; Loop ( 3 2 ) ={34 ,47 , 42 , 46}; Loop ( 3 3 ) ={35 ,44 , 43 , 47};

// deuxieme t u y e r e Symmetry {1 ,0 ,0 , 5}{ Translate {0 ,0 ,2}{ D u p l i c a t a { L ine { 2 0 , 2 1 , 2 2 , 2 3 , 2 4 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47};} } } // p r e m i e r t r o n c o n // r e f s p o i n t s 6 4 , 6 5 , 6 6 , 7 1 , 7 6 , 8 4 , 8 5 , 8 6 , 9 1 , 96 // r e f s c i r c l e 4 8 , 4 9 , 5 0 , 5 1 , 5 2 , 5 3 , 5 4 , 55 // r e f s l i g n e s 5 6 , 5 7 , 5 8 , 59 Line Loop ( 4 0 ) = { 4 8 , 4 9 , 5 0 , 5 1 } ; Line Loop ( 4 1 ) ={48 , 56 , 52 ,57}; Line Loop ( 4 2 ) ={49 , 57 , 53 ,58}; Line Loop ( 4 3 ) ={50 , 58 , 54 ,59}; Line Loop ( 4 4 ) ={51 , 59 , 55 ,56}; // deuxieme t r o n c o n // r e f s p o i n t s 1 2 0 , 1 2 1 , 1 2 2 , 1 2 7 , 132 // r e f s c i r c l e 6 0 , 6 1 , 6 2 , 63 // r e f s l i g n e s 6 4 , 6 5 , 6 6 , 67 Line Loop ( 4 5 ) ={52 , 64 , 60 ,65}; Line Loop ( 4 6 ) ={53 , 65 , 61 ,66}; Line Loop ( 4 7 ) ={54 , 66 , 62 ,67}; Line Loop ( 4 8 ) ={55 , 67 , 63 ,64}; // t r o i s i e m e t r o n c o n 27

// r e f s p o i n t s 1 5 6 , 1 5 7 , 1 5 8 , 1 6 3 , 168 // r e f s c i r c l e 6 8 , 6 9 , 7 0 , 71 // r e f s l i g n e s 7 2 , 7 3 , 7 4 , 75 Line Loop ( 4 9 ) = { 6 8 , 6 9 , 7 0 , 7 1 } ; Line Loop ( 5 0 ) ={60 , 72 , 68 ,73}; Line Loop ( 5 1 ) ={61 , 73 , 69 ,74}; Line Loop ( 5 2 ) ={62 , 74 , 70 ,75}; Line Loop ( 5 3 ) ={63 , 75 , 71 ,72}; // d e f d e s s u r f a c e s // b a s e s du c y l i n d r e p r i n c i p a l Plane S u r f a c e ( 1 ) = { 1 , 2 0 , 4 9 } ; Plane S u r f a c e ( 2 ) = { 2 , 2 9 , 4 0 } ; // f a c e s du c y l i n d r e p r i n c i p a l Ruled S u r f a c e ( 3 ) ={3}; Ruled S u r f a c e ( 4 ) ={4}; Ruled S u r f a c e ( 5 ) ={5}; Ruled S u r f a c e ( 6 ) ={6}; // f a c e s de l a p r e m i e r e t u y e r e Ruled S u r f a c e ( 2 1 ) ={21}; Ruled S u r f a c e ( 2 2 ) ={22}; Ruled S u r f a c e ( 2 3 ) ={23}; Ruled S u r f a c e ( 2 4 ) ={24}; Ruled S u r f a c e ( 2 5 ) ={25}; Ruled S u r f a c e ( 2 6 ) ={26}; Ruled S u r f a c e ( 2 7 ) ={27}; Ruled S u r f a c e ( 2 8 ) ={28}; Ruled S u r f a c e ( 3 0 ) ={30}; Ruled S u r f a c e ( 3 1 ) ={31}; Ruled S u r f a c e ( 3 2 ) ={32}; Ruled S u r f a c e ( 3 3 ) ={33}; // f a c e s de l a deuxieme t u y e r e Ruled S u r f a c e ( 4 1 ) ={41}; Ruled S u r f a c e ( 4 2 ) ={42}; Ruled S u r f a c e ( 4 3 ) ={43}; Ruled S u r f a c e ( 4 4 ) ={44}; Ruled S u r f a c e ( 4 5 ) ={45}; Ruled S u r f a c e ( 4 6 ) ={46}; Ruled S u r f a c e ( 4 7 ) ={47}; Ruled S u r f a c e ( 4 8 ) ={48}; Ruled S u r f a c e ( 5 0 ) ={50}; 28

Ruled S u r f a c e ( 5 1 ) ={51}; Ruled S u r f a c e ( 5 2 ) ={52}; Ruled S u r f a c e ( 5 3 ) ={53}; // d e f du volume S u r f a c e Loop ( 1 ) = { 1 , 2 , 3 , 4 , 5 , 6 } ; // c y l i n d r e p r i n c i p a l S u r f a c e Loop ( 2 ) = { 2 1 , 2 2 , 2 3 , 2 4 , 2 5 , 2 6 , 2 7 , 2 8 , 3 0 , 3 1 , 3 2 , 3 3 } ; // t u y e r e 1 S u r f a c e Loop ( 3 ) = { 4 1 , 4 2 , 4 3 , 4 4 , 4 5 , 4 6 , 4 7 , 4 8 , 5 0 , 5 1 , 5 2 , 5 3 } ; // t u y e r e 2 Volume ( 1 ) = { 1 , 2 , 3 } ;

4.64.6.1

Maillages structurs par extrusion eMaillage prismatique dans un prisme

Cet exemple vise ` montrer comment gnrer un maillage prismatique a e e rgulier, ` laide des commandes Extrude et Recombine dans un domaine e a prismatique. La commandes Layers permet dans cet exemple de spcier e non seulement que le maillage surfacique sera lui-aussi lobjet de la transformation, mais aussi le nombre de surfaces cres par extrusion. Il ee sagit ici dextrusion par translation. l c =0.1; // d e f i n i t i o n du t r i a n g l e de b a s e Po i nt ( 1 ) ={0 ,0 ,0 , l c } ; Po i nt ( 2 ) ={1 ,0 ,0 , l c } ; Po i nt ( 3 ) ={1 ,1 ,0 , l c } ; Line ( 1 ) ={1 ,2}; Line ( 2 ) ={2 ,3}; Line ( 3 ) ={3 ,1}; // d e f i n i t i o n de l a s u r f a c e de b a s e Line Loop ( 1 ) = { 1 , 2 , 3 } ; Plane S u r f a c e ( 1 ) ={1}; // g e n e r a t i o n du volume par e x t r u s i o n par t r a n s l a t i o n Extrude {0 ,0 , 1}{ S u r f a c e { 1 } ; L a y e r s { 8 } ; Recombine ; }

29

Figure 13 Visualisation du maillage prismatique gnr dans un prisme e ee sous 2 angles de vue. 30

4.6.2

Maillage rgulier dans un cne e o

Cet exemple vise ` montrer comment gnrer des mailles pyramidales a e e ` dans un cne. A linverse des prismes, il nest pas possible de gnrer un o e e maillage constitu uniquement de mailles pyramidales. Dans cet exemple, e on va trouver des ttra`dres, des prismes et des pyramides. Il sagit ici e e dextrusion par rotation. l c =0.2; // d e f i n i t i o n du t r i a n g l e de b a s e Po i nt ( 1 ) ={0 ,0 ,0 , l c } ; Po i nt ( 2 ) ={1 ,0 ,0 , l c } ; Po i nt ( 6 ) ={0 ,0 ,3 , l c } ; Line ( 1 ) ={1 ,2}; Line ( 2 ) ={2 ,6}; Line ( 3 ) ={6 ,1}; // d e f i n i t i o n de l a s u r f a c e Line Loop ( 4 ) = { 2 , 3 , 1 } ; Plane S u r f a c e ( 5 ) ={4}; // d e f i n i t i o n du volume par successives Extrude { { 0 , 0 , 1 } , { 0 , 0 , 0 } , L a y e r s { 2 4 } ; Recombine ; } Extrude { { 0 , 0 , 1 } , { 0 , 0 , 0 } , L a y e r s { 2 4 } ; Recombine ; } Extrude { { 0 , 0 , 1 } , { 0 , 0 , 0 } , L a y e r s { 2 4 } ; Recombine ; } e x t r u s i o n par r o t a t i o n s 2 Pi /3} { S u r f a c e { 5 } ; 2 Pi /3} { S u r f a c e { 1 7 } ; 2 Pi /3} { S u r f a c e { 2 9 } ;

Remarque : Comme nous avons pu le voir avec les commandes de transformation gomtrique, Gmsh numrote lui-mme les lments crs. e e e e ee ee Ici, on aurait pu sattendre que la derni`re surface gnre par extrusion ait e e ee une rfrence dcale du nombre de calques (ici, 5+16=21). Or, le dcalage ee e e e est de 12, quelle que soit la valeur passe en arguments de Layers. e Remarque 2 : La valeur de langle de rotation nest pas anodine. Si elle peut tre ngative ou suprieure ` en thorie, il faut savoir quen interne, e e e a e cet angle est ramen modulo 2 dans lintervalle ], ]. Par exemple, crire e e 3/2 ou /2 donne le mme rsultat. e e Par ailleurs, il nest pas possible de gnrer le cne avec 2 extrusions e e o dangle , il ne gn`re quun demi-cne. Cest la raison pour laquelle nous e e o avons procd en 3 tapes. e e e 31

Figure 14 Visualisation du maillage rgulier gnr dans un cne sous 2 e e ee o angles de vue. 32