galpy.orbit.Orbit.integrate_dxdv

Currently only supported for planarOrbit instances.

Orbit.integrate_dxdv(dxdv, t, pot, method='dopr54_c', progressbar=True, dt=None, numcores=2, force_map=False, rectIn=False, rectOut=False)[source]

NAME:

integrate_dxdv

PURPOSE:

integrate the orbit and a small area of phase space

INPUT:

dxdv - [dR,dvR,dvT,dphi], shape=(*input_shape,4)

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

pot - potential instance or list of instances

progressbar= (True) if True, display a tqdm progress bar when integrating multiple orbits (requires tqdm to be installed!)

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)

method = ‘odeint’ for scipy’s odeint

‘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

rectIn= (False) if True, input dxdv is in rectangular coordinates

rectOut= (False) if True, output dxdv (that in orbit_dxdv) is in rectangular coordinates

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_dxdv(), the orbit that is integrated alongside with dxdv is stored as usual, any previous regular orbit integration will be erased!)

HISTORY:

2011-10-17 - Written - Bovy (IAS)

2014-06-29 - Added rectIn and rectOut - Bovy (IAS)

2019-05-21 - Parallelized and incorporated into new Orbits class - Bovy (UofT)