Moon Packing: data and software for tidal evolution of packed moon systems

Read full text
Authors: Alan Briseno, Billy Quarles, Marialis Rosario-Franco
Cited by: 1

Abstract

This reproducibility package contains the software, tabulated simulation results, and REBOUND binary simulation archives supporting Briseno, Quarles, and Rosario-Franco (2026), “Tidal evolution of packed moon systems around an Earth-mass planet.” The study investigates how many equal-mass moons can remain dynamically stable around an Earth-mass planet orbiting at 1 au from a Sun-mass star when mutual gravitational interactions and tidal evolution are included. The calculations use the REBOUND N-body package with the IAS15 integrator and the tides_spin model implemented through REBOUNDx. The study considers three representative satellite-system architectures: Architecture Number of moons Planetary tidal time lags Luna-mass moons 2 0, 100, and 698 s Pluto-mass moons 3 0, 100, and 698 s Ceres-mass moons 5 0, 100, and 698 s The deposited materials can be used to reproduce the published lifetime and eccentricity sweeps, reproduce the eccentricity-variation maps, inspect selected integrations through their complete stored snapshot histories, and run new N-body and tidal-evolution calculations. Archive Structure The deposit contains two ZIP archives: AlanB2006/Moon-Packing-V1.1-AAS.zipSimulation-Archive.zip The first archive is the complete software and reproducibility repository. It contains the Python package, plotting and simulation scripts, archived tables, reference figures, documentation, examples, tests, and environment specifications. The second archive contains the larger REBOUND SimulationArchive binary files required by the legacy simulation-archive plotting workflow. A simplified representation of the deposited contents is: AlanB2006/Moon-Packing-V1.1-AAS.zip └── AlanB2006-Moon-Packing-e58cf6e/ ├── README.md ├── data/ │ ├── sweeps/ │ │ ├── Luna/ │ │ ├── Pluto/ │ │ └── Ceres/ │ ├── eccentricity_maps/ │ │ ├── Luna/ │ │ ├── Pluto/ │ │ └── Ceres/ │ ├── Legacy/ │ ├── generated/ │ ├── MANIFEST.csv │ └── Simulation_Archive.ipynb ├── src/moon_packing/ ├── Scripts/ ├── examples/ ├── notebooks/ ├── docs/ ├── figures/ │ ├── reference/ │ └── reproduced/ ├── legacy/ ├── tests/ ├── environment.yml ├── requirements.txt ├── pyproject.toml └── checksums.sha256 Simulation-Archive.zip └── Simulation-Archive/ ├── L_1.bin ├── L_2.bin ├── L_3.bin ├── P_1.bin ├── P_2.bin ├── P_3.bin ├── C_1.bin ├── C_2.bin └── C_3.bin Software Archive Contents Directory or file Description README.md Primary user guide. This should be the starting point for installing the software, understanding the repository layout, reproducing figures, running new simulations, and locating additional documentation. data/sweeps/ Published simulations varying the initial mutual-Hill spacing parameter, β. These integrations begin with approximately circular moon orbits and are used for the lifetime and maximum-eccentricity results for the Luna-, Pluto-, and Ceres-mass systems. data/eccentricity_maps/ Published two-dimensional grids varying both the initial mutual-Hill spacing and initial moon eccentricity. These files are used to reproduce the eccentricity-variation maps. data/Legacy/ Original simulation-output tables retained for provenance and comparison with the reorganized reproducibility data directories. data/generated/ Default destination for output from newly executed simulations. The directory is intentionally empty in the distributed repository except for placeholder files. data/MANIFEST.csv Inventory of archived data files, including file sizes, row counts, and SHA-256 checksums. src/moon_packing/ Reusable Python package containing the simulation setup, tidal model interface, input/output functions, physical constants, and plotting routines. Scripts/ Simulation drivers, plotting programs, figure-reproduction scripts, grid-running tools, time-series tools, and tidal-model validation programs. examples/ Small laptop-compatible examples and scheduler-oriented examples, including a SLURM array-job template for cluster calculations. notebooks/ Guided examples demonstrating installation, basic use, and short simulations. docs/ Data dictionary, manuscript figure map, reproducibility instructions, and Zenodo-release documentation. figures/reference/ Supplied manuscript-ready reference figures against which reproduced output may be compared. figures/reproduced/ Destination for figures generated from the archived data tables. legacy/ Original scripts and notebooks retained substantially unchanged to preserve the historical analysis workflow. tests/ Unit tests and plotting smoke tests for the reusable software package. environment.yml, requirements.txt, and pyproject.toml Conda and pip dependency specifications and Python-package configuration. checksums.sha256 SHA-256 checksums for validating the integrity of the extracted repository files. The tabulated files under data/sweeps/ and data/eccentricity_maps/ are comma-separated text files with commented headers. Depending on the calculation, their columns record the initial mutual-Hill spacing, initial eccentricity, maximum and minimum eccentricities of the individual moons, fractional semimajor-axis changes, integration end time, wall-clock runtime, and the physical or numerical termination condition. Possible termination labels include completion of the requested integration duration, a direct collision, passage beyond the adopted outer stability boundary, an osculating eccentricity greater than unity, or a negative osculating semimajor axis. REBOUND SimulationArchive Files Simulation-Archive.zip contains nine REBOUND SimulationArchive binary files. The first letter identifies the satellite-mass architecture: Files System represented L_1.bin–L_3.bin Integrations containing two Luna-mass moons P_1.bin–P_3.bin Integrations containing three Pluto-mass moons C_1.bin–C_3.bin Integrations containing five Ceres-mass moons For each mass architecture, the three numbered files represent the three tidal treatments examined in the study: tidal time lags of 0, 100, and 698 seconds. The lag value is not written explicitly in the binary filename, so the filenames and their ordering should be preserved when using the legacy analysis scripts. Each .bin file is a REBOUND SimulationArchive rather than a conventional tabular data file. It contains a time-ordered sequence of serialized simulation snapshots from an N-body and tidal integration. These snapshots preserve the evolving system state and allow the user to reconstruct quantities such as: the positions of the moons relative to the planet; the moons’ semimajor axes and eccentricities; the orbital periods and adjacent-moon period ratios; the temporal evolution of the packed satellite configuration. The binary archives can be opened using REBOUND’s Simulationarchive() interface, for example: import rebound archive = rebound.Simulationarchive("L_1.bin") for simulation in archive: particles = simulation.particles time = simulation.t The SimulationArchive files are used by the original or legacy plotting workflow to inspect representative orbital histories and generate orbital-position and time-series panels. They are distinct from the sweep tables and eccentricity-map tables stored in the software archive. The binary archives are not required for the primary table-based commands that reproduce the published lifetime, maximum-eccentricity, and eccentricity-map figures. They are required when directly executing the legacy workflow that reads the stored REBOUND snapshots. Data Usage Guidance Users should begin by extracting AlanB2006/Moon-Packing-V1.1-AAS.zip and reading the top-level README.md. The README provides the authoritative installation instructions, repository map, figure-reproduction commands, examples for launching new simulations, software-version information, and links to the detailed data dictionary and reproducibility documentation. Python 3.10–3.12 is recommended. The manuscript calculations used REBOUND 4.4.6 and REBOUNDx 4.4.1. Conda users may create the supplied environment with: conda env create -f environment.yml conda activate moon-packing python -m pip install -e . The principal published figures based on the archived tables can be reproduced without rerunning the computationally expensive production simulations: moon-packing-figures --figures 2 3 4 8 9 10 This command reads the tables in data/sweeps/ and data/eccentricity_maps/ and writes newly generated figures to figures/reproduced/. The full production sweep integrations extend to 10⁷ periods of the innermost moon, while the eccentricity-map integrations extend to 10⁵ inner-moon periods. Recomputing the complete grids is therefore computationally expensive and is intended primarily for execution on a computing cluster. Small demonstration grids and short time-series integrations suitable for a laptop are provided in the README and examples/ directory. Users wishing to run the legacy SimulationArchive workflow should also extract Simulation-Archive.zip and either place the .bin files in the directory expected by the selected legacy script or update the input paths in that script. The archive filenames should not be changed unless the corresponding script references are also changed. Data integrity can be checked using data/MANIFEST.csv and the supplied checksum file: sha256sum --check checksums.sha256 Additional information is available in: README.md for installation and general usage; docs/DATA_DICTIONARY.md for table columns and termination labels; docs/FIGURE_MAP.md for the relationship between archived files and manuscript figures; docs/REPRODUCIBILITY.md for production parameters and computational workflows; data/Simulation_Archive.ipynb for information abo

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
12 July 2026
Language
EN