Skip to content

IAS15

IAS15 is the default integrator of REBOUND.IAS15 stands for Integrator with Adaptive Step-size control, 15th order. It is a very high order, non-symplectic integrator which can handle arbitrary forces (including those who are velocity dependent). It is in most cases accurate down to machine precision (16 significant decimal digits). The IAS15 implementation in REBOUND can integrate variational equations. The algorithm is described in detail in Rein & Spiegel (2015) and also in the original paper by Everhart (1985). The timestepping choice is described in Pham et al. (2024). A short YouTube video also provides a basic introduction to this integrator.

Attributes

epsilon (double)

IAS15 is an adaptive integrator. It chooses its timesteps automatically. This parameter controls the accuracy of the integrator. The default value is 1e-9. Setting this parameter to 0 turns off adaptive timestepping and a constant timestep will is used. Turning off adaptive time-stepping is rarely useful.

It is tempting to change this parameter to achieve a speedup at the loss of some accuracy. However, that makes rarely sense. The reason is that IAS15 is a very high (15th!) order integrator. Suppose we increase the timestep by a factor of 10. This will increase the error by a factor of 1e15. In other words, a simulation that previously was converged to machine precision will now have an error of order unity.

min_dt (double)

This sets the minimum allowed timestep. The default value is 0. Set this to a finite value if the adaptive timestep becomes excessively small, for example during close encounters or because of finite floating point precision. Use with caution and make sure the simulation results still make physical sense as you might be in danger of ignoring small timescales in the problem.

adaptive_mode (uint)

This flag determines how the adaptive timestep is chosen. The previous name of this flag was epsilon_global. The default is PRS23 which corresponds to the timestep criterion described in Pham et al. (2024). This default should be optimal in almost all cases. If set to INDIVIDUAL, the fractional error is estimated via max(acceleration_error/acceleration) and the timestep criterion of Rein & Spiegel (2015) is used. If set to GLOBAL, IAS15 estimates the fractional error via max(acceleration_error)/max(acceleration) where the maximum is taken over all particles and the timestep criterion of Rein & Spiegel (2015) is used. This was the default until January 2024. If set to AARSETH85, then the criterion of Aarseth (1985)) is used.

Supported values

enum constant identifier
0 INDIVIDUAL
1 GLOBAL
2 PRS23
3 AARSETH85