El problema de los N cuerpos gravitatorio implica calcular las trayectorias de N cuerpos de masa dada y con condiciones iniciales dadas (posiciones y velocidades), que interaccionan con fuerzas gravitacionales. El ejercicio plantea:
- Obtener los datos de los cuerpos, tres en la entrega: Sol, Tierra, cometa halley del sistema horizons.
- Calcular la evolución de cada planeta o sea actualización tiempo a tiempo (de a pasos delta-t ) de posiciones, velocidades, aceleraciones, a partir del tiempo inicial (1986-01-01 en la entrega) y de las condiciones iniciales respectivas (vectores Po y Vo) para cada cuerpo.
- Guardar para cada planeta, las posiciones tiempo a tiempo en archivos de salida: cuerpo-<id>.out donde <id> es el id del planeta.
- Graficar las trayectorias de todos los planetas juntos de forma legible con gnuplot
- Integrar todo lo anterior en un script de Linux que al ejecutarlo haga todo lo pedido: bajar los datos del sistema horizon para los 3 cuerpos, filtrar la bajada para quedarse con los datos de posición y velocidad en cada tiempo discreto (determinado por el paso de tiempo que es el mismo que el paso de integración temporal, 1 día en la entrega) y en base a la primera tuple de los datos invocar a Fortran para corre la simulación. Finalmente el script debe graficar en gnuplot en base a los tres archivos generados, las oribitas en el plano X,Y de todos los cuerpos.
Se debe tener en cuenta loa siguiente:
- Hay que parametrizar bien el problema tal que sea modificable en todos sus parámetros.
- Encapsular de forma clara los distintos pasos/subtareas independientes y reconocibles en procedimientos de forma que la actualización de una mejora algorítmica en una de las subtareas sea desacoplada del resto (usando subrutinas y/o funciones).
- Los códigos, scripts presentados deben ser comentados. Se debe dar una descripción de los pasos básicos para correr la aplicación. Se entregará el script de Linux, el fuente .f90 de Fortran y el script de gnuplot.
Aclaración: El script de Linux debe llamarse ncuerpos.sh. El fuente de Fortran ncuerpos.f90. El script de gnuplot: ncuerpos.plt. De entregarse material que siga esta convención, NO SE CORREGIRÁ y se pedirá al alumna/o que lo corrija y vuelva a subir. LA entrega debe asumir que se descargará en una carpeta de trabajo cualquiera y debe funcionar, usar rutas relativas, en caso de no funcionar por un problema de rutas que no se ajuste a lo pedido, se le pedirá que lo corrija y vuelva a subirlo.