¿Distribución de velocidades orbitales en una galaxia de disco para la simulación de N-cuerpos?

Me gustaría escribir una simulación de N-cuerpos en la que choque dos galaxias de disco. Para darle una idea de la precisión que estoy tratando de lograr, mi objetivo es hacer de este mi protector de pantalla a 30 fps en mi escritorio de trabajo. Piensa en el método de Euler, epsilones grandes en los denominadores para evitar que exploten, todas esas tonterías.

Sin embargo, un lugar en el que no quiero ser perezoso es en la construcción inicial de las galaxias con las que estoy tratando de colisionar. Quiero diseñar una galaxia que al menos se mantenga unida por su propia gravedad hasta que se estrelle contra otra.

¿Cómo podría seleccionar las velocidades orbitales de cada uno de los cuerpos que componen la galaxia?

No use el método de Euler, use integradores simplécticos en su lugar. Cuántos norte ¿Cuerpos estás considerando? ¿En 3D completo?
Estoy de acuerdo con @KyleKanos. Tengo una experiencia muy pequeña con la integración numérica para la mecánica celeste e incluso los integradores simplécticos de primer orden funcionan de maravilla en esta área. Por ejemplo, el flujo a lo largo del tiempo de una ecuación diferencial es un mapeo de una solución a la siguiente; el flujo de los sistemas hamiltonianos es lo que se conoce como una transformación simpléctica, es decir det φ ˙ t = 1 dónde φ se define como el flujo. Este no suele ser el caso de los integradores clásicos ordinarios y, por lo tanto, la estructura del movimiento no será realista. En resumen, ¡utilice métodos simplécticos!
Interesante. Estaba interesado principalmente en el método de Euler porque es trivialmente paralelizable, y las implementaciones inteligentes pueden usar cosas como Barnes-Hut para mejorar el rendimiento. Sin embargo, definitivamente investigaré esto.

Respuestas (1)

Probablemente podrías esperar que v r = v z = 0 --es decir, la mayoría de sus velocidades estarán en el ϕ ^ dirección (asumiendo que está usando coordenadas cilíndricas). 1

Para órbitas estables, las energías cinética y potencial deben ser iguales, por lo que debería terminar viendo que

v ( r ) = 2 Φ ( r )
dónde Φ es la energía potencial gravitacional (y hay algunas opciones ). También puede agregar valores distribuidos normalmente a los componentes de velocidad (como se sugiere aquí ) para generar pequeñas perturbaciones en las órbitas. Es bastante sencillo convertir a otro sistema de coordenadas desde aquí, si es necesario.

También analizo en esta pregunta relacionada un algoritmo para elegir las velocidades asumiendo un modelo de Plummer (discutido en el primer enlace de la publicación). Espero que se pueda desarrollar un algoritmo similar para los potenciales alternativos, pero no he trabajado en las matemáticas.


Tenga en cuenta también que, mientras que el sistema de ecuaciones para el norte -el problema del cuerpo es bastante sencillo,

v = d X d t F = metro d v d t
escribirlo en código es bastante difícil para grandes norte . La fuerza F se calcula entre cada par de objetos en el norte -Sistema corporal:
F i = j i GRAMO X ^ i j | X i j | 2
dónde X i j = X i X j y X ^ i j es la dirección de la fuerza entre los cuerpos i y j . Esto significa que automáticamente tiene al menos un O ( norte 2 ) problema (al menos en el tiempo, es O ( norte ) en memoria). 2

Una galaxia real tiene norte 10 11 estrellas, lo que probablemente no sea posible de manejar para ninguna computadora moderna. 3 creo que norte 10 6 es un buen número redondo para modelar galaxias, pero aún pueden tomar horas en grupos de computadoras (dependiendo de lo que haga la simulación) y me arriesgaré y supongo que no tienes un grupo de computadoras disponible para ti, por lo que es posible que desee probar norte 10 3 o norte 10 4 en cambio, ¡pero no se sorprenda si esto todavía toma mucho tiempo!


1. Probablemente sea más fácil de usar r , ϕ , z coordenadas para generar las velocidades y luego transformarlas de nuevo a cartesianas (suponiendo que esté trabajando en cartesianas).
2. Hay algoritmos complicados que pueden reducir esto a O ( norte registro norte ) , pero esto puede ser demasiado para sus propósitos.
3. Aunque hubo una simulación de un billón de cuerpos , usaron toda la computadora K durante algo así como un mes seguido (si no recuerdo mal los artículos de noticias). Dudo que tengas ese tipo de recursos disponibles.