Skip to content

5.0.0

Choose a tag to compare

@hannorein hannorein released this 15 May 16:05
· 45 commits to main since this release
  • 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.
  • Python installs from source are faster.
  • Many other small bug fixes and improvements.

Version 4.x