• Nenhum resultado encontrado

M´ etodo de Volumes Finitos Espectrais

6.6 Adequa¸ c˜ ao da Mate Face ao Particionamento

Neste se¸c˜ao ser´a mostrada a altera¸c˜ao necess´aria na estrutura de dados Mate Face para representar o particionamento gerado pelo m´etodo de volumes finitos espectrais.

Esta altera¸c˜ao foi feita estendendo-se a estrutura de dados de forma a comportar os novos tipos de elementos necess´arios ao m´etodo de volumes finitos espectrais.

Como j´a visto, o SFV divide a malha em volumes de controle. Estes volumes s˜ao divis˜oes internas de cada volume espectral da malha. Como explicado nas se¸c˜oes an-teriores, o n´umero de divis˜oes em cada c´elula depende da ordem escolhida do m´etodo, sendo utilizadas aqui as ordens dois, trˆes e quatro.

Com essa divis˜ao, os novos elementos formados na malha pelos volumes de controle podem ser quadrados, pent´agonos e at´e hex´agonos, sendo que a malha se torna h´ıbrida, ou seja, composta por elementos diferentes.

O desafio aqui foi modificar a estrutura da Mate Face, pois ela n˜ao suporta todos os tipos de elementos necess´arios ao m´etodo espectral. Assim, foi feita uma extens˜ao na estrutura de modo a conciliar estes novos elementos e possibilitar a realiza¸c˜ao de buscas a esses elementos.

A extens˜ao proposta na estrutura pode ser visualizada na Figura 6.3. Na figura,

6.6 Adequa¸c˜ao da Mate Face ao Particionamento 171 os tipos de dados acrescentados est˜ao organizados abaixo da linha tracejada. De um modo geral, foram acrescentadas duas classes para representar os dados necess´arios para a nova malha utilizada. Na estrutura estendida, cada c´elula da Mate Face (volume espectral) possui uma associa¸c˜ao para um objeto c´elulaEspectral, que ir´a armazenar os volumes de controle (as c´elulas subdivididas). Todas as novas arestas criadas pela divis˜ao foram representadas em um conjunto separado, chamadas de arestas espectrais.

Figura 6.3: Classes da estrutura Mate Face estendida para o m´etodo SFV.

Pela Figura 6.3, cada c´elulaEspectral define a subdivis˜ao das c´elulas internas ao volume espectral. Ela armazena suas coordenadas espaciais emcvCoords e a forma¸c˜ao dos elementos na matrizc´elulas, onde ir´a indicar quais v´ertices fazem parte das c´elulas

internas (chamadas de volumes de controle). O n´umero de v´ertices que cada c´elula criada possui ´e armazenado no vetor numVertCels, uma vez que este n´umero depende da ordem espectral utilizada para construir os elementos, pois s˜ao formados elementos de diferentes tipos. Al´em disso, foi necess´ario criar uma identifica¸c˜ao global para cada v´ertice e cada c´elula criada para facilitar as buscas na estrutura e definir as propriedades da nova malha, como ´areas, centroides, entre outros. Os vetoresgidNodes egidCells armazenam estas informa¸c˜oes, respectivamente.

Ainda na Figura 6.3, foi necess´ario fazer o tratamento nas arestas da nova malha.

Como as c´elulas criadas internamente possuem arestas ligadas pelos v´ertices internos ao volume espectral, estas devem ser mapeadas ao conjunto de arestas, mas nesse caso como arestas espectrais. Assim, temos dois conjuntos de arestas, as originais e as formadas pelas subdivis˜oes. As arestas espectrais armazenam os v´ertices espectrais da extremidade da aresta e os identificadores para os volumes de controle esquerdo e direito da aresta.

As informa¸c˜oes das arestas foram mantidas globais e n˜ao locais em cada c´elula pois existem arestas espectrais que est˜ao localizadas no contorno da c´elula, como pode ser visualizada na Figura 6.4, que mostra um exemplo de uma malha com suas c´elulas subdivididas por um esquema de ordem dois.

0

1

2 5

6 4

0 1

2

7

9

8 3 4

5

10 3

Figura 6.4: Exemplo de malha com subdivis˜oes dos volumes espectrais.

As arestas no contorno das volumes espectrais s˜ao compartilhadas por c´elulas

6.6 Adequa¸c˜ao da Mate Face ao Particionamento 173 vizinhas, bem como suas arestas espectrais. Na Figura 6.4, tem-se duas c´elulas que foram subdivididas em seis c´elulas, formando novos elementos e novas arestas. No exemplo, vemos que a aresta 1–8 ´e adjacente aos volumes de controle 1 e 4, esta informa¸c˜ao deve ser armazenada em um objeto do tipoarestaEspectral e pertencer ao conjunto deste tipo de aresta na estrutura.

A montagem da lista das arestas espectrais pode ser feita em dois processos.

Processam-se as arestas internas de cada c´elula, uma vez que estas n˜ao possuem re-ferˆencias a c´elulas vizinhas externas mas sim aos volumes de controle internos. Ap´os este processamento, as pr´oprias arestas organizadas na Mate Face s˜ao processadas, realizando-se as divis˜oes nas arestas e registrando-se as vizinhan¸cas necess´arias de cada aresta espectral, utilizando a vizinhan¸ca da aresta j´a existente na Mate Face in-dicando o volume espectral vizinho para se procurar os volumes de controle vizinhos.

Por exemplo, na Figura 6.4, o volume de controle 3 vizinho `a direita da aresta 2–8 est´a contido no volume espectral referente `a c´elula vizinha a direita da aresta 2–1, j´a indexada na Mate Face. Isso facilita o gerenciamento e ordena¸c˜ao das arestas criadas.

O processo de cria¸c˜ao dos n´umeros identificadores globais depende de cada ordem espectral escolhida. Utilizando o exemplo mostrado na Figura 6.4, tem-se que a sequˆencia da numera¸c˜ao continua ap´os todos os v´ertices e c´elulas originais sejam numerados na Mate Face.

Assim, a numera¸c˜ao dos v´ertices espectrais ´e feita da seguinte forma. Todos os v´ertices criados no interior da c´elula variam dentro da sequˆencia: {NumVert,NumVert + NumCel}, onde NumVert ´e o n´umero de v´ertices na Mate Face, e NumCel ´e o n´umero de c´elulas na Mate Face, uma vez que existe um ´unico v´ertice criado no interior da c´elula na Mate Face. Os demais v´ertices est˜ao localizados nas arestas da Mate Face, e sua numera¸c˜ao seguem a sequˆencia: {NumVert + NumCel, NumVert + NumCel + NumArestas}, onde NumArestas indica o n´umero de arestas na Mate Face. A sequˆencia de numera¸c˜ao segue este procedimento e como em C++ os ´ındices come¸cam em zero, n˜ao h´a necessidade de somar um `a essas vari´aveis que definem

cada sequˆencia. A mesma analogia ´e usada na numera¸c˜ao dos elementos formados por ordens espectrais 3 e 4, sendo que nestes o n´umero de v´ertices internos `a c´elula e nas arestas ´e maior.

O processo de numera¸c˜ao dos volumes de controle ´e realizado de acordo com a ordem espectral escolhida. Por exemplo, uma c´elula pode ser divida em 3, 6 ou 10 volumes de controle, dependendo da ordem espectral, como mostra a Figura 6.5.

Todos volumes de controle criados s˜ao mantidos e acessados a partir das c´elulas originais na Mate Face (os volumes espectrais). E al´em da numera¸c˜ao ser ´unica para cada volume de controle criado, para poder identificar globalmente as propriedades como centroide e ´area, ´e necess´ario manter as associa¸c˜oes entre os volumes espectrais e seus volumes de controle. Para isso, bastou manter um vetor de correspondˆencia entre c´elulas, como pode ser vista na Figura 6.5. Pela figura, temos que a rela¸c˜ao entre as c´elulas referencia a qual c´elula original (volume espectral) um volume de controle est´a contido. Isso ´e importante pois no m´etodo SFV esta informa¸c˜ao ´e necess´aria para o c´alculo do res´ıduo, mediante o m´etodo de reconstru¸c˜ao do elemento.

Como o particionamento da malha ´e diferente para cada ordem espectral escolhida, foi realizado um esquema de hashing para generalizar o acesso e o armazenamento das novas informa¸c˜oes na extens˜ao da Mate Face. Para montar este esquema, pri-meiramente foi feita uma identifica¸c˜ao local em cada tipo de c´elula. Isso ´e poss´ıvel pois todas as c´elulas subdivididas s˜ao de um mesmo tipo, dada sua ordem espectral.

Assim, foi realizada uma rotula¸c˜ao de todos os v´ertices e c´elulas criados, de modo que facilitasse o acesso `as informa¸c˜oes de vizinhan¸ca e forma¸c˜ao das c´elulas.

A rotula¸c˜ao dos v´ertices e c´elulas foi feita de modo que n˜ao houvesse repeti¸c˜ao de r´otulos num mesmo conjunto e que fosse intuitivo determinar qual o v´ertice ou a c´elula baseando-se apenas em seu r´otulo. A Figura 6.6 mostra todas as rotula¸c˜oes definidas. Al´em disso, como o n´umero de c´elulas e v´ertices criados em cada volume espectral ´e pequeno, justifica-se a abordagem de estrutura¸c˜ao interna na c´elula de suas subdivis˜oes, uma vez que o tamanho m´aximo dos vetores internos ´e definido como o

6.6 Adequa¸c˜ao da Mate Face ao Particionamento 175

Figura 6.5: Associa¸c˜ao entre volumes espectrais e volumes de controle para os parti-cionamentos de segunda, terceira e quarta ordem de precis˜ao.

m´aximo valor na tabela hash.

Deste modo, a Figura 6.6 mostra as rotula¸c˜oes feitas nos v´ertices e c´elulas re-sultantes da divis˜ao da c´elula original (volume espectral), de acordo com a ordem espectral escolhida no m´etodo. A Figura 6.6(a) mostra a rotula¸c˜ao feita em um

vo-0

Figura 6.6: Rotula¸c˜oes realizadas nos volumes de controle para identifica¸c˜ao interna.

lume espectral de ordem espectral 2, a Figura 6.6(b) mostra a rotula¸c˜ao com ordem espectral 3 e por fim a Figura 6.6(c) mostra a rotula¸c˜ao com ordem espectral 4.

Os r´otulos dos v´ertices s˜ao independentes dos r´otulos das c´elulas, pois s˜ao identi-ficadores para objetos diferentes. Na Figura 6.6, os r´otulos na cor verde indicam os chamados v´ertices espectrais, enquanto os r´otulos vermelhos indicam os volumes de controle.

A gera¸c˜ao dos r´otulos tem rela¸c˜ao com a proximidade do v´ertice original o qual o v´ertice espectral se encontra. Por exemplo, na Figura 6.6(a), o v´ertice “012” fica no centro da c´elula, equidistante dos v´ertices originais, enquanto que o v´ertice “01” fica na aresta entre os v´ertices 0 e 1, equidistante aos dois. J´a na Figura 6.6(b) temos v´ertices

6.6 Adequa¸c˜ao da Mate Face ao Particionamento 177 internos que s˜ao diferentes aos anteriores, que foram configurados com quatro d´ıgitos para sua identifica¸c˜ao ´unica. Um exemplo ´e o v´ertice “0012”, ele recebeu este r´otulo por estar no interior da c´elula, por´em mais pr´oximo do v´ertice 0 do que os demais. De maneira an´aloga s˜ao definidos os v´ertices “0122” e “0211”. A Figura 6.6(c) mostra a divis˜ao de ordem 4 espectral de um triˆangulo, onde a rotula¸c˜ao ´e mais complexa devido ao maior n´umero de v´ertices e c´elulas criadas. Para a rotula¸c˜ao, usou-se at´e 5 d´ıgitos para manter a analogia de proximidade aos v´ertices originais para rotula¸c˜ao dos v´ertices criados. Para todos os casos, a mesma analogia foi realizada para a rotula¸c˜ao das c´elulas criadas, indicadas na cor vermelha.

A tabelahash foi constru´ıda reunindo-se e ordenando-se todos os r´otulos existentes, baseando-se no n´umero de d´ıgitos usados na rotula¸c˜ao. Ela pode ser vista na Tabela 6.2.

R´otulo ´Indice

I0 0

I1 1

I2 2

I01 3

I02 4

I12 5

I001 6

I002 7

I011 8

I012 9

I022 10

I112 11

I122 12

I0012 13 I0122 14 I0211 15 I1102 16 I00012 17 I00112 18 I00221 19 I01122 20 I01222 21 I11102 22

Tabela 6.2: Rela¸c˜ao dos r´otulos e suas posi¸c˜oes