Octree cubos a tetraedros

8

Estoy tratando de aprender más sobre el mallado de volumen y he decidido implementar un simple mallador de volumen. La estrategia que he elegido es subdividir mi espacio usando un octree, refinado basado en algunos criterios. Me he asegurado de que mi octree esté equilibrado, de modo que la diferencia entre dos celdas vecinas no sea más de 1 (la llamada regla 2: 1).

Ahora tengo que cortar mis células en tetraedros. He leído que Body Centered Cubic (BCC) es una forma popular de hacer esto, pero desafortunadamente no he encontrado ninguna literatura que explique bien cómo manejar las diferencias entre dos cubos vecinos de diferentes niveles.

También he visto que cortar cubos en 6 tetras como se muestra a continuación es común, pero nuevamente no he encontrado nada que explique cómo manejar cubos de diferentes niveles:

http://www.ics.uci.edu/~eppstein/projects/tetra/sixcube.gif

Le agradecería si alguien pudiera explicar cómo los cubos Octree deberían cortarse en tetras o quizás referirme a un documento / presentación sobre este tema.

WesDec
fuente

Respuestas:

2

Puedes hacerlo de dos maneras diferentes:

  • Acepta que su malla tiene nodos colgantes: al igual que las celdas de su octree tienen una relación 2: 1 donde se refina, puede tener el mismo tipo de relación 2: 1 para mallas de tet. Si realiza el refinamiento isotrópico (BCC) de hexahedra en tets, entonces la relación 2: 1 entre las células adyacentes del octree también se hereda de los tets.

  • Si no desea colgar nodos, puede realizar un paso posterior al procesamiento. Suponga que ha realizado el refinamiento de BCC, entonces puede haber tiendas adyacentes que difieren en tamaño por un factor de 2. Solo tiene que refinar las más grandes de tal manera que ahora coincidan con sus vecinos más pequeños. Cómo hacer esto es fácil de entender en una hoja de papel en el segundo caso. En 3d es un poco más complicado, pero verás que puedes refinar un tet anisotrópicamente de tal manera que coincida con sus vecinos.

Wolfgang Bangerth
fuente
Los nodos colgantes no están permitidos. Tienes razón en que resolver esto en 2d es muy simple pero en 3d se complica. ¿Me puede referir a un documento que explica el refinamiento de la BBC y cómo lidiar con los nodos colgantes?
WesDec
No lo siento. Soy un tipo hexaedro. No tengo la literatura tet a mano. Puede encontrar algo en el libro de Graham Carey's Grids.
Wolfgang Bangerth
1

Encontré los siguientes documentos que describen claramente cómo hacer una malla BCC y cómo manejar los nodos colgantes:

Generación de malla tetraédrica adaptativa y de calidad

Relleno de isosuperficie

La siguiente presentación, además de describir BCC, también describe el Cubo centrado en la cara (FCC): Malla tetraédrica óptima sin consolidar

WesDec
fuente
El papel de relleno de isosuperficie de Shewchuk es realmente bueno. Iba a publicarlo antes de desplazarme hacia abajo y ver esto.
Nick Alger