MAP-SIM2 : Génération de maillages dans une

publicité
MAP-SIM2 : Génération de maillages dans une géométrie polygonale
sujet proposé par Nicolas Kielbasiewicz : [email protected]
20 janvier 2016
1
1.1
Triangulation d’un polygone à C sommets
Cas C = 2 : le segment
Soit P1 et P2 les extrémités d’un segment. Un maillage régulier de ce segment en N éléments est
i−1
défini par les sommets Vi vérifiant Vi = P1 +
(P2 − P1 ) , i = 1, N + 1
N
1.2
Cas C = 3 : le triangle
On va considérer dans un premier temps le triangle de référence.
Soit P1 , P2 et P3 les sommets d’un triangle rectangle en P1 et on note P1 P2 = a et P1 P3 = b.
P3
P1
P2
En considérant le même nombre de mailles N sur chacun des cotés du triangle, il existe un
algorithme très simple pour générer la liste des sommets du maillage pour obtenir un maillage triangulaire
structuré. Il suffit de commencer par mailler le segment P1 P2 , puis pour chaque point de ce maillage, de
tracer la verticale jusqu’à l’hypoténuse et de mailler ce segment qui sera d’autant plus court que le point
d’origine est loin de P1 . On en déduit un algorithme général qui tire partie ce de principe.
Algorithme 1 Calcul des coordonnées des noeuds du maillage
Entrées : P1 P2 P3 triangle isocèle rectangle de référence, N nombre de mailles sur chaque coté
1: pour i = 1, N + 1 faire
2:
pour j = 1, N + 2 − i faire
i−1
X
3:
k=j+
N +2−l
l=1
i−1
j−1
V k = P1 +
(P2 − P1 ) + +
(P3 − P1 )
N
N
5:
fin de boucle pour
6: fin de boucle pour
(N + 1) (N + 2)
Sorties : Vk , k = 1,
2
4:
Il suffit alors de construire la liste des 3 sommets de chaque maille pour obtenir la liste des triangles.
1.3
1.3.1
Cas général
L’algorithme
des oreilles
On désigne par oreille un triangle dont 2 des 3 cotés sont également des cotés du polygone.
Pour C ≥ 3, il en existe au moins une.
Si on considère un polygone orienté à N cotés, dont les sommets sont Pi alors une oreille est
finalement un triangle Pi−1 Pi Pi+1 , i = 2, N − 1.
Le principe de l’algorithme des oreilles est donc de construire le maximum d’oreilles à partir d’un
polygone, ce qui permet d’obtenir un polygone avec un nombre de cotés strictement inférieur à N . On
réitère le procédé.
P5
P8
P4
P6
P7
P1
P3
P2
En prenant l’octogone initial,, on construit les oreilles P1 P2 P3 , P4 P5 P6 , ce qui permet de traiter
lors d’une deuxième itération le pentagone P1 P3 P4 P6 P7 , pendant laquelle on construit les oreilles P1 P3 P7
et P3 P4 P6 . Il reste le polygone P3 P6 P7 , qui est un triangle. L’algorithme s’arrête.
1.3.2
Notion de triangle admissible
Il faut faire attention à ce que l’oreille considérée respecte les 2 critères suivants :
— le triangle doit être à l’intérieur du polygone. Ex : P5 P6 P7 n’est pas admissible
— aucun autre sommet du polygone ne se trouve à l’intérieur du triangle. Ex : P3 P4 P5 n’est pas
admissible
Plusieurs questions se posent :
— Comment choisir le sommet de départ à chaque itération ?
— Comment estimer la qualité du triangle construit ?
— Comment estimer si le triangle est admissible ?
— Comment améliorer la qualité de la triangulation ?
— Que faire si toutes les oreilles possible à une itération donnée sont de mauvaise qualité ?
1.3.3
Définir la qualité des triangles
Pour définir la qualité d’un triangle, on va faire appel à un critère de forme. Les critères de forme
comparent un triangle au triangle le plus régulier qu’est le triangle équilatéral. Le critère optimal est
donc atteint pour un triangle équilatéral, et le critère est nul pour les triangles dégénérés (pour lesquels
les 3 sommets sont alignés).
Il existe une infinité de critères de forme. On se concentrera sur l’un d’entre eux qui demande de
calculer le rapport entre le rayon du cercle inscrit au triangle et le rayon du cercle circonscrit au triangle.
Soit a, b et c les 3 longueurs du triangle K considéré. On note PK le demi-périmètre, SK l’aire
de K, ρK le rayon du cercle inscrit à K et rK le rayon du cercle circonscrit à K. On a les formules
suivantes :
2



PK




SK

ρK






rK
1.3.4
a+b+c
2
= PK (PK − a) (PK − b) (PK − c)
SK
=
PK
abc
=
3SK
=
(formule de Héron)
Choisir le bon sommet de départ
Estimer la qualité d’un maillage revient à sommer le critère de forme de chaque triangle du maillage.
Une façon de procéder est donc de choisir les oreilles de meilleure qualité. On commence par la
meilleure, puis la meilleure parmi les oreilles encore possibles et ainsi de suite jusqu’à ne plus pouvoir
choisir d’oreilles.
1.3.5
Améliorer la qualité de la triangulation
Une fois la triangulation obtenue, on peut améliorer la triangulation à l’aide du critère du
Delaunay : pour chaque triangle, le cercle circonscrit ne doit contenir aucun autre sommet du polygone.
C’est le cas dans la figure ci-dessous du triangle P4 P5 P6 .
Dans le cas contraire, on supprime l’arête commune aux 2 triangles considérés et on la remplace
par l’autre arête possible (l’arête P2 P7 dans le cas du triangle P1 P3 P7 ).
C456
P5
P5
P8
P8
P4
P4
P6
P6
P7
P1
P7
P3
P1
P2
P3
P2
C137
3
2
2.1
Eléments de conception
L’objet Point
Un sommet est entièrement défini par ses coordonnées. On définira la classe Point comme héritant
de la classe vector de la STL.
2.2
L’objet Polygone
Un polygone est défini par ses sommets. La classe Polygone comprendra donc entre autres un
vecteur de Point. Il contiendra aussi le résultat de sa décomposition à l’issue du déroulement de
l’algorithme des oreilles sous la forme d’un vecteur de pointeurs sur un objet Polygone.
2.3
L’objet Triangle
Un triangle est un polygone à 3 sommets. Il en découle que la classe Triangle hérite de la classe
Polygone.
2.4
L’objet Maillage
Un maillage est constitué de l’ensemble des points définissant les sommets du maillage, de
l’ensemble des triangles constitutifs de la triangulation et des éléments de bords, définis relativement à
leur parent.
3
Organisation du travail (3p)
Après s’être concerté sur la définition des classes et du prototype des fonctions, le travail pourra
être réparti de la façon suivante :
— définition des classes élémentaires Maillage, Point, Polygone et Triangle avec export du
maillage vers le format Paraview pour visualisation, ainsi que la réalisation des tests de
validation
— implémentation de l’algorithme des oreilles et du critère de Delaunay
— implémentation du maillage sur un triangle, ainsi que de la construction du maillage final
4
Téléchargement