2011-11-21 3 views
6

J'essaie de créer un maillage quadrilatéral à partir d'un maillage surfacique (le plus souvent triangulaire) généré par Mathematica. Je ne cherche pas de mesher de haute qualité mais un simple algorithme de travail. J'utilise GMSH pour le faire en externe. Nous pouvons utiliser les capacités d'importation CAO de Mathematic pour générer des géométries 3D comprises par le noyau Mathematica.Création d'un maillage quadrilatéral à partir du maillage surfacique Mathematica

Nous pouvons voir les objets Geometry3D importés et les tracés du nombre de côtés dans chacun des polygones qu'ils contiennent. Il devient visible que les polygones qui forment le maillage ne sont pas toujours des triangles.

Name3D=RandomChoice[ExampleData["Geometry3D"][[All,2]],6]; 
AllPic= 
    Table[ 
    Vertex=ExampleData[{"Geometry3D",Name3D[[i]]},"VertexData"]; 
    Polygons=ExampleData[{"Geometry3D",Name3D[[i]]},"PolygonData"]; 
    GraphicsGrid[ 
    {{ListPlot[#,Frame-> True,PlotLabel->Name3D[[i]] ]&@(Length[#]&/@Polygons), 
    Graphics3D[GraphicsComplex[Vertex,Polygon[Polygons]],Boxed-> False]}} 
    ,ImageSize-> 300,Spacings-> {0,0}], 
    {i,1,[email protected]}]; 
GraphicsGrid[Partition[AllPic,2],Spacings-> {0,0}] 

enter image description here

Maintenant, ce que je cherche est un algorithme pour former un maillage quadrangulaire à partir de ces informations de polygone disponibles pour MMA. Toute solution facile est la bienvenue. Par solution facile, je veux dire qui ne va pas fonctionner dans un cadre très général (où le maillage constitue des polygones avec des côtés de plus de 5 ou 6) et qui pourrait être assez inefficace par rapport aux logiciels commerciaux. Mais on peut voir qu'il n'y a pas beaucoup de générateur de maille de surface quadrilatérale disponible à part quelques rares commerciaux.

BR

+2

Vous cherchez un maille pleine (hexahedra/briques) ou un maillage de surface (quads)? Comment voulez-vous traiter les triangles qui ressemblent à ceci: Graphics3D [ GraphicsComplex [{{0, 0, 0.5}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0} }, Polygon [{{1, 2, 3}, {3, 4, 1}}]] - il est probable que vous ayez besoin d'un test normal. Et que faire des triangles entrecroisés comme indiqué au bas de http://reference.wolfram.com/mathematica/TetGenLink/tutorial/UsingTetGenLink.html. Le "SpaceShuttle" est étanche. Pourriez-vous télécharger une image d'un résultat fait avec GMSH de, disons, la vache? –

+0

Si vous voulez la surface quadruple l'algorithme qmorph pourrait être une base: pages.cs.wisc.edu/~csverma/CS899_09/qmorph.pdf –

+0

Envisagez-vous des solutions comme la suppression du côté partagé d'un ensemble à deux triangles? –

Répondre

0

cela produira quads, indépendamment de la topologie d'entrée:

  • insérer un sommet dans le centre de chaque face
  • insérer un sommet au point milieu de chaque bord
  • insert arêtes reliant le sommet central de chaque face avec les sommets des points médians des arêtes
Questions connexes