simulaciones gravitacionales de n cuerpos

40
Simulaciones Gravitacionales de N-Cuerpos Eduardo Jeraldo D. Departmento de Ciencias Físicas Universidad Nacional Andrés Bello 16 de Diciembre de 2011

Upload: eduardo-jeraldo-diaz

Post on 06-Aug-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Simulaciones Gravitacionales de N cuerpos

Simulaciones Gravitacionales de N-Cuerpos

Eduardo Jeraldo D.

Departmento de Ciencias FísicasUniversidad Nacional Andrés Bello

16 de Diciembre de 2011

Page 2: Simulaciones Gravitacionales de N cuerpos

Esquema

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 2 / 22

Page 3: Simulaciones Gravitacionales de N cuerpos

Esquema

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 2 / 22

Page 4: Simulaciones Gravitacionales de N cuerpos

Esquema

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 2 / 22

Page 5: Simulaciones Gravitacionales de N cuerpos

Esquema

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 2 / 22

Page 6: Simulaciones Gravitacionales de N cuerpos

Introducción

Contenido

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 3 / 22

Page 7: Simulaciones Gravitacionales de N cuerpos

Introducción Marco Teórico.

Contenido

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 4 / 22

Page 8: Simulaciones Gravitacionales de N cuerpos

Introducción Marco Teórico.

Marco Teórico

• ¿Que es una simulación de N-Cuerpos?

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 5 / 22

Page 9: Simulaciones Gravitacionales de N cuerpos

Introducción Marco Teórico.

Marco Teórico

• ¿Que es una simulación de N-Cuerpos?

DefiniciónUna simulación de N-cuerpos es una simulación de un sistemadinámico de las partículas, por lo general bajo la influencia de lagravedad.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 5 / 22

Page 10: Simulaciones Gravitacionales de N cuerpos

Introducción Marco Teórico.

Marco Teórico

• ¿Para que sirve resolver este problema?

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 5 / 22

Page 11: Simulaciones Gravitacionales de N cuerpos

Introducción Marco Teórico.

Marco Teórico

• ¿Para que sirve resolver este problema?

RespuestaEstas simulaciones se utilizan para estudiar la evolución dinámica delos cúmulos estelares, los procesos de formación, como el proceso deformación de filamentos de galaxias y los halos de galaxias de materiaoscura en la cosmología física.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 5 / 22

Page 12: Simulaciones Gravitacionales de N cuerpos

Desarrollo

Contenido

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 6 / 22

Page 13: Simulaciones Gravitacionales de N cuerpos

Desarrollo Creación del Programa.

Contenido

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 7 / 22

Page 14: Simulaciones Gravitacionales de N cuerpos

Desarrollo Creación del Programa.

Creación del Programa

Para realizar la simulación necesitamos:• Resolver la ecuación:

• Leyes de Newton.• Constantes Unitarias.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 8 / 22

Page 15: Simulaciones Gravitacionales de N cuerpos

Desarrollo Creación del Programa.

Creación del Programa

Para realizar la simulación necesitamos:• Resolver la ecuación:

• Leyes de Newton.

La ecuación que debemos resolver es la ecuación de Newton.

F = ma

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 8 / 22

Page 16: Simulaciones Gravitacionales de N cuerpos

Desarrollo Creación del Programa.

Creación del Programa

Para realizar la simulación necesitamos:• Resolver la ecuación:

• Leyes de Newton.

Además la fuerza F es la fuerza de interacción entre cuerpos que seencuentran bajo potencial gravitatorio.

Fi =∑i 6=j

Gmimj(ri − rj)∣∣ri − rj

∣∣3

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 8 / 22

Page 17: Simulaciones Gravitacionales de N cuerpos

Desarrollo Creación del Programa.

Creación del Programa

Para realizar la simulación necesitamos:• Resolver la ecuación:

• Constantes Unitarias.

Para no tratar con tantos números, al momento del cálculo, definimosuna manera de que G sea igual a 1. Para esto usamos:

[L]

= α[m][

M]

= β[Kg]

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 8 / 22

Page 18: Simulaciones Gravitacionales de N cuerpos

Desarrollo Creación del Programa.

Creación del Programa

Para realizar la simulación necesitamos:• Resolver la ecuación:

• Constantes Unitarias.

Las siguientes ecuaciones las usamos para la siguiente relación:

[G]= 1

[L]3[

M] [

T]2 = 6,693 ∗ 1011

[m]3[

Kg] [

s]2

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 8 / 22

Page 19: Simulaciones Gravitacionales de N cuerpos

Desarrollo Creación del Programa.

Creación del Programa

Para realizar la simulación necesitamos:• Resolver la ecuación:

• Constantes Unitarias.

Para dejar esto bien implementado, despejamos cuanto tendrá quevaler el tiempo para que G = 1.

[T]=

(α3

6,693β

) 12

∗ 10−112[s]

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 8 / 22

Page 20: Simulaciones Gravitacionales de N cuerpos

Desarrollo Implementación del Programa.

Contenido

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 9 / 22

Page 21: Simulaciones Gravitacionales de N cuerpos

Desarrollo Implementación del Programa.

Implementaciación del Programa.

• Programa realizado en C.• Usar un integrador de dos pasos.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 10 / 22

Page 22: Simulaciones Gravitacionales de N cuerpos

Desarrollo Implementación del Programa.

Implementaciación del Programa.

• Programa realizado en C.• Usar un integrador de dos pasos.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 10 / 22

Page 23: Simulaciones Gravitacionales de N cuerpos

Desarrollo Implementación del Programa.

Implementaciación del Programa.

La parte principal del programa es:

for(j=0;j<N;j++){aa[0][j] = aa[1][j] = aa[2][j] = r = 0.0;for(k=0;k<N;k++){if(k!=j){rx = s[0][j]-s[0][k];ry = s[1][j]-s[1][k];rz = s[2][j]-s[2][k];r1 = 1/(rx*rx + ry*ry + rz*rz);r = sqrt(r1*r1*r1);aa[0][j] -= G*m[k]*rx*r;aa[1][j] -= G*m[k]*ry*r;aa[2][j] -= G*m[k]*rz*r;

}}

}

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 11 / 22

Page 24: Simulaciones Gravitacionales de N cuerpos

Desarrollo Optimización del Programa.

Contenido

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 12 / 22

Page 25: Simulaciones Gravitacionales de N cuerpos

Desarrollo Optimización del Programa.

Optimización del Cálculo.

Para que la rutina de cálculo sea óptima debemos:• Optimizar el cálculo:

• Cálculo Directo.• Cálculo de parte de las aceleraciones.• Cálculo usando Open MP.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 13 / 22

Page 26: Simulaciones Gravitacionales de N cuerpos

Desarrollo Optimización del Programa.

Optimización del Cálculo.

Para que la rutina de cálculo sea óptima debemos:• Optimizar el cálculo:

• Cálculo Directo.

La primera rutina realiza un cálculo de manera directa.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 13 / 22

Page 27: Simulaciones Gravitacionales de N cuerpos

Desarrollo Optimización del Programa.

Optimización del Cálculo.

Para que la rutina de cálculo sea óptima debemos:• Optimizar el cálculo:

• Cálculo de parte de las aceleraciones.

Solo calculamos una parte de la aceleraciones.Gracias a que las aceleraciones representan una matriz de la forma:

0 a12 . . . a1n

a21 0 . . . a2n...

...an1 an2 . . . 0

=

0 a12 . . . a1n

−a12 0 . . . a2n...

...−a1n −a2n . . . 0

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 13 / 22

Page 28: Simulaciones Gravitacionales de N cuerpos

Desarrollo Optimización del Programa.

Optimización del Cálculo.La programación para el cálculo de la parte superior de la matriz deaceleracion:for(j=0;j<N;j++){r = 0.0;for(k=j;k<N;k++) {ax = ay = az = 0.0;if(k!=j){rx = x[0][j]-x[0][k]; ry = x[1][j]-x[1][k];rz = x[2][j]-x[2][k]; r1 = 1 /(rx*rx + ry*ry + rz*rz);r = sqrt(r1*r1*r1);ax = -G*m[k]*rx*r; ay = -G*m[k]*ry*r; az = -G*m[k]*rz*r;

}aa[0][j] += ax; aa[0][k] -= ax;aa[1][j] += ay; aa[1][k] -= ay;aa[2][j] += az; aa[2][k] -= az;

}}

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 14 / 22

Page 29: Simulaciones Gravitacionales de N cuerpos

Desarrollo Optimización del Programa.

Optimización del Cálculo.

Para que la rutina de cálculo sea optima debemos:• Optimizar el cálculo:

• Cálculo usando Open MP.

Open MP nos permite realizar el calcular de manera paralela en losnúcleos del computador en que se ejecuta el programa.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 15 / 22

Page 30: Simulaciones Gravitacionales de N cuerpos

Desarrollo Optimización del Programa.

Optimización del Cálculo.Agregamos la linea que comienza con #pragma para realizar laparalelización#pragma omp parallel for private(x,y,z,ax,ay,az,k,

rx,ry,rz,r1,r2,r)for(j=0;j<N;j++){x = s[0][j]; y = s[1][j]; z = s[2][j];ax = ay =az = 0.0;for(k=0;k<N;k++){if(k!=j){rx = x-s[0][k]; ry = y-s[1][k]; rz = z-s[2][k];r1 = rx*rx + ry*ry + rz*rz; r2 = r1*r1*r1;r = 1/sqrt(r2);ax -= G*m[k]*rx*r; ay -= G*m[k]*ry*r; az -= G*m[k]*rz*r;

}}aa[0][j] = ax; aa[1][j] = ay; aa[2][j] = az;

}

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 16 / 22

Page 31: Simulaciones Gravitacionales de N cuerpos

Desarrollo Optimización del Programa.

Optimización del Cálculo.

Para que la rutina de cálculo sea optima debemos:• Optimizar el cálculo:

• Cálculo usando Open MP.

Open MP nos permite realizar el calcular de manera paralela en losnúcleos del computador en que se ejecuta el programa.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 17 / 22

Page 32: Simulaciones Gravitacionales de N cuerpos

Otra paralelización es posible usando la siguiente rutina:#pragma omp parallel forfor(j=0;j<3*n;j++) aa[0][j] = aa[1][j] = aa[2][j] = 0.0;#pragma omp parallel for reduction(+:bb) private(gmj,x,y,z

,ax,ay,az,k,rx,ry,rz,r,r1,r2,f)for(j=1;j<(n/2);j++){gmj = G*mj; x = s[0][j]; y = s[1][j]; z = s[2][j];ax = ay =az = 0.0; for(k=(j+1);k<n;k++){rx = x-s[0][k]; ry = y-s[1][k]; rz = z-s[2][k];r1 = rx*rx + ry*ry + rz*rz;r2 = r1*r1*r1; r = 1/sqrt(r2);f = G*mj*r; ax += f*rx; ay += f*ry; az += f*rz; f = gmj*r;aa[0][k] -= f*rx; aa[1][k] -= f*ry; aa[2][k] -= f*rz;} aa[0][j] += ax; aa[1][j] += ay; aa[2][j] += az;

m = n - j; if(m!=j){gmj = G*mj; ax = ay =az = 0.0;for(k=m+j;k<n;k++){rx = x-s[0][k]; ry = y-s[1][k]; rz = z-s[2][k];r1 = rx*rx + ry*ry + rz*rz;r2 = r1*r1*r1; r = 1/sqrt(r2);f = G*mj*r; ax += f*rx; ay += f*ry; az += f*rz;f = gmj*r; aa[0][k] -= f*rx; aa[1][k] -= f*ry; aa[2][k] -= f*rz;

} aa[1][m] += ax; aa[1][m] += ay; aa[2][m] += az;}}}

Page 33: Simulaciones Gravitacionales de N cuerpos

Tiempos de Ejecución

Contenido

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 19 / 22

Page 34: Simulaciones Gravitacionales de N cuerpos

Tiempos de Ejecución

Tiempos de Ejecución

Estos son los tiempos de ejecución para una maquina con dosnúcleos:

Figura: Tiempos de ejecución para mil, diez mil y cien mil cuerpos

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 20 / 22

Page 35: Simulaciones Gravitacionales de N cuerpos

Conclución

Contenido

1 IntroducciónMarco Teórico.

2 DesarrolloCreación del Programa.Implementación del Programa.Optimización del Programa.

3 Tiempos de Ejecución

4 Conclución

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 21 / 22

Page 36: Simulaciones Gravitacionales de N cuerpos

Conclución

Conclusión

• El tiempo del programa, usando Open MP, depende delcompilador y la version de este mismo.

• Se debe explorar bien cual es el integrador mas optimo, y queentrege los resultados mas reales.

• Algunos calculos de la libreria matematica se demoran mas queotros.

• El uso de pow(a,b) demora mas que multiplicar a veces a.• Es mas facil multiplicar que dividir.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 22 / 22

Page 37: Simulaciones Gravitacionales de N cuerpos

Conclución

Conclusión

• El tiempo del programa, usando Open MP, depende delcompilador y la version de este mismo.

• Se debe explorar bien cual es el integrador mas optimo, y queentrege los resultados mas reales.

• Algunos calculos de la libreria matematica se demoran mas queotros.

• El uso de pow(a,b) demora mas que multiplicar a veces a.• Es mas facil multiplicar que dividir.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 22 / 22

Page 38: Simulaciones Gravitacionales de N cuerpos

Conclución

Conclusión

• El tiempo del programa, usando Open MP, depende delcompilador y la version de este mismo.

• Se debe explorar bien cual es el integrador mas optimo, y queentrege los resultados mas reales.

• Algunos calculos de la libreria matematica se demoran mas queotros.

• El uso de pow(a,b) demora mas que multiplicar a veces a.• Es mas facil multiplicar que dividir.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 22 / 22

Page 39: Simulaciones Gravitacionales de N cuerpos

Conclución

Conclusión

• El tiempo del programa, usando Open MP, depende delcompilador y la version de este mismo.

• Se debe explorar bien cual es el integrador mas optimo, y queentrege los resultados mas reales.

• Algunos calculos de la libreria matematica se demoran mas queotros.

• El uso de pow(a,b) demora mas que multiplicar a veces a.• Es mas facil multiplicar que dividir.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 22 / 22

Page 40: Simulaciones Gravitacionales de N cuerpos

Conclución

Conclusión

• El tiempo del programa, usando Open MP, depende delcompilador y la version de este mismo.

• Se debe explorar bien cual es el integrador mas optimo, y queentrege los resultados mas reales.

• Algunos calculos de la libreria matematica se demoran mas queotros.

• El uso de pow(a,b) demora mas que multiplicar a veces a.• Es mas facil multiplicar que dividir.

Eduardo Jeraldo (UNAB) Simulación de N-Cuerpos 16/11/2011 22 / 22