stringtranslate.com

Simulación de Barnes-Hut

Una simulación de 100 cuerpos con el árbol de Barnes-Hut visualmente como cuadros azules.

La simulación de Barnes-Hut (nombrada en honor a Josh Barnes y Piet Hut ) es un algoritmo de aproximación para realizar una simulación de N cuerpos . Se destaca por tener un orden O( n  log  n ) en comparación con un algoritmo de suma directa que sería O( n 2 ). [1]


El volumen de simulación se divide generalmente en celdas cúbicas a través de un octree (en un espacio tridimensional), de modo que solo las partículas de las celdas cercanas deben tratarse individualmente, y las partículas de las celdas distantes pueden tratarse como una sola partícula grande centrada en el centro de masa de la celda (o como una expansión multipolar de orden bajo ). Esto puede reducir drásticamente la cantidad de interacciones de pares de partículas que deben calcularse.

Visualización dinámica de la estructura de árbol cuádruple del algoritmo Barnes-Hut para el problema de N-cuerpos 2D

Algunos de los proyectos de computación de alto rendimiento más exigentes realizan astrofísica computacional utilizando el algoritmo de código de árbol de Barnes-Hut, como DEGIMA . [2] [ cita requerida ]

Algoritmo

El árbol de Barnes-Hut

En una simulación tridimensional de N cuerpos , el algoritmo de Barnes-Hut divide recursivamente los n cuerpos en grupos almacenándolos en un octree (o un quad-tree en una simulación 2D). Cada nodo de este árbol representa una región del espacio tridimensional. El nodo superior representa todo el espacio y sus ocho hijos representan los ocho octantes del espacio. El espacio se subdivide recursivamente en octantes hasta que cada subdivisión contiene 0 o 1 cuerpos (algunas regiones no tienen cuerpos en todos sus octantes). Hay dos tipos de nodos en el octree: nodos internos y externos. Un nodo externo no tiene hijos y está vacío o representa un solo cuerpo. Cada nodo interno representa el grupo de cuerpos debajo de él y almacena el centro de masa y la masa total de todos sus cuerpos hijos.

Calcular la fuerza que actúa sobre un cuerpo

Para calcular la fuerza neta sobre un cuerpo en particular, se recorren los nodos del árbol, comenzando desde la raíz. Si el centro de masas de un nodo interno está suficientemente alejado del cuerpo, los cuerpos contenidos en esa parte del árbol se tratan como una única partícula cuya posición y masa son respectivamente el centro de masas y la masa total del nodo interno. Si el nodo interno está suficientemente cerca del cuerpo, el proceso se repite para cada uno de sus hijos.

Si un nodo está o no suficientemente alejado de un cuerpo, depende del cociente , donde s es el ancho de la región representada por el nodo interno y d es la distancia entre el cuerpo y el centro de masa del nodo. El nodo está suficientemente alejado cuando esta relación es menor que un valor umbral θ . El parámetro θ determina la precisión de la simulación; valores mayores de θ aumentan la velocidad de la simulación pero disminuyen su precisión. Si θ = 0, ningún nodo interno se trata como un solo cuerpo y el algoritmo degenera en un algoritmo de suma directa.

Véase también

Referencias y fuentes

Referencias
  1. ^ Pfalzner, Susanne; Gibbon, Paul (1996). Métodos de árboles de muchos cuerpos en física . Cambridge [ua]: Cambridge Univ. Press . pp. 2, 3. ISBN. 978-0-521-49564-6.
  2. ^ T. Hamada; et al. (2009). "Un nuevo algoritmo de recorrido paralelo múltiple para el código de árbol Barnes-Hut en GPU: hacia una simulación de N-cuerpos rentable y de alto rendimiento". Comp. Sci. Res. Dev . 24 (1–2): 21–31. doi :10.1007/s00450-009-0089-1. S2CID  31071570.
Fuentes

Enlaces externos