You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This release incorporates major updates and breaks backwards compatability.
Particles can now be identified with a name. The names can be any string. The memory for names is managed by REBOUND. Names are automatically stored in Simulationarchives. Hashes are now longer available to identify particles.
A new interface for integrators has beed added. Thanks to this all the functionality provided by an integrator are implemented in the integrator's C file. This also makes it much easier to experiment with new integrators. To set an integrator from C, you now need to use a function and pass it a string: reb_simulation_set_integrator(r, "ias15"). The syntax from python remains the same to set the integrator. Integrator attributes can now be set in python without the ri_* structs, e.g. sim.integrator.safe_mode = 1 now works for WHFast.
Python bindings are automatically generated for both built-in and custom imtegrators. This includes documentation strings (__doc__) and support for setting enumeration values with a string.
The python structures Simulation and Particle only allow setting attributes that correspond to fields in the C structures. This makes it much easier to find bugs where previously a typo in an assignment failed silently.
The file format for the Simulationarchive has been changed. Note that you can not read Simulationsarchives that were saved with a previous version.
The reb_simulation_add_fmt() function now allows for angles to be initialized with a uniform distribution. The synatx is reb_simulation_add_fmt(r, "a e uniform(omega)", 1.0, 0.1).
The particle array is now kept sorted by default. The user doesn't need to manually specify that the particles should be kept sorted when a particle gets removed.
The tree structure is now regenerated from scratch at every timestep instead of updating a previously generated tree. This simplifies the logic significantly does not negatively affect the runtime.