¿Qué métodos / técnicas computacionales se utilizan para simular la física de las galaxias?

Hay dos métodos principales para simular la gravedad entre dos objetos individuales (partículas) en estas simulaciones:

1) Cálculo directo de la atracción gravitacional entre cada par de partículas. Esto conduce a N * (N-1) cálculos por paso de tiempo, donde N es el número total de partículas. Si bien este método es el más preciso, si desea simular una gran cantidad de partículas, esto se sale de las manos rápidamente, y su código tardaría bastante tiempo en terminar de ejecutarse. Como se mencionó en User-9479463705020282020, se usa un código de árbol para disminuir esencialmente el número total de cálculos que tiene que hacer en cada paso del tiempo al tratar las partículas lejanas como una masa puntual individual. Esto acelera significativamente su código hasta el punto donde los cálculos por paso de tiempo ahora son del orden N * log (N). Si bien el método descrito en el documento de Barnes & Hut está un poco desactualizado, existen varios códigos que utilizan versiones actualizadas para realizar simulaciones cosmológicas, como PKDGRAV (PKDGRAV Performance Testing). Sentí la necesidad de conectarlo, ya que este es el código que estoy usando actualmente para simular la dinámica de los asteroides.

2) El otro método es usar una cuadrícula (o código de malla). Con los códigos de cuadrícula, usted subdivide su espacio de simulación en una estructura de cuadrícula, y esencialmente calcula la cantidad de masa encontrada dentro de cada una de estas cuadrículas. Luego encontraría la atracción gravitatoria entre cada célula, como se describe sucintamente por Jay Wacker. Esto reduce la cantidad de cálculos que debe realizar por cada paso de tiempo a aproximadamente [math] N_ {cell} * N_ {cell} [/ math]. Por lo tanto, la aceleración que se obtiene es proporcional a su granularidad (los tamaños individuales de cada celda o el número de puntos de cuadrícula). Por lo tanto, desea ser inteligente al elegir el tamaño de cada celda. El uso de métodos como el refinamiento de malla adaptable permite que la arquitectura de su cuadrícula cambie constantemente dependiendo de la concentración relativa de partículas en el espacio (¡es adaptable!), Optimizando así la cantidad de cálculos que tendría que hacer con cada nuevo paso de tiempo.
Los códigos de cuadrícula son particularmente populares entre las personas que desean simular la dinámica del gas junto con la gravedad, ya que tiene que usar ecuaciones continuas para describir las propiedades relevantes del gas (temperatura, presión, gradientes de velocidad, etc.). Por lo tanto, puede asignar estas propiedades a cada celda. en lugar de generar miles de millones de partículas de gas individuales (por supuesto, esto también se puede hacer, y hay métodos para hacer que esto sea eficiente, ver hidrodinámica de partículas suaves (SPH)).

Un código híbrido SPH / mesh popular utilizado por personas que realizan simulaciones de fusiones de galaxias es GADGET . (Simulaciones cosmológicas con GADGET) El video que mostró se generó usando este código.

A mi entender, usan supercomputadoras o clústeres usando un proceso llamado “refinamiento de malla adaptable”. La idea básica es que la gravedad es una fuerza de largo alcance, lo que significa que debe realizar un seguimiento de las partículas muy distantes. Sin embargo, no tienes que saber mucho sobre partículas distantes. Al mismo tiempo, las partículas se agrupan, dejando regiones muy pequeñas que tienen toda la información interesante. A grandes rasgos, el refinamiento de malla adaptable crea espacio en varios niveles de granularidad. Sin embargo, solo almacena información en las celdas que tienen partículas densas. Luego, puede evaluar el potencial / las fuerzas sumando las celdas de las que realiza un seguimiento. Esta gran velocidad de tiempo, ya que utiliza la información gruesa muy lejos, solo mantiene una pequeña cantidad de la información de grano fino. Aparte de eso, solo tienes que resolver N ecuaciones diferenciales de segundo orden acopladas, lo que se hace menos con las técnicas numéricas estándar como Runge-Kutta. La ecuación diferencial es justa.
[math] \ ddot {\ vec {x}} _ i = – \ frac {\ partial} {\ partial \ vec {x} _i} \ sum_j \ frac {G mj} {| \ vec {x} _i – \ vec {x} _j |} [/ math]
que es solo la segunda ley de Newton con la ley de gravitación de Newton.

No es mi área de especialización, pero puedo dar una respuesta bastante no técnica. En el nivel más básico, dicho cálculo se realiza simplemente mediante la integración de las ecuaciones de movimiento de N cuerpos. Lo que significa que elige una muestra representativa de estrellas u otros objetos (“N”), calcula las fuerzas gravitacionales de cada una sobre la otra y determina cómo esto afecta la aceleración, la velocidad y la posición en un corto intervalo de tiempo. Luego repite muchas veces. El número real de estrellas es demasiado grande para usar una “N” realista, por lo que uno tiene que usar una N más pequeña y escalar varias cantidades para obtener una respuesta para la N. más grande (como si quisiera simular el flujo de agua, podría no escoja [math] 10 ^ {23} [/ math] moléculas sino, digamos, un millón y, si tiene cuidado con las masas y las fuerzas de interacción, etc., haga que la mayoría de la física sea la correcta.

Entonces, en esencia, es “elemental”: usamos el estado de las galaxias ahora y nuestro conocimiento de la física para encontrar el estado un instante después. Por supuesto, para hacer que N sea lo más grande posible y que el cálculo no tome mucho tiempo, gran parte del arte y la inteligencia se centran en las técnicas numéricas específicas que introducen el error más pequeño. Por ejemplo, uno puede incluir exactamente los efectos de estrellas cercanas en una estrella dada, pero supongamos que los efectos de estrellas distantes están dados por un campo promedio. Y la aproximación de la diferencia finita a la integración de las ecuaciones de Newton se puede modificar para un mejor rendimiento. Los pasos de tiempo se pueden cambiar de forma adaptativa en función de cómo cambian las cosas, etc. Y dado que la fuerza gravitacional entre dos masas puntuales diverge a distancias cortas ([math] 1 / r ^ 2), [/ math] uno tiene que reflexionar cuidadosamente a cómo tratar con las estrellas que se acercan mucho. Y uno tiene que tener cuidado de que tales mejoras numéricas no introduzcan artificialmente una entropía fluida extra, o de lo contrario no logren capturar la física fielmente.

Los refinamientos adicionales que pueden ser importantes para obtener el derecho de la física incluyen tratar las interacciones a través del viento solar, la evolución de las estrellas a lo largo del tiempo, las pérdidas por radiación, las supernovas, la formación de estrellas, etc.

Esto es lo que hago para ganarme la vida. A día de hoy no puedo creer que alguien me pague por hacer esto 🙂

La idea básica es que uses un integrador. Este es un código que hace que un sistema avance en el tiempo en algún incremento (dt). Para actualizar la posición, la idea es que si tiene una velocidad v, puede obtener una nueva posición usando

r_new = r_old + v * dt
(esto es en realidad 3 ecuaciones, una para cada dimensión x, y, z)

Entonces, ¿cómo se obtienen las velocidades? Bueno, usted calcula la aceleración a, y hace algo similar:
v_new = v_old + a * dt

Las aceleraciones provienen de las fuerzas (recuerda F = ma). Las dos fuerzas clave a incluir son la gravedad y las fuerzas de presión. La gravedad se toma simplemente de la Ley de Gravitación de Newton (que debe modificarse para la expansión cósmica si desea realizar una simulación cosmológica). La fuerza de presión viene dada por las ecuaciones de Euler, que básicamente te dicen que la aceleración va como el gradiente de presión dividido por la densidad.

Entonces, para cada partícula en su simulación (que normalmente incluye materia oscura, gas, estrellas y agujeros negros), calcula la gravedad de todas las demás partículas, y calcula las fuerzas de presión del fluido cercano, suma las fuerzas y luego evoluciona el sistema hacia adelante por dt.

Enjuague, haga espuma, repita hasta que haya evolucionado el sistema por el tiempo que desee. Como tal vez 13 mil millones de años más o menos.

Toda la complejidad está en computar esas fuerzas. La gravedad se puede calcular a través de una malla, un código de árbol o algún híbrido. Las fuerzas de presión se pueden calcular utilizando una malla (generalmente un “refinamiento adaptativo de la malla”), una hidrodinámica de partículas alisadas o una malla en movimiento.

Además, las simulaciones de formación de galaxias incluyen prescripciones para la física de “subgrid”, es decir, la física es crucial para la evolución de la galaxia pero no puede resolverse directamente porque las computadoras no son lo suficientemente potentes. Los ejemplos de esto incluyen la formación de estrellas, el crecimiento del agujero negro y el retorno de energía de las supernovas y la acumulación de agujeros negros.

Algunas buenas películas de simulaciones de formación de galaxias están en el sitio web del proyecto Illustris. Utilizan un código de gravedad Tree-PM híbrido junto con un código hidráulico de malla móvil, llamado AREPO.

No soy un experto en este campo, pero me he topado con una técnica llamada “Hidrodinámica de partículas suavizadas”, que también se utiliza para modelar / simular flujos de fluidos, que es mi área.

La resolución adaptativa de la hidrodinámica de partículas suavizadas, combinada con su capacidad para simular fenómenos que cubren muchos órdenes de magnitud, la hace ideal para cálculos en astrofísica teórica.

Simulaciones de formación de galaxias, formación de estrellas, colisiones estelares, supernovas y efectos de los meteoritos son algunos de los diversos usos astrofísicos y cosmológicos de este método.

SPH se utiliza para modelar flujos hidrodinámicos, incluidos los posibles efectos de la gravedad. La incorporación de otros procesos astrofísicos que pueden ser importantes, como la transferencia radiativa y los campos magnéticos, es un área activa de investigación en la comunidad astronómica, y ha tenido cierto éxito limitado.

Fuente: Hidrodinámica de partículas alisadas.

de una fuente más técnica: [1109.2219] Hidrodinámica de partículas suavizadas en astrofísica (descárguelo, tiene un principio de funcionamiento básico del método y su aplicación a la astrofísica)

La técnica de SPH basada en partículas permite una formulación intuitiva y simple de la hidrodinámica que tiene excelentes propiedades de conservación y se puede acoplar a la autovigilancia de manera sencilla y precisa. El carácter lagrangiano de SPH le permite ajustar automáticamente su resolución al agrupamiento de materia, una propiedad que hace que el esquema sea ideal para muchas aplicaciones en astrofísica, donde a menudo se encuentra un gran rango dinámico de densidad. Discutimos la derivación de las ecuaciones básicas de SPH en su formulación moderna, y ofrecemos una descripción general de las extensiones de SPH desarrolladas para tratar la física como la transferencia radiativa, la conducción térmica, la dinámica relativista o los campos magnéticos. También describimos brevemente algunas de las áreas de aplicaciones más importantes de SPH en la investigación astrofísica. Finalmente, proporcionamos una discusión crítica de la precisión del SPH para diferentes problemas hidrodinámicos, incluidas las mediciones de su tasa de convergencia para clases importantes de problemas.