Las 'partículas' tratadas por la simulación pueden corresponder o no a objetos físicos de naturaleza definida por partículas.
Esta cantidad no necesita tener ningún significado físico, sino que debe elegirse como un compromiso entre precisión y requisitos informáticos manejables.
La materia oscura toma un papel importante en la formación de galaxias.
es la velocidad y Φ es el potencial gravitacional obtenido por la ecuación de Poisson.
El método convencional para inicializar posiciones y velocidades implica mover las partículas dentro de una red cartesiana uniforme o una configuración de partículas similar al vidrio.
Las respectivas ecuaciones se integran numéricamente sin aproximaciones ni simplificaciones.
Estos cálculos se utilizan en casos donde las interacciones entre objetos individuales, como estrellas o planetas, son importantes para la evolución del sistema.
Las primeras simulaciones gravitacionales directas de n cuerpos fueron llevadas a cabo por Erik Holmberg en el Observatorio de Lund en 1941, determinando las fuerzas entre estrellas en galaxias influidas mutuamente por su gravitación mediante la equivalencia matemática entre la propagación de la luz y la interacción gravitacional.
[4] Las primeras simulaciones puramente por cálculos fueron realizadas por Sebastian von Hoerner en el Astronomisches Rechen-Institut de Heidelberg, Alemania.
[cita requerida] Muchas simulaciones son lo suficientemente grandes como para que los efectos de la relatividad general sean significativos al establecer una cosmología de Friedmann-Lemaitre-Robertson-Walker.
Las simulaciones de N cuerpos son simples en principio, porque implican simplemente integrar las 6 N ecuaciones diferenciales ordinarias que definen los movimientos de las partículas en la gravedad newtoniana .
Sin embargo, toda integración numérica conduce a errores.
Encontrar la energía potencial Φ es fácil, porque la ecuación de Poisson
Dado que este método está limitado por el tamaño de la malla, en la práctica se utiliza una malla más pequeña o alguna otra técnica (como la combinación con un árbol o un algoritmo simple partícula-partícula) para calcular las fuerzas a pequeña escala.
A veces se utiliza una malla adaptativa, en la que las celdas de la malla son mucho más pequeñas en las regiones más densas de la simulación.
Aunque hay millones o miles de millones de partículas en las simulaciones típicas, normalmente corresponden a una partícula real con una masa muy grande, normalmente 109 masas solares.
Para evitar esto, se utiliza una ley de fuerza newtoniana suavizada, que no diverge como el radio del cuadrado inverso en distancias cortas.
El suavizamiento es un truco numérico utilizado en las técnicas de n cuerpos para evitar divergencias numéricas cuando una partícula se acerca demasiado a otra (y la fuerza llega al infinito).
Esto se obtiene modificando el potencial gravitacional regularizado de cada partícula como
El valor del parámetro de ablandamiento debe establecerse lo suficientemente pequeño para mantener las simulaciones realistas.
[5] En particular, los halos con menor masa tienden a formarse antes y, como resultado, tienen concentraciones más altas debido a la mayor densidad del Universo en el momento de su formación.
Se ha descubierto que las formas de los halos no son perfectamente esféricas.
Se necesitan simulaciones que modelen tanto la materia oscura como los bariones para estudiar estructuras a pequeña escala.
La incorporación de bariones, leptones y fotones en las simulaciones aumenta drásticamente su complejidad y, a menudo, es necesario realizar simplificaciones radicales de la física subyacente.
En lenguajes de programación orientados a objetos, como C++, algún código repetitivo es útil para establecer las estructuras matemáticas fundamentales, así como los contenedores de datos necesarios para la propagación; a saber, vectores de estado y, por tanto, vectores, y algún objeto fundamental que contenga estos datos, así como la masa de un cuerpo en órbita.
Por lo tanto, para sembrar las fuerzas de la simulación, simplemente se necesitan posiciones iniciales, pero esto no permitirá la propagación: se requieren velocidades iniciales.
Para mantener el código simple, se utiliza un enfoque no riguroso basado en semiejes mayores y velocidades medias.
Las posiciones y velocidades establecidas anteriormente se interpretan como correctas para
El alcance de una simulación sería lógicamente para el período en el que
En el nivel elemental, cada paso de tiempo (para simulaciones con partículas que se mueven debido a fuerzas ejercidas sobre ellas) implica Lo anterior se puede implementar de manera bastante simple con un bucle while que continúa mientras