Adds full secular resonance detection to the Python package resonances with flexible frequency parsing and secular-timescale libration tests.
SummaryAI
The paper extends the open-source Python package "resonances" from mean-motion resonances to full identification and analysis of secular resonances. It introduces a flexible parser for arbitrary combinations of fundamental precession frequencies (g, s and indexed terms), enabling both classic linear resonances (e.g., ν5, ν6, ν16) and 70+ nonlinear resonances from the literature. New libration-detection algorithms are tailored to secular timescales with automated parameter adaptation for long integrations, and the secular tools are integrated into the existing mean-motion workflow via consistent interfaces. Validation through automated tests and literature-based examples suggests the implementation is reliable for systematic dynamical studies (including asteroid family applications), with minor exceptions noted.
Method SnapshotAI
Software implementation and validation of secular-resonance identification via expression parsing plus secular-timescale libration detection, tested against literature cases.
BackgroundAI
Basic celestial mechanics of secular resonances (g/s frequencies, ν-type resonances) and familiarity with numerical orbit integration workflows in Python.
AI Abstract
This paper describes a major enhancement to the open-source Python package "resonances" that adds full support for identifying and analyzing secular resonances. The implementation includes a flexible mathematical-expression parser that accepts arbitrary combinations of fundamental frequencies (g, s, g_i, s_i), enabling analysis of linear resonances (e.g., nu5, nu6, nu16) and more than 70 nonlinear resonances collected from the literature. It provides specialized libration-detection algorithms optimized for secular timescales with automated parameter adaptation for extended integrations, and integrates these features with existing mean-motion resonance workflows through consistent interfaces. The implementation was validated with automated unit and integration tests and manual checks against literature examples (including nu6, nu16, z1, z2, 2nu6-nu5, and 3nu6-2nu5) with minor exceptions noted. The extended API preserves the original package's simplicity, allowing standard analyses in three to four lines of code, and the code is available on GitHub under the MIT license.