Códigos de N

Anuncio
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
Descargar