Orbit.integrate_SOS(psi, pot, surface=None, t0=0.0, method='dop853_c', progressbar=True, numcores=2, force_map=False)[source]




integrate this Orbit instance using an independent variable suitable to creating surfaces-of-section


psi - increment angles over which to integrate [increments wrt initial angle] (can be Quantity)

pot - potential instance or list of instances

surface= (None) surface to punch through (this has no effect in 3D, where the surface is always z=0, but in 2D it can be ‘x’ or ‘y’ for x=0 or y=0)

t0= (0.) initial time (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 ‘dop853’ for a 8-5-3 Dormand-Prince integrator in Python ‘dop853_c’ for a 8-5-3 Dormand-Prince integrator in C

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

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)


None (get the actual orbit using getOrbit())


2023-03-16 - Written - Bovy (UofT)