Triangle
Ce petit programme, écrit en C, permet de mailler par des triangles un domaine bidimensionnel (avec ou sans trous). La génération de base des triangles est effectuée par une triangulation de Delaunay à partir d'un nuage de points. Il est également possible de générer le diagramme de Voronoi, de contraindre le maillage à utiliser certaines arêtes ou certains points via un PSLG (Planar Straight Line Graph) et de faire du raffinement de maillage local.
Ce logiciel est très facile à compiler et à utiliser en ligne de commande. Deux commandes sont à la disposition des utilisateurs : "triangle" pour mailler et "showme" pour visualiser les maillages créés.
Efficace et très basique, il peut être utilisé pour des calculs 2D et il convient bien pour des étudiants n'ayant jamais utilisé de mailleurs auparavant.
Pour décrire le domaine à mailler, on donne en entrée un fichier .poly (ou éventuellement un fichier .node) contenant une description des contours du domaine et éventuellement des trous ou régions à labelliser de façon spécifique.
Après exécution de la commande triangle, on obtient les fichiers suivants :
- un fichier .poly complété,
- un fichier .node contenant les coordonnées, attributs et marqueurs de frontière de chaque sommet,
- un fichier .ele contenant les numéros des sommets et les attributs de chaque triangle,
- un fichier .area contenant l'aire de chaque triangle,
- un fichier .edge contenant les numéros des sommets et les marqueurs de frontière de chaque arête,
- un fichier .neigh contenant les numéros des 3 triangles voisins de chaque triangle.
Exemple : pour mailler un carré on écrit un fichier carre.poly contenant
4 2 0 1 #nb_sommets dimension=2 attributs marqueur_frontiere=0ou1
1 0 0
2 0 1
3 1 0
4 1 1
4 2 1 # nb_segments dimension=2 marqueur_frontiere=0ou1
1 1 2
2 2 4
3 4 3
4 3 1
0 # nb_trous
et on utilise la commande "triangle -qevnpa.001 carre.poly" pour obtenir un maillage constitué de triangles d'aire maximale 0.001...
- Génération de maillage triangulaire 2D
- Enseignement
C'est un logiciel très élémentaire, quelques lignes écrites en langage C, pas d'interopérabilité avec d'autres mailleurs, pas d'interface utilisateur,... C'est aussi ce qui peut faire sa force lorsque l'on cherche quelque chose de simple.