2. Técnicas de modelamento numérico

Solução de problemas de N-corpos

Descrição do algorítmo de Barnes-Hut: TREECODE

O algoritmo de Barnes-Hut usa estratégia de subdividir recursivamente o espaço do problema para facilitar o cálculo das distâncias entre partículas (Barnes & Hut 1986).

Algoritmo em duas partes:

Criação da árvore

Primeiro passo: definir a extensão espacial do problema. Define-se um cubo que envolva todas as partículas. O tamanho dos lados é dado pela maior separação entre partículas em qualquer das dimensões espaciais.

Por exemplo, em duas dimensões, o espaço inicial do problema seria um quadrado cujo lado seria dado pela maior separação entre partículas nas direções X ou Y. Na figura ao lado a maior separação é entre as partículas 2 e 8.

Segundo passo: dividir o espaço recursivamente em cada dimensão. Em três dimensões o cubo inicial é subdividido em 8 sub-cubos iguais. O processo é repetido até que reste apênas uma ou nenhuma partícula em cada célula. Em cada caso e em cada estágio da subdivisão, os centros de massa da distribuição interna à célula são calculados e armazenados.

Um diagrama de fluxo para o problema bidimensional simples mostrado anteriormente é apresentado a seguir:

À medida que o processo de subdivisões avança, os resultados de cada estágio são organizados em uma estrutura de árvore, similar à da figura. Cada nodo contém parâmetros associados com o arranjo de prtículas na célula:  coordenadas dos centros de massa e massa total. A importância do método está na eficiência no cálculo das distâncias entre partículas, ideal para problemas que envolvem forças que dependem da distância.

Varrendo a árvore

Maximizar a eficiência: se um grupo de partículas está suficientemente distante de uma partícula individual, o cálculo da força exercida na partícula pelo grupo pode ser feito tratando o grupo como uma partícula única, posicionada no centro de massa do grupo.

Assim, para cada partícula, a árvore é percorrida a partir do nodo raiz (o que contêm todas as partículas). Usa-se o critério:

onde s é o tamanho da célula, d a distância da partícula ao centro de massa da célula e  um parâmetro de tolerância ajustável. Se o critério for satisfeito, o cálculo da força é feito tomando-se uma expansão de baixa ordem do potencial do grupo de partículas da célula con relação ao seu centro de massa.  Do contrário deve-se "descer" um nível a mais na árvore e testar o critério para sub-células até o caso extremo de interacão partícula-partícula.  Para o cálculo da força sobre uma partícula, toda a árvore deve ser varrida.

O a expressão do potencial gravitacional na posição da partícula i é

Depois que a força sobre cada partíicula for calculada, as partículas podem ser movidas. Depois do movimento a árvore deve ser reconstruída e o processo se repete no próximo time-step.

Os tempos de CPU gastos em ambas as fases, de construção e de varredura da árvore, serão proporcionais a N log N.

Animações do algoritmo de Barnes-Hut

Abaixo é mostrada uma projeção bidimensional de um problema tridimensional de 64 partículas. A animação mostra a evolução temporal da árvore.

Representação tridimensional do problema acima. A animação mostra a evolução temporal da árvore.



SPH


Galáxias


Aglomerados


Condições iniciais


Próximo 
Voltar para o sumário