Formación de Galaxias

N-body gravitacional, Barnes-Hut O(N log N) y colapso gravitacional

Una galaxia espiral es el resultado de 10,000 millones de años de colapso gravitacional: una nube primordial de gas y materia oscura que se contrae, se aplana por conservación de momento angular y forma un disco de rotación. Esta simulación resuelve el problema gravitacional de N cuerpos para miles de estrellas usando el algoritmo Barnes-Hut, que hace tratable computacionalmente lo que de otro modo requeriría millones de operaciones por frame.

El Problema de N Cuerpos Gravitacional

La fuerza gravitacional sobre cada estrella i es la suma vectorial de las contribuciones de todas las demás. La implementación directa (fuerza bruta) tiene costo O(N²):

F_i = G·m_i · Σ_{j≠i} m_j·(r_j − r_i) / |r_j − r_i|³
N = 10,000 estrellas → 10⁸ evaluaciones por paso. A 60 fps: 6×10⁹ operaciones/segundo. Imposible en JavaScript; difícil incluso en C++.

El suavizado (softening) es imprescindible: sin él, dos estrellas que se acercan producirían fuerzas divergentes. Se reemplaza r por √(r² + ε²), donde ε es la longitud de suavizado:

F = G·m₁·m₂ / (r² + ε²)     ε ≈ 1–5% del radio galáctico
ε representa el tamaño finito efectivo de cada partícula. Sin él, encuentros cercanos generarían velocidades no físicas y estrellas eyectadas del sistema.

El Algoritmo Barnes-Hut y el Quadtree

La idea central: las estrellas suficientemente lejanas pueden aproximarse como un único cuerpo con masa total concentrada en su centro de masa. Para formalizar «suficientemente lejano», el espacio se divide recursivamente en un quadtree:

Construcción del quadtree

El espacio se divide en cuatro cuadrantes. Cada cuadrante con más de una estrella se subdivide recursivamente. El árbol se reconstruye en cada paso de tiempo. Costo de construcción: O(N log N).

Centro de masa por nodo

Cada nodo del árbol almacena la masa total y el centro de masa de todas las estrellas contenidas. Esta información se calcula en una pasada ascendente del árbol (bottom-up pass) después de la inserción.

Criterio de apertura θ

Para cada estrella, al descender el árbol se evalúa: si tamaño_nodo/distancia < θ → usar el nodo como masa puntual. Si no → descender a los hijos. θ controla el equilibrio precisión/velocidad.

Complejidad resultante

Con θ adecuado, cada estrella interactúa con O(log N) nodos del árbol. Costo total: O(N log N) por paso. Para N = 10,000: ~130,000 operaciones en lugar de 100,000,000. Factor 770× más rápido.

θ = tamaño_celda / distancia    si θ < θ_umbral → aproximar como masa puntual
El parámetro θ (theta de Barnes-Hut) controla la precisión. θ = 0 → fuerza bruta exacta. θ = 1 → máxima aproximación. θ = 0.5 es el equilibrio estándar.
θPrecisiónVelocidad relativaUso recomendado
0.3Muy alta (cuasi exacta)Validación científica
0.5Alta2–3×Simulación estándar
0.7Media4–5×Muchas partículas en tiempo real
1.0Aproximada8–10×Preview rápido o dispositivos lentos

Integración Temporal: Leapfrog

El integrador leapfrog (también llamado Störmer-Verlet) es el estándar en simulaciones gravitacionales porque es simpléctico: conserva el volumen del espacio de fase y, por tanto, mantiene acotado el error de energía a largo plazo. Euler diverge; leapfrog oscila pero no crece:

v(t+dt/2) = v(t) + a(t)·dt/2    x(t+dt) = x(t) + v(t+dt/2)·dt    v(t+dt) = v(t+dt/2) + a(t+dt)·dt/2
Las posiciones y velocidades están «desfasadas» en dt/2 — de ahí el nombre leapfrog (rana saltando). Reversible en el tiempo, orden 2, error de energía acotado para siempre.

Tipos de Galaxias y Estructuras

La forma final de una galaxia depende de las condiciones iniciales y de su historia de fusiones:

Los brazos espirales no son estructuras de estrellas: son ondas de densidad. Si fueran estructuras rígidas, se enrollarían y desaparecerían en unas pocas órbitas galácticas (el «problema del enrollamiento», dilema de winding). La teoría de ondas de densidad de Lin & Shu (1964) explica que los brazos son regiones de mayor densidad que se propagan a través del disco como ondas, a velocidad distinta de las estrellas individuales — igual que una ola en el mar no arrastra el agua, sino que es la ola la que viaja.

Métricas de Conservación

Dos cantidades deben conservarse en una simulación gravitacional correcta:

E_total = ½·Σm_i·v_i² − G·Σ_{i<j} m_i·m_j/r_ij     L = Σ m_i·(r_i × v_i)
Energía total (cinética + potencial) y momento angular. En equilibrio: E_pot = −2·E_cin (Teorema del Virial). La desviación de estas cantidades mide la calidad del integrador.

Experimentos Guiados

Experimento 1 — Galaxia espiral vs elíptica

  1. Selecciona el preset «Galaxia Espiral». Observa el colapso inicial: la nube esferoidal se aplana en un disco en pocas órbitas. El momento angular inicial determina el plano del disco.
  2. Resetea y selecciona «Galaxia Elíptica». La distribución inicial ya es esferoidal con velocidades isótropas: el sistema colapsa pero no forma disco. Cada estrella sigue una órbita elongada con orientación diferente.
  3. Compara la curva de rotación: en la espiral, las velocidades orbitales son aproximadamente planas (velocidad casi constante con r); en la elíptica, hay dispersión de velocidades en todas las direcciones.

Experimento 2 — Efecto del parámetro θ en precisión

  1. Congela la simulación en la fase de colapso inicial (máxima actividad gravitacional). Anota la distribución de estrellas.
  2. Baja θ a 0.3: la simulación se ralentiza pero las fuerzas son más precisas. Las estructuras son ligeramente más detalladas en el núcleo.
  3. Sube θ a 0.8 o 1.0 y observa la diferencia de FPS. El comportamiento global (colapso, formación de disco) es cualitativamente el mismo — el teorema central de Barnes-Hut dice que las grandes estructuras no dependen de la precisión local.

Experimento 3 — Agujero negro central y velocidad de rotación

  1. Inicia la galaxia espiral sin agujero negro (masa central = 0). Observa la curva de rotación: sin concentración central, las velocidades internas son bajas y crecen con r (como un sólido rígido).
  2. Añade un agujero negro supermasivo con masa 1000–2000 M_estrella. El núcleo se vuelve mucho más activo; las estrellas internas adquieren velocidades orbitales muy altas.
  3. Una galaxia real (Vía Láctea) tiene una masa total de materia oscura ~10¹² M_☉, mucho mayor que la masa estelar visible. La materia oscura es la razón por la que las curvas de rotación galácticas son planas — y por eso las galaxias no son tan diferentes de lo que muestra la simulación.

Conexiones

🌌
Colisión de Galaxias
El destino de dos galaxias formadas
Agujero Negro
El objeto compacto en el núcleo galáctico
🔭
Expansión del Universo
El contexto cosmológico de la formación
🐟
Boids Masivo
Comportamiento colectivo emergente de N agentes