Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMétodo euleriano en el que el espacio se...

22
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

Transcript of Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMétodo euleriano en el que el espacio se...

Page 1: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerposSon códigos numéricos para buscar soluciones a lasecuaciones del movimiento para N partículas en interaccióngravitacional.En astrofísica son muy usados para estudiar problemas demecánica celeste, sistemas estelares densos (e.g. cúmulosglobulares) la influencia de agujeros negros, dinámica degalaxias y cosmologíaEl problema queda descrito de la siguiente manera:Cada partícula experimenta una aceleración que surge de laatracción gravitacional de todo el resto de partículas delsistema

La descripción del problema se completa especificando lasvelocidades y posiciones iniciales de las N partículas

Page 2: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerpos El problema se divide en dos partes: 1-calcular la fuerza neta en cada partícula en undeterminado momento2-determinar la nueva posición y velocidad de lapartícula en un nuevo tiempo t+dt

Debido a la no linearidad del problema las singularidadesque aparecen cuando las distancias entre partículas seacerca a 0 (grandes velocidades) dependen de lascondiciones iniciales intervalos de tiempoconstantes pueden resultar en aceleraciones no físicas enencuentros cercanos entre partículas (intervalos detiempo adaptativos!)

Page 3: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerposUna manera para evitar la singularidad es no usarpartículas puntiformes, si asumimos que las partículasson objetos extendidos.

Donde e es la longitud de suavizado, es la distancia típica en lacual la interacción es alterada. En este caso no debemos verlas partículas como estrellas o planetas si no como grupos deobjetos, que ocupan el mismo volumen en el espacio de fase.Este método funciona para sistemas como galaxias en los quelos procesos colisionales no son importantes.

Page 4: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerpos

Cuando el numero de partículas es menor de ~2000partículas podemos calcular las fuerzas sumandodirectamente las fuerzas de cada par de partículas. Es decir,en cada momento tenemos que evaluar la suma i=1,….,N delas fuerzas a las que la partícula j esta sujeta, es decir0.5N(N-1) veces!!

Si consideramos que en 1 segundo evaluamos las fuerzas enun instante determinado de N=104 necesitaremos más de unasemana para evaluar las fuerzas en un sistema de N=107!!

Page 5: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerposSi el numero de partículas es pequeño (N≥3) estamos probablementeinteresados en el comportamiento preciso de las orbitas durante muchosperiodos orbitales >> 105 años

http://faculty.ifmo.ru/butikov/Projects/Collection2.html

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 yestandard en la aproximación de ecuaciones diferenciales, el error delRK4 es del orden del intervalo (h) h5 y el error total acumulado h4.Necesitamos control sobre el intervalo de tiempo, podemos usar unRK4 adaptativo.

Page 6: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerpos En simulaciones astrofísicas estamos probablemente interesados enintervalos de tiempo tanto pequeños como mas grandes, e.g. en un cúmuloglobular las estrellas binarias del centro del cúmulo tienen periodosmedidos 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 (LeidenUniversity), GRAPE4N=61441 seg ~ pocos miles de años

Page 7: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerposPara problemas de pocas partículas, en las que se requieragran precisión en el calculo orbital (e.g. si estamosinteresados en como las orbitas de un planeta se alteran alpaso de una estrella cerca del sistema solar) se usa elintegrados Bulirsch-Stoer. Usa un sistema adaptativo para elintervalo de tiempo y lidia bien con los encuentros cercanosde dos partículas, para una precisión dada, es más rápidoque el Runge-kutta.

Si requerimos velocidad de calculo podemos usar el métodoSymplectic, en este método las orbitas están divididas enuna parte kepleriana y una parte no kepleriana, no lidia biencon encuentros cercanos, pero es útil para problemas en losque queremos entender el efecto a largo plazo de lainteracción entre planetas (sin colisiones)

Page 8: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerposPara problemas de muchas partículas lo que nos importa no esla precisión en la integración a lo largo de muchas orbitas,donde queremos mantener lo más estrictamente posible laconservación de energía y momento.

En sistemas más grandes, como las galaxias estamosinteresados en el comportamiento colectivo de las partículas, yen pocas orbitas. E.g. el periodo orbital del sol alrededor delcentro de la galaxia es de ~250 millones de años, es decir, queel sol solo ha completado unas 18 orbitas desde su formación!El problema de los N-cuerpos cuando N es grande es laintegración de la cantidad enorme de partículas.

Principales problemas: 1-El número de interacciones a integrar

2-Las diferentes escalas de tiempo

Page 9: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerpos Una de las maneras mas simples de lidiar con los diferentesintervalos requeridos es el llamado leapfrof.

Es un integrador de segundo orden, las posiciones estándefinidas en intervalos ti, ti+1, ti+2… y las velocidades enintervalos 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 lasposiciones, 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 losmismo valores (reversibilidad), aunque solo es un esquema desegundo orden los errores se cancelan (salvo los de redondeo)

Page 10: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerpos Una de las maneras mas simples de lidiar con los diferentesintervalos requeridos es el llamado leapfrof.

Es útil para sistemas con un gran numero de partículas y ungrado de disipación interno alto. E.g colisión de galaxias,evolución de un cúmulo de galaxias, donde requerimos conocerel potencial de manera precisa y no un seguimiento preciso delas posiciones y las velocidades

dt=0.01 dt=0.001

Page 11: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

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, allimitar la aceleración el intervalo de tiempo también tiene unvalor mínimo. Problema de esto? No podemos seguir latrayectoria de un sistema binario cercano..es decir, no esposible seguir la trayectoria de un sistema si la longitud desuavizado es mayor que la distancia física que queremosestudiar.

Page 12: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerpos Para tratar el problema de la singularidad de las colisiones entre partículasy nos preocupa seguir la trayectoria de encuentros cercanos no podemosusar el suavizado. La regularización introduce una transformación delsistema de coordenadas que reemplaza el tiempo con un tiemporegularizado.

La aceleración del vector R (separación) de los componentes de un par departí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 laindeterminació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 hayfuerza externas:

Page 13: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

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 masareducida es µ=m1m2/ m1+m2 es:

Esta libre del problema dela indeterminación R/R, siescribimos u2= R:

Ecuación de un osciladorharmónico

Page 14: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerposMétodo Tree de calculo de fuerzas

Método lagrangiano en el que el volumen se subdivide y sololas partículas de celdas cercanas se tratan individualmente, laspartículas en celdas más distantes se tratan como una partículacentrada en su centro de masas, esto reduce el número deinteracciones entre pares de partículas a calcular (tiempo decalculo es ∝ NlogN y no a N2).

Page 15: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Códigos de N-cuerpos Método particle-mesh PM, P3M (Particle-Particle Particle-Mesh) de calculo de fuerzasMétodo euleriano en el que el espacio se discretiza en una malla y se asumeque las partículas se dividen entre los vértices de las celdas de la malla, elpotencial se calcula en esta cuadricula de densidad y las fuerzas se calculanrespecto a la posición de la celda. Varios métodos para convertir un sistemade partículas en una cuadricula de densidad, un método simplementeadjudica la masa de la partícula al punto mas cercano en la cuadricula, elCIC (Cloud-In-Cell) considera las partículas como cubos de densidad y unapartícula puede contribuir en masa a distintas celdas de la cuadriculanormalmente hay menor numero de celdas que de partículas, luego elnumero de interacciones a calcular es menor. Una vez que se tiene ladistribució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 elcalculo

Page 16: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Procesos de dinámica de fluidosMétodo SPH

Es un método Lagrangiano en el que el fluido se discretiza.Estos elemento de fluido tienen una distancia (h) suavizadaentre ellos, las propiedades del fluido están suavizadas a estadistancia con una función (kernel, por ejemplo una Gaussiana)

Si se asigna a cada partícula una distancia de suavizado quecambie con el tiempo la simulación se adapta a las condicionesde cada partícula en cada momento. Combinado con unintegrador y una ecuación de estado simula los flujos dinámicoseficientemente

Page 17: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Procesos de dinámica de fluidosTratamiento de choques en SPH: Cuando dos parcelas defluido se encuentran con velocidad relativa mayor que lavelocidad del sonido, las ondas de sonido son incapaces detransportar la energía del choque y la entropía del gas aumenta.Para el tratamiento de choques SPH usa, en general, unaviscosidad artificial, donde la aceleración de la materiaproducida por la viscosidad es,

El tensor de viscosidad tiene que ser construido de manera queel momento total y angular se conserve y logre imitar el efectomicroscópico de los choques. La viscosidad logra dar unresultado razonable, pero si estamos interesados en estudiarsistemas donde los choques son muy importantes, otras técnicastienen que ser usadas, e.g. técnicas eulerianas, Godunov-SPH

Page 18: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Procesos de dinámica de fluidosMétodo SPH, ejemplo de N-body/SPH, dinámica de unagalaxia como la nuestra

Page 19: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Procesos de dinámica de fluidosMétodo Euleriano calcula las variables que describen un fluidocalculando el flujo en celdas adyacentes de una cuadricula. Paratratar lo choques se usa una viscosidad artificial del tipo de laviscosidad numérica que vimos, en las que el choque ocupavarias celdas de la cuadricula. Hay casos en los que laestructura que se va generando en lasimulación es mas pequeña que eldominio de calculo, en estos casos,una cuadricula uniforme no essuficiente, se pueden usar celdasanidadas funciona si sabemos dondeestán las estructuras a resolver, gridestáticos, si no se necesita unmetodo AMR (adaptive meshrefinement) grid dinámicos

Page 20: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Procesos de dinámica de fluidosMetodo grid Euleriano vs SPH

SPH, ventajas: adaptativo, si hay regiones casi vacías es muchomas eficiente que el grid, más fácil de tratar con problemas congeometrías sin simetrías y contornos libres

Grid, ventajas: trata mejor choques, más fácil de implementaren problemas de MHD y transferencia de radiación

Agertz et al 2007, MNRAS,380, 963

Page 21: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Otros métodos no basados enincrementos finitos

• Elementos finitosSe basa en un grid no estructurado, se utiliza eningeniería.• Monte Carlo es una técnica se muestreo estadístico enla que las soluciones se construyen con simulaciones queinvolucran números aleatorios. Muy utilizado enastronomía.http://astro.u-strasbg.fr/~koppen/numex/Montye.html

Page 22: Códigos de N-cuerpos - UGRisa/numerical-methods2.pdfMé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

Código de la practica: GadgetMillenium 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