2008-10-08 8 views
7

Je suis intéressé à lire et comprendre les algorithmes de maillage 2D. Une recherche sur Google révèle a lot of papers and sources, mais la plupart sont trop académiques et pas beaucoup du côté des débutants. Donc, est-ce que quelqu'un ici pourrait recommander des sources de lecture (adaptées aux débutants), ou une implémentation open source que je peux apprendre dès le début? Merci.A Lire sur l'algorithme de maillage et la bibliothèque de maillages

De plus, par rapport à la génération de maillage triangulaire, j'ai plus d'intérêt pour le maillage quadrilatère et le maillage mixte (quad et tri combiné).

Répondre

5

Je seconde la réponse de David concernant le site Jonathan Shewchuk's comme un bon point de départ.

En termes de logiciel open source, cela dépend de ce que vous recherchez exactement.

  • Si vous êtes intéressé par la génération de maillages, vous pouvez jeter un oeil au code CGAL. Comprendre les parties de bas niveau du code de CGAL est trop pour un débutant. Cependant, avoir un regard sur les algorithmes de niveau supérieur peut être très intéressant même pour un débutant. Notez également que le documentation of CGAL est très détaillé.
  • Vous pouvez également regarder TetGen, mais son code source est monolithique et n'est pas documenté (il s'agit plus d'un logiciel d'utilisateur final que d'une bibliothèque, même s'il peut également être appelé simplement à partir d'autres programmes). Pourtant, il est assez lisible, et le user manual contient une courte présentation de la génération de maillage, avec quelques références. Si vous êtes également intéressé par le traitement de maillage, vous pouvez regarder OpenMesh.

Plus d'informations sur vos objectifs vous aideront à fournir des pointeurs plus pertinents.

5

Le premier lien de votre recherche Google vous amène au site Jonathan Shewchuk's. Ce n'est pas vraiment un mauvais endroit pour commencer. Il a un programme appelé triangle que vous pouvez télécharger pour la triangulation 2D. Sur cette page, vous trouverez un link aux références utilisées dans creating triangle, qui inclut un lien vers la description du triangluation algorithm.

Il existe plusieurs méthodes de génération de maillage. L'un des plus communs est de créer un Delaunay triangulation. Trianguler un ensemble de points est assez simple et il y a plusieurs algorithmes qui font cela, y compris Watson et Rupert's comme utilisé dans le triangle Lorsque vous voulez créer une triangulation contrainte, où les bords de la triangulation correspondent aux bords de votre forme d'entrée, il est un peu plus difficile, car vous avez besoin de récupérer certains bords. Je commencerais par comprendre la triangulation de Delaunay. Alors peut-être regarder quelques-uns des autres algorithmes de maillage.

Certains des sujets communs que vous trouverez dans les documents de création de maillages sont

  • Robustesse - qui est de savoir comment traiter les erreurs à virgule flottante d'arrondi.
  • Qualité de la maille - s'assurer que les formes des triangles/tétraèdres sont proches de l'équilatéral. Que cela soit important dépend de la raison pour laquelle vous créez le maillage. Pour le travail d'analyse, il est très important,
  • Comment choisir où insérer les nœuds dans le maillage pour donner une bonne distribution de maillage.
  • Vitesse de maillage
  • Génération quadrilatérale/maillée hexaédrique. C'est plus difficile que d'utiliser des triangles/tétraèdres.

génération de maillage 3D est beaucoup plus difficile que 2D donc beaucoup des documents sont sur la génération 3D

génération Mesh est un grand sujet. Il serait utile de donner plus d'informations sur les aspects (par exemple 2D ou 3D) qui vous intéressent. Si vous pouvez donner une idée de ce que vous avez à faire, peut-être puis-je trouver de meilleures sources d'informations.

+0

Je seconde ceci. La qualité du maillage est importante si vous utilisez le maillage pour approximer les fonctions: l'erreur d'approximation (en norme H^1, c'est-à-dire en tenant compte de l'erreur quadratique moyenne du gradient) dépend de l'épaisseur des triangles: les rayons de leur cercle intérieur vers leur cercle extérieur. Les triangles équilatéraux sont les meilleurs, mais quand les points sont fixes c'est trop demander, et la triangulation de Delaunay consiste à obtenir la meilleure triangulation étant donné les sommets. –

+0

La robustesse est difficile à obtenir. J'ai quelques documents à ce sujet, mais il est principalement technique de twittling bit pour obtenir la bonne précision quand il est important. Vous voyez naturellement les problèmes qui se posent avec l'erreur d'arrondi lorsque vous étudiez la triangulation de Delaunay, et ensuite, vous comprenez que vous ne devriez pas l'écrire vous-même. –