Symplectic Integrator Mercury: Bug Report
K. de Souza Torres, D. R. Anderson

TL;DR
This paper reports a bug in the MERCURY symplectic integrator used in astronomy simulations, caused by uninitialised variables, and proposes explicit initialization as a solution to ensure reliable simulations.
Contribution
Identifies a critical bug in MERCURY and demonstrates that explicit variable initialization prevents non-physical disappearance of bodies in simulations.
Findings
Uninitialised variable causes bodies to disappear unexpectedly.
Explicit initialization fixes the bug permanently.
Compiler differences affect bug manifestation.
Abstract
We report on a problem found in MERCURY, a hybrid symplectic integrator used for dynamical problems in Astronomy. The variable that keeps track of bodies' statuses is uninitialised, which can result in bodies disappearing from simulations in a non-physical manner. Some FORTRAN compilers implicitly initialise variables, preventing simulations from having this problem. With other compilers, simulations with a suitably large maximum number of bodies parameter value are also unaffected. Otherwise, the problem manifests at the first event after the integrator is started, whether from scratch or continuing a previously stopped simulation. Although the problem does not manifest in some conditions, explicitly initialising the variable solves the problem in a permanent and unconditional manner.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSimulation Techniques and Applications · Parallel Computing and Optimization Techniques · Modeling and Simulation Systems
