What does HackerNews think of rebound?

💫 An open-source multi-purpose N-body code.

Language: C

This is some neat research (and related to some of the work I did in my PhD). For those who are just reading the comments, the authors are exploring the impact of general relativity on the stability of the Solar System. It's been known now for a few decades that the Solar System is only marginally stable [1]. The gravitational perturbations of all the planets on each other (though mostly coming from Jupiter) cause the orbits of the planets to change slowly over time. It turns out, though, that Mercury is the closest to unstable, and has a ~1% chance of being ejected from the Solar System in the next billion years.

One of the interesting things about Mercury, is that general relativity has a non-negligible effect on its dynamics (the famous "perihelion precession" that Einstein explained). What the authors did in this paper is run a number of long term simulations of the Solar System with general relativity --- but then they switched it off at a random time. What they find is that after switching off general relativity the Solar System goes unstable shortly thereafter. So the stability of the Solar System is highly dependent on general relativity.

As a side note, the second author on the paper is Hanno Rein, who wrote Rebound [2], which is a very cool state of the art gravitational simulator. If you ever want to play around with gravitational dynamics, that's what I'd recommend using. (And that's what they use in this paper.)

[1]: This is not terribly surprising because it turns out that nearly every dynamical system with more than three bodies is only marginally stable on a timescale of order its own lifetime.

[2]: https://github.com/hannorein/rebound

Hanno Rein and Daniel Tamayo are pretty legit dynamicists. For anyone interested in doing calculations like these themselves, they've been working on this amazing N-body library called Rebound:

https://github.com/hannorein/rebound

One of my all-time favorite figures is Fig. 1 of this paper of theirs describing one of the integrators used in Rebound:

https://arxiv.org/abs/1704.07715

> But honestly I am certain that it is something in particular and not something mysterious about conservation of energy/momentum which i have not come across yet, because there is no formula in that gravity simulation which should be able to destroy momentum

It's a well established fact that numerical integration methods either gain or lose energy (in particular, the Runge-Kutta family is known to lose energy over time). For celestial mechanics simulations, a special class of numerical integration methods called "symplectic integrators" are used and their purpose is to conserve energy and angular momentum.

> but if you do any adjustments to correct it, that is a kind of fudge not based in true physics.

When you are numerically integrating differential equations that model physical phenomena, you're not doing "true physics" but an approximation thereof.

And an approximation that makes Earth drift 70 km per year or Saturn's moons drift out of orbit in a few hundred years is a very bad approximation by scientific standards.

The methods used for celestial mechanics calculations need to be precise over thousands to millions of years. And the way they work is to "fudge" with the numerical methods to preserve energy and angular momentum. It's a much better approximation of "true physics" than your toy simulation.

Your assumption that the issues are due to floating point errors is incorrect. 64 bit double precision is millimeter accurate to the orbit of Neptune. That's good enough for scientific applications.

If you're interested in this, you could take a look at this scientific grade N-body simulator and the methods it uses: https://github.com/hannorein/rebound

Hey there! I'm a grad student in my last year and my research is in orbital dynamics. I've recently started getting into the rebound package written by Hanno Rein:

https://github.com/hannorein/rebound

There's some tutorials that come with it. It can also read data from JPL's ephemerides to calculate orbits of various planets and minor bodies in the Solar System. It has a couple of different integrators (some symplectic, some not), but one of them (IAS15) is new and (as far as I know) the best for long-term integrations of Solar-System-like systems.

Also if you're interested in studying the long-term evolution of hierarchical triples, I wrote a Python package to study that:

https://github.com/joe-antognini/kozai

As far as star charts, you can do things like that with AstroPy. If you want the coordinates of stars, look into astropy.vo, and then if you want to plot them, you can do that with some of the functions in astropy.wcs.

Have submitted a counter-complaint (#2-4109000005746) for the following:

# curl https://www.chillingeffects.org/notices/10275257 | grep github

     https://help.github.com/articles/dealing-with-non-fast-forward-errors/
     https://github.com/Zizzamia/ng-tasty
     https://github.com/zen-kernel/zen-kernel
     https://github.com/yahoo/pure/releases/
     https://github.com/yahoo/pure
     https://github.com/YabataDesign/afterglow-theme
     https://github.com/wet-boew/wet-boew
     https://github.com/wearefractal/glob-watcher
     https://github.com/wanderlust/wanderlust
     https://github.com/thombergs/wicked-charts
     https://github.com/Thibauth/python-pushover
     https://github.com/tcnksm/vagrant-pushover
     https://github.com/substack/pushover
     https://github.com/SteveSanderson/knockout-es5
     https://github.com/sps/pushover4j
     https://github.com/sensu/sensu-community-plugins/blob/master/handlers/notification/pushover.rb
     https://github.com/schneems/wicked/wiki/Testing-Wicked-with-RSpec
     https://github.com/schneems/wicked
     https://github.com/satyr/coco
     https://github.com/satyr
     https://github.com/sampsyo/beets/issues/546
     https://github.com/rust-lang/cargo
     https://github.com/rniemeyer/knockout-delegatedEvents
     https://github.com/rniemeyer/knockout-amd-helpers
     https://github.com/qbit/node-pushover
     https://github.com/openSUSE/wicked/issues/432
     https://github.com/openSUSE/wicked
     https://github.com/Nuku/Flexible-Survival/blob/master/Stripes/Candy
     https://github.com/Netflix/Lipstick
     https://github.com/nemomobile/lipstick
     https://github.com/mrmrs/colors
     https://github.com/mirage
     https://github.com/mileszs/wicked_pdf/issues/78
     https://github.com/LubosD/darling
     https://github.com/laprice/pushover
     https://github.com/kryap/php-pushover
     https://github.com/krisselden/broccoli-sane-watcher
     https://github.com/Knockout-Contrib/Knockout-Validation
     https://github.com/knockout/knockout
     https://github.com/knockout
     https://github.com/kirang20/wgxp-java-rosa
     https://github.com/jreese/znc-push/blob/master/doc/pushover.md
     https://github.com/jnwatts/pushover.sh
     https://github.com/jfinkels/flask-restless/
     https://github.com/jasonlewis/resource-watcher
     https://github.com/huxi/lilith
     https://github.com/hannorein/rebound
     https://github.com/gregghz/Watcher
     https://github.com/feuerbach/tasty
     https://github.com/facebook/rebound-js
     https://github.com/facebook/rebound
     https://github.com/erniebrodeur/pushover
     https://github.com/entertailion/Fling/blob/master/README.md
     https://github.com/enkydu/raspi_runner
     https://github.com/dyaa/Laravel-pushover
     https://github.com/danesparza/Pushover.NET
     https://github.com/crazed
     https://github.com/callmenick/css-loaders-spinners-2/tree/master/js
     https://github.com/callmenick/css-loaders-spinners-2
     https://github.com/allure-framework/allure-core
     https://github.com/abrt/satyr
Thanks for reaching out to us!

We have received your legal request. We receive many such complaints each day; your message is in our queue, and we'll get to it as quickly as our workload permits.

Due to the large volume of requests that we experience, please note that we will only be able to provide you with a response if we determine your request may be a valid and actionable legal complaint, and we may respond with questions or requests for clarification. For more information on Google's Terms of Service, please visit http://www.google.com/accounts/TOS

Regards,

The Google Team