Integrador EVORB13
(version 13, setiembre de 2007)
Integracion numerica de sistema de M particulas sin masa en el campo de N planetas
masivos y una estrella central.
Este programa corre en DOS y Windows.
No necesita instalacion,
simplemente
descomprima evorb.zip
y copie los
archivos a una carpeta.
Determina la evolucion de los elementos orbitales heliocentricos
(a, e, i, longitud del nodo ascendente, argumento del perihelio,
anomalia media) de un sistema de planetas (con cierto radio en km y
cierta masa en masas solares) y particulas (sin radio ni masa) bajo
el efecto gravitacional de un cuerpo central (que puede
ser el Sol u otra estrella) y de los demas cuerpos masivos. Se
necesita al menos un planeta y una particula. Maximo de objetos que
integra: 500. No integra orbitas hiperbolicas, al detectarse
una orbita hiperbolica el objeto es eliminado.
No puede haber encuentros proximos entre objetos masivos pues
el programa pierde precision. En cambio el programa maneja muy bien los encuentros
de las particulas (sin masa) con los planetas (masivos).
Puede integrar tambien hacia el pasado.
Utiliza el integrador de A. Brunini (UNLP) y la adaptacion
es de
T. Gallardo (FC-UR).
Es opcional la posibilidad de considerar efectos relativistas provocados
por el cuerpo central segun Quinn et al. (1991, AJ, 101, 2287).
NO aplica correccion relativista si
la distancia heliocentrica es muy pequeña pues se introduciria un error.
No considera
achatamiento de estrella central.
Este programa se distribuye para fines puramente experimentales
para el curso de
Mecanica Celeste de Facultad de Ciencias.
Si su nave espacial se aparta de la trayectoria indicada
por este programa no nos hacemos responsables.
Si necesita apoyo celeste consulte (gallardo@fisica.edu.uy) o lea
este
Manual del Mecánico Celeste (de dudosa ayuda). Tal vez Ud quiera consultar tambien el
Atlas de resonancias de movimientos medios.
En publicaciones cientificas este integrador puede ser referido como
Fernández, J. A., Gallardo, T., and Brunini, A.: 2002, ‘Are There Many Inactive Jupiter Family
Comets Among the Near-Earth Asteroid Population?’, Icarus 159, 358-368.
El integrador ha sido usado en varios articulos cientificos sobre dinamica de asteroides, cometas y
objetos transneptunianos.
ESQUEMA DE USO:
1 2
datos.dat ------> evorb13.exe -------> energia.sal (control de precision)
finales.sal (elementos finales de los cuerpos eliminados)
colisio.sal (elementos de cuerpos que colisionaron)
encuent.sal (encuentros de particulas con planetas)
orbitas.sal (evolucion de elementos orbitales)
xyzv.sal (posiciones y velocidades)
condin.xxx (para continuar la integracion)
3
encuent.sal + orbitas.sal ------> sacando.exe -----> evoxxxx.dat (evolucion del cuerpo xxxx)
encxxxx.dat (encuentros del cuerpo xxxx)
3
xyzv.sal ------> sacandox.exe -----> xyzxxxx.dat (evolucion del cuerpo xxxx
en coordenadas cartesianas)
1) PRIMER PASO: preparar datos.dat
En datos.dat (editarlo con bloc de notas o TextPad, atencion: cambio levemente respecto a
versiones anteriores) se deben indicar los detalles de la integracion numerica:
- indice para considerar o no efectos relativistas
- indice para guardar o no archivo con posiciones y velocidades
- distancia minima y maxima a la estrella permitidas
-
masa central en masas solares y radio en kms
- tiempo total de la integracion en años julianos (de 365.25 dias).
Si desea integrar hacia el pasado basta poner un tiempo negativo.
- intervalo de escritura de datos (si es muy chico se llenara
el disco duro...). DEBE SER MULTIPLO DEL PASO.
- paso: si es grande va rapido pero acumula errores, se recomienda
hacer algunas pruebas con paso del orden de la cincuenta-ava parte del
menor periodo orbital de los objetos intervinientes
- indice: poniendo 0 empieza una nueva integracion y poniendo 1 continua
con una anterior
- numero de planetas que intervienen, pueden ser reales o ficticios
(minimo uno)
- epoca para los elementos de esos planetas
- los elementos de esos planetas, una linea por cada planeta que interviene
- numero de particulas que intervienen (minimo una)
- epoca para los elementos de esas particulas (este sera el instante inicial de la integracion)
- los elementos de esas particulas, una linea por cada particula que interviene
Ejemplo, si desea la evolucion de un asteroide o cometa obtenga
sus elementos orbitales de alguno de los
lugares citados abajo o del
Astronomical Almanac (seccion G), pongalo como
particula y corra el programa usando todos los (8) planetas.
A veces es posible depreciar Mercurio
y agregar su masa al Sol.
Importante: no elimine los comentarios (*) de datos.dat pues el
programa asume que estan alli. Luego de la lectura de la ultima linea de
datos de las particulas el programa no leera nada mas de datos.dat
asi que puede escribir y guardar lo que quiera alli.
Un practico conversor de fechas a JD se encuentra en
http://aa.usno.navy.mil/AA/data/docs/JulianDate.html
Para saber el JD exacto de un evento en la integracion que ocurre
en el tiempo T basta calcular:
JD(T) = JDEpocaParticulas + T*365.25
Ejemplo de datos.dat:
*INDICE PARA CONSIDERAR (1) O NO (0) EFECTOS RELATIVISTAS
0
*INDICE PARA GUARDAR (1) O NO (0) ARCHIVO CON (X,Y,Z,Vx,Vy,Vz)
1
*LIMITES INFERIOR Y SUPERIOR EN UAs PARA ELIMINACION DE CUERPOS
0.01 300.0
*MASA CENTRAL EN MASAS SOLARES Y RADIO EN kms
1.0 696000.0
*TIEMPO MAXIMO DE LA SIMULACION EN AÑOS:
1000.0
*INTERVALO DE ESCRITURA EN AÑOS (multiplo del PASO):
100.0
*PASO DE INTEGRACION en años:
0.005
*INDICE PARA RE-ARRANQUE (0 ES UNA CORRIDA NUEVA, 1 ES CONTINUACION)
0
*NUMERO DE PLANETAS (minimo uno)
8
*JD epoca de planetas
2451400.5
*elementos J2000 de los planetas: N a e i nodo argper anomedia masa radio(km)
1 0.38709897 0.205622188 7.0050053 48.3307302 29.1239378 303.4539666 1.66013679D-07 2440.0
2 0.72333793 0.006771606 3.3945712 76.6821802 54.8201213 178.9704486 2.44783833D-06 6052.0
3 0.99998836 0.016736826 0.0001213 27.6464539 75.3942093 215.0034486 3.04043264D-06 6371.0
4 1.52367503 0.093290001 1.8498920 49.5616397 286.5090192 303.6562023 3.22715144D-07 3390.0
5 5.20399661 0.048719684 1.3046775 100.4829904 275.0927233 6.8013147 9.54791938D-04 69911.0
6 9.58195033 0.055272778 2.4852156 113.6436321 335.5040835 315.9800041 2.85885980D-04 58232.0
7 19.24744286 0.043713914 0.7727272 74.0128993 97.4115217 140.3579592 4.36624404D-05 25362.0
8 30.14125054 0.011166945 1.7676331 131.7957546 259.2549938 273.2914807 5.15138902D-05 24624.0
*NUMERO DE PARTICULAS (minimo una)
4
*JD epoca de particulas
2452880.5
*elementos J2000 de ESAS particulas: N a e i nodo argper anomedia
10 6.927713 0.8156838 29.0741 218.0082 171.1487 177.1351
11 6.001769 0.7876825 18.70094 22.21415 257.2521 0.0513757
12 5.671776 0.8240879 54.69256 270.5487 206.7027 244.5646
13 5.132881 0.7743644 4.87674 14.41821 22.32553 196.9951
Con estos datos estariamos integrando sin considerar efectos relativistas por 1000 años con salida cada
100 años y con paso 0.005 años a los 8 planetas mas
4 objetos que en este caso son los cometas
P/McNaught-Russell(1994X1) ,
66P/duToit ,
8P/Tuttle y
85P/Boethin.
Se guardaran tambien los datos de posiciones y velocidades y todo objeto
que se aproxime 0.01 UA del Sol o se aleje mas de 300.0 UA del Sol
sera eliminado.
El numero entero identificatorio de cada objeto no debe repetirse y debe estar comprendido entre
1 y 9999.
2) SEGUNDO PASO: ejecutar evorb13.exe
Ejecute evorb13.exe haciendo doble clic y espere....
Una vez terminada la integracion:
-
En "encuent.sal" habra un listado y detalles de los encuentros
a menos de 2 radios de Hill:
instante, distancia minima en radios planetarios (si es menor
que 1 hubo colision), velocidad de encuentro en pericentro, energia planetocentrica
(si es negativa estaba temporariamente capturado), planeta, particula.
-
En "finales.sal" estan las condiciones finales de los objetos que
fueron eliminados
por eyeccion del sistema o por colision. Se guardan los elementos
orbitales anteriores al impulso que eliminó a la particula.
-
En "colisio.sal" estan los datos de los objetos que colisionaron con un
planeta (eventos raros) o con el Sol (indice 0).
-
En "orbitas.sal" esta el detalle de evolucion de todos los cuerpos.
-
En "xyzv.sal" esta el detalle de evolucion de todos los cuerpos en coordenadas
rectangulares.
-
En "energia.sal" tenemos para control la evolucion de la energia
del sistema de cuerpos masivos, que debe mantenerse constante con el tiempo.
A partir de la version 11.5 se agrega la energia cinetica y la potencial
a efectos de observar su oscilacion.
-
No intente abrir el archivo "condin.xxx" pues esta en binario y contiene
los datos de los objetos de la ultima integracion por si ud desea
continuarla luego (por ejemplo a causa de un apagon) colocando previamente el indice 1 en datos.dat.
-
Si hay un solo planeta, automaticamente se generara un archivo
"cjacobi.sal" conteniendo la evolución de la cte de Jacobi para la
primer particula. Se utiliza para probar la precision del integrador
colocando un planeta con e=0, i=0.
3) TERCER PASO: ejecutar sacando.exe y/o sacandox.exe
Para obtener un archivo con la evolucion para un objeto particular
corra el programa "sacando.exe" haciendo doble clic. Se generan
2 archivos para el objeto conteniendo su evolucion orbital
y su historia de encuentros. Estos archivos
son facilmente graficables.
Si le interesa la evolucion de la posicion y velocidad de algun objeto
debera ejecutar "sacandox.exe". Esta ultima opcion suele emplearse para ver el detalle
del encuentro entre 2 cuerpos.
Accesorios para manejo de datos
Un práctico y poderoso graficador de datos lo encuentra en
GNUPLOT. Y seguro que
WinGrep le sera de suma
utilidad para hurgar en grandes archivos de datos (mineria de datos).
Un editor muy recomendable con sorting y manejo de columnas
y bloques de datos es
TextPad.
CONTINUACION DE INTEGRACION ANTERIOR
Si desea continuar una integracion terminada o cortada
por un apagon tiene 2 opciones:
-
en datos.dat ponga el nuevo tiempo final (que puede ser el mismo si
se corto la integracion) y sustituya el 0 por
un 1 en el indice de re-arranque. El archivo "condin.xxx"
debe estar disponible. Ejecute el programa. Los nuevos datos se agregan
a los archivos anteriores (si ya existen) o se crean nuevos archivos
(si no existen).
-
otra opcion (menos precisa) es tomar los elementos de orbitas.sal y
ponerlos en datos.dat agregando masas y radios de planetas y
poniendo la misma epoca (cualquiera) para planetas y particulas. Previamente guarde aparte
los archivos generados en la corrida anterior.
ADVERTENCIAS
-
Si el paso es el adecuado y no hay encuentros la integracion
es muy precisa
- Si hay encuentros los resultados para las particulas
son precisos para los primeros encuentros luego los
resultados seran cualitativamente validos
- Orbitas con periodo menor que paso*50 y que ademas tienen
excentricidad
mayor que 0.98 comienzan a
perder precision en la integracion. La solucion es disminuir el
paso.
- Los encuentros con los planetas cuyo periodo sea < paso*50
estaran mal calculados. Ejemplo: si se integra a Mercurio
con particulas que lo encuentran sera necesario usar paso = 0.005 años
de lo contrario apareceran eliminaciones espureas por mal manejo
de encuentros.
- Cuando un cuerpo adquiere distancia heliocentrica tal que
r < (20*paso)^(2/3) , deja de aplicarse la correccion relativista
pues se introduce un error inaceptable. Habra que usar un paso menor.
(Mercurio se integra perfectamente con paso 0.005).
BUGS
En la version 13 se agregan 2 lineas al inicio de "datos.dat" para hacer opcional
la correccion relativista. Se corrige conteo del tiempo en pantalla (en integraciones largas
se acumulaba un error de redondeo).
A partir de la version 12.R se consideran efectos relativistas provocados
por el cuerpo central segun Quinn et al. (1991, AJ, 101, 2287).
Cuando la distancia heliocentrica es muy pequeña la correccion relativista
introduce un error notorio. Por estra razon
en la version 12.RC limitamos la aplicacion de la correccion relativista
a distancias mayores que un cierto limite (r**1.5 > 20*paso).
La version 12.0 sustituye a las anteriores y supuestamente hemos
corregido los errores de las versiones anteriores.
En la version 11.5 corregimos error en el calculo de la energia total
del sistema (para control) que aparecia en caso de sistemas donde la estrella central
tuviera masa diferente de 1. Ahora ademas se guardan la energia cinetica
y la potencial para los curiosos.
En la version 11.4, gracias a Esmeralda Mallada,
corregimos un error en el calculo de la distancia de
un encuentro que se manifiesta en caso de encuentros muy alejados (mas de
un radio de Hill), por causa de este error aparecian encuentros muy proximos
en "encuent.sal" cuando en realidad eran muy alejados.
En la version 11.2 corregimos un pequeño error en el calculo
del instante de los encuentros proximos.
En alguna compilacion anterior el programa abortaba por faltar una libreria que el usuario desprevenido seguramente no tendria.
Ahora se soluciono en esta version compilada con g77.
ELEMENTOS ORBITALES
- ASTEROIDES
- COMETAS
- PLANETAS DEL SISTEMA SOLAR
- CENTAUROS Y TNO
- OTROS SISTEMAS
- PROGRAMA PARA DETERMINACION DE ORBITAS. A partir de
datos observacionales es posible determinar orbitas en forma sencilla
utilizando por ejemplo
FindOrb. Tambien es posible hacerlo de forma un poquito mas complicada pero
precisa con
OrbFit.
- PROGRAMAS PARA SELECCION Y VISUALIZACION DE ORBITAS. Si le interesa la trayectoria de un objeto respecto
a un sistema rotante Sol-Planeta de recomiendo
NEAPLOT.
Otros integradores
Fortran
Compilador y Editor FORCE 2.0 (libre)
http://force.lepsch.com/