galpy.orbit.Orbit.integrate

Orbit.integrate(t, pot, method='symplec4_c', dt=None, numcores=4, force_map=False)[source]

NAME:

integrate

PURPOSE:

integrate this Orbit instance with multiprocessing

INPUT:

t - list of times at which to output (0 has to be in this!) (can be Quantity)

pot - potential instance or list of instances

method = ‘odeint’ for scipy’s odeint
‘leapfrog’ for a simple leapfrog implementation ‘leapfrog_c’ for a simple leapfrog implementation in C ‘symplec4_c’ for a 4th order symplectic integrator in C ‘symplec6_c’ for a 6th order symplectic integrator in C ‘rk4_c’ for a 4th-order Runge-Kutta integrator in C ‘rk6_c’ for a 6-th order Runge-Kutta integrator in C ‘dopr54_c’ for a 5-4 Dormand-Prince integrator in C ‘dopr853_c’ for a 8-5-3 Dormand-Prince integrator in C

dt - if set, force the integrator to use this basic stepsize; must be an integer divisor of output stepsize (only works for the C integrators that use a fixed stepsize) (can be Quantity)

numcores - number of cores to use for Python-based multiprocessing (pure Python or using force_map=True); default = OMP_NUM_THREADS

force_map= (False) if True, force use of Python-based multiprocessing (not recommended)

OUTPUT:

None (get the actual orbit using getOrbit())

HISTORY:

2018-10-13 - Written as parallel_map applied to regular Orbit integration - Mathew Bub (UofT)

2018-12-26 - Written to use OpenMP C implementation - Bovy (UofT)