Cubos de Octree em tetraedros

8

Estou tentando aprender mais sobre a malha de volume e decidi tentar implementar uma simples malha de volume. A estratégia que escolhi é subdividir meu espaço usando uma octree, refinada com base em alguns critérios. Verifiquei se meu octree está equilibrado, de modo que a diferença entre duas células vizinhas não seja maior que 1 (a chamada regra 2: 1).

Agora tenho que cortar minhas células em tetraedros. Eu li que o Cubo Centrado no Corpo (CBC) é uma maneira popular de fazer isso, mas infelizmente não encontrei nenhuma literatura que explique bem como lidar com as diferenças entre dois cubos vizinhos de níveis diferentes.

Também vi que é comum cortar cubos em 6 tetras, como mostrado abaixo, mas novamente não encontrei nada explicando como lidar com cubos de diferentes níveis:

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

Eu apreciaria se alguém pudesse explicar como os cubos de Octree devem ser cortados em tetras ou talvez me encaminhe para um artigo / apresentação sobre esse assunto.

WesDec
fonte

Respostas:

2

Você pode fazer isso de duas maneiras diferentes:

  • Você aceita que sua malha tenha nós suspensos: assim como as células do seu octree têm um relacionamento 2: 1 onde é refinado, você pode ter o mesmo tipo de relacionamento 2: 1 para malhas tet. Se você fizer o refinamento isotrópico (BCC) da hexaedra em tets, a relação 2: 1 entre células adjacentes da octree também será herdada dos tets.

  • Se você não quiser nós suspensos, poderá executar uma etapa de pós-processamento. Suponha que você tenha feito o refinamento da Cco, então pode haver notas adjacentes que diferem em tamanho por um fator de 2. Você só precisa refinar as maiores, de forma que agora elas correspondam a seus vizinhos menores. Como fazer isso, é fácil entender em um pedaço de papel no caso 2d. Em 3d, é um pouco mais complicado, mas você verá que é possível refinar um tis anisotropicamente de forma que ele corresponda aos seus vizinhos.

Wolfgang Bangerth
fonte
Nós suspensos não são permitidos. Você está certo que resolver isso em 2D é muito simples, mas em 3D fica complicado. Você pode me indicar um artigo que explica o refinamento da BBC e como lidar com nós suspensos?
WesDec
Não desculpa Eu sou do tipo hexaedro, um cara. Eu não tenho a literatura tet em mãos. Você pode encontrar algo no livro Grids da Graham Carey.
Wolfgang Bangerth 18/09/12
1

Encontrei os seguintes documentos que descrevem claramente como fazer uma malha BCC e como lidar com os nós suspensos:

Geração de Malha Tetraédrica Adaptativa e de Qualidade

Isosurface Stuffing

A apresentação a seguir, além de descrever o CBC, também descreve o Cubo Centrado na Face (FCC): Malha Tetraédrica Ótima Não Ligada

WesDec
fonte
O papel de enchimento isosuperficial de Shewchuk é realmente bom. Eu ia postar antes de rolar para baixo e ver isso.
Nick Alger