Códigos de N-cuerpos Son códigos numéricos para buscar soluciones a las ecuaciones del movimiento para N partículas en interacción gravitacional. En astrofísica son muy usados para estudiar problemas de mecánica celeste, sistemas estelares densos (e.g. cúmulos globulares) la influencia de agujeros negros, dinámica de galaxias y cosmología El problema queda descrito de la siguiente manera: Cada partícula experimenta una aceleración que surge de la atracción gravitacional de todo el resto de partículas del sistema La descripción del problema se completa especificando las velocidades y posiciones iniciales de las N partículas Códigos de N-cuerpos El problema se divide en dos partes: 1-calcular la fuerza neta en cada partícula en un determinado momento 2-determinar la nueva posición y velocidad de la partícula en un nuevo tiempo t+dt Debido a la no linearidad del problema las singularidades que aparecen cuando las distancias entre partículas se acerca a 0 (grandes velocidades) dependen de las condiciones iniciales intervalos de tiempo constantes pueden resultar en aceleraciones no físicas en encuentros cercanos entre partículas (intervalos de tiempo adaptativos!) Códigos de N-cuerpos Una manera para evitar la singularidad es no usar partículas puntiformes, si asumimos que las partículas son objetos extendidos. Donde e es la longitud de suavizado, es la distancia típica en la cual la interacción es alterada. En este caso no debemos ver las partículas como estrellas o planetas si no como grupos de objetos, que ocupan el mismo volumen en el espacio de fase. Este método funciona para sistemas como galaxias en los que los procesos colisionales no son importantes. Códigos de N-cuerpos Cuando el numero de partículas es menor de ~2000 partículas podemos calcular las fuerzas sumando directamente las fuerzas de cada par de partículas. Es decir, en cada momento tenemos que evaluar la suma i=1,….,N de las fuerzas a las que la partícula j esta sujeta, es decir 0.5N(N-1) veces!! Si consideramos que en 1 segundo evaluamos las fuerzas en un instante determinado de N=104 necesitaremos más de una semana para evaluar las fuerzas en un sistema de N=107!! Códigos de N-cuerpos Si el numero de partículas es pequeño (N≥3) estamos probablemente interesados en el comportamiento preciso de las orbitas durante muchos periodos orbitales >> 105 años el método de integración más simple métodos de Euler (instables) Runge-Kutta a pesar de ser un método de muy fácil implementación y estandard en la aproximación de ecuaciones diferenciales, el error del RK4 es del orden del intervalo (h) h5 y el error total acumulado h4. Necesitamos control sobre el intervalo de tiempo, podemos usar un RK4 adaptativo. http://faculty.ifmo.ru/butikov/Projects/Collection2.html Códigos de N-cuerpos En simulaciones astrofísicas estamos probablemente interesados en intervalos de tiempo tanto pequeños como mas grandes, e.g. en un cúmulo globular las estrellas binarias del centro del cúmulo tienen periodos medidos de horas, mientras que las estrellas en las afueras del cúmulo, tardan millones de años en en cruzar el cúmulo de un lado a otro. Simon Portegies Zwart (Leiden University), GRAPE4 N=6144 1 seg ~ pocos miles de años Códigos de N-cuerpos Para problemas de pocas partículas, en las que se requiera gran precisión en el calculo orbital (e.g. si estamos interesados en como las orbitas de un planeta se alteran al paso de una estrella cerca del sistema solar) se usa el integrados Bulirsch-Stoer. Usa un sistema adaptativo para el intervalo de tiempo y lidia bien con los encuentros cercanos de dos partículas, para una precisión dada, es más rápido que el Runge-kutta. Si requerimos velocidad de calculo podemos usar el método Symplectic, en este método las orbitas están divididas en una parte kepleriana y una parte no kepleriana, no lidia bien con encuentros cercanos, pero es útil para problemas en los que queremos entender el efecto a largo plazo de la interacción entre planetas (sin colisiones) Códigos de N-cuerpos Para problemas de muchas partículas lo que nos importa no es la precisión en la integración a lo largo de muchas orbitas, donde queremos mantener lo más estrictamente posible la conservación de energía y momento. En sistemas más grandes, como las galaxias estamos interesados en el comportamiento colectivo de las partículas, y en pocas orbitas. E.g. el periodo orbital del sol alrededor del centro de la galaxia es de ~250 millones de años, es decir, que el sol solo ha completado unas 18 orbitas desde su formación! El problema de los N-cuerpos cuando N es grande es la integración de la cantidad enorme de partículas. Principales problemas: 1-El número de interacciones a integrar 2-Las diferentes escalas de tiempo Códigos de N-cuerpos Una de las maneras mas simples de lidiar con los diferentes intervalos requeridos es el llamado leapfrof. Es un integrador de segundo orden, las posiciones están definidas en intervalos ti, ti+1, ti+2… y las velocidades en intervalos ti-1/2, ti+1/2, t3/2 ti+1 - ti+1/2 = ti+1/2 - ti = dt/2 Las aceleraciones están definidas en intervalos como las posiciones, si tomamos un intervalo +dt para obtener de {ri, vi-1/2} a {ri+1, vi+1/2} y volvemos usando un intervalo -dt volvemos a los mismo valores (reversibilidad), aunque solo es un esquema de segundo orden los errores se cancelan (salvo los de redondeo) Códigos de N-cuerpos Una de las maneras mas simples de lidiar con los diferentes intervalos requeridos es el llamado leapfrof. Es útil para sistemas con un gran numero de partículas y un grado de disipación interno alto. E.g colisión de galaxias, evolución de un cúmulo de galaxias, donde requerimos conocer el potencial de manera precisa y no un seguimiento preciso de las posiciones y las velocidades dt=0.01 dt=0.001 Códigos de N-cuerpos Encuentros cercanos y regularización: El suavizado introducido en la segunda ley de Newton hace que la aceleración gravitacional sature a un máximo finito de orden: |aj| = 2Gmi/33/2e2 cuando las particulas tienen una separacion de (1/√2)e, al limitar la aceleración el intervalo de tiempo también tiene un valor mínimo. Problema de esto? No podemos seguir la trayectoria de un sistema binario cercano..es decir, no es posible seguir la trayectoria de un sistema si la longitud de suavizado es mayor que la distancia física que queremos estudiar. Códigos de N-cuerpos Para tratar el problema de la singularidad de las colisiones entre partículas y nos preocupa seguir la trayectoria de encuentros cercanos no podemos usar el suavizado. La regularización introduce una transformación del sistema de coordenadas que reemplaza el tiempo con un tiempo regularizado. La aceleración del vector R (separación) de los componentes de un par de partículas en una simulación de N-cuerpos viene dada por: si introducimos un tiempo regularizado Hemos eliminado la singularidad 1/R2, pero aun tenemos la indeterminación de R/R cuando la distancia entre partículas tiende a 0. Introducimos una transformación espacial, en este caso 1-D, si no hay fuerza externas: Códigos de N-cuerpos Si usamos la conservación de energía, la energía de ligadura (que es constante por cada orbita binaria) por unidad de masa reducida es µ=m1m2/ m1+m2 es: Esta libre del problema de la indeterminación R/R, si escribimos u2= R: Ecuación de un oscilador harmónico Códigos de N-cuerpos Método Tree de calculo de fuerzas Método lagrangiano en el que el volumen se subdivide y solo las partículas de celdas cercanas se tratan individualmente, las partículas en celdas más distantes se tratan como una partícula centrada en su centro de masas, esto reduce el número de interacciones entre pares de partículas a calcular (tiempo de calculo es ∝ NlogN y no a N2). Códigos de N-cuerpos Método particle-mesh PM, P3M (Particle-Particle ParticleMesh) de calculo de fuerzas Método euleriano en el que el espacio se discretiza en una malla y se asume que las partículas se dividen entre los vértices de las celdas de la malla, el potencial se calcula en esta cuadricula de densidad y las fuerzas se calculan respecto a la posición de la celda. Varios métodos para convertir un sistema de partículas en una cuadricula de densidad, un método simplemente adjudica la masa de la partícula al punto mas cercano en la cuadricula, el CIC (Cloud-In-Cell) considera las partículas como cubos de densidad y una partícula puede contribuir en masa a distintas celdas de la cuadricula normalmente hay menor numero de celdas que de partículas, luego el numero de interacciones a calcular es menor. Una vez que se tiene la distribución de masa, el potencial se usando FFT (transformadas de Fourier) el hecho de poder usar técnicas de FFT para obtener el potencial facilita el calculo Procesos de dinámica de fluidos Método SPH Es un método Lagrangiano en el que el fluido se discretiza. Estos elemento de fluido tienen una distancia (h) suavizada entre ellos, las propiedades del fluido están suavizadas a esta distancia con una función (kernel, por ejemplo una Gaussiana) Si se asigna a cada partícula una distancia de suavizado que cambie con el tiempo la simulación se adapta a las condiciones de cada partícula en cada momento. Combinado con un integrador y una ecuación de estado simula los flujos dinámicos eficientemente Procesos de dinámica de fluidos Tratamiento de choques en SPH: Cuando dos parcelas de fluido se encuentran con velocidad relativa mayor que la velocidad del sonido, las ondas de sonido son incapaces de transportar la energía del choque y la entropía del gas aumenta. Para el tratamiento de choques SPH usa, en general, una viscosidad artificial, donde la aceleración de la materia producida por la viscosidad es, El tensor de viscosidad tiene que ser construido de manera que el momento total y angular se conserve y logre imitar el efecto microscópico de los choques. La viscosidad logra dar un resultado razonable, pero si estamos interesados en estudiar sistemas donde los choques son muy importantes, otras técnicas tienen que ser usadas, e.g. técnicas eulerianas, Godunov-SPH Procesos de dinámica de fluidos Método SPH, ejemplo de N-body/SPH, dinámica de una galaxia como la nuestra Procesos de dinámica de fluidos Método Euleriano calcula las variables que describen un fluido calculando el flujo en celdas adyacentes de una cuadricula. Para tratar lo choques se usa una viscosidad artificial del tipo de la viscosidad numérica que vimos, en las que el choque ocupa varias celdas de la cuadricula. Hay casos en los que la estructura que se va generando en la simulación es mas pequeña que el dominio de calculo, en estos casos, una cuadricula uniforme no es suficiente, se pueden usar celdas anidadas funciona si sabemos donde están las estructuras a resolver, grid estáticos, si no se necesita un metodo AMR (adaptive mesh refinement) grid dinámicos Procesos de dinámica de fluidos Metodo grid Euleriano vs SPH SPH, ventajas: adaptativo, si hay regiones casi vacías es mucho mas eficiente que el grid, más fácil de tratar con problemas con geometrías sin simetrías y contornos libres Grid, ventajas: trata mejor choques, más fácil de implementar en problemas de MHD y transferencia de radiación Agertz et al 2007, MNRAS, 380, 963 Otros métodos no basados en incrementos finitos • Elementos finitos Se basa en un grid no estructurado, se utiliza en ingeniería. • Monte Carlo es una técnica se muestreo estadístico en la que las soluciones se construyen con simulaciones que involucran números aleatorios. Muy utilizado en astronomía. http://astro.u-strasbg.fr/~koppen/numex/Montye.html Código de la practica: Gadget Millenium simulation 10 billones de partículas en un cubo de 2 billones de años luz, en el super-ordenador del Max-Planck, 20 millones de galaxias