You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a verification track that propagates the NASA NESC Earth-orbit check cases through Simulation::step() and compares against the published reference trajectories.
Companion issue to #399 (lunar cases). The NESC GN&C check cases (NESC-RP-12-00767 / "Independent Orbit Propagation Verification") cover Earth-orbit regimes — LEO with non-spherical gravity, drag, SRP, third-body Sun/Moon perturbations, plus GEO and HEO/Molniya cases — with documented ICs, force models, integrator settings, and checkpoint state vectors. They give us an independent cross-check (vendor-neutral, not JEOD/Trick) for the same Earth-orbit regime our existing Tier 3 ISS fleet exercises.
Scope
Ingest the NESC Earth-case reference data (ICs + checkpoint state vectors) into the astrodyn_verif_nesc crate stood up by Verify against NASA NESC Lunar Check Cases #399, committed under crates/astrodyn_verif_nesc/test_data/earth/.
Add a tier3_nesc_earth_* test per check case driving astrodyn_runner::Simulation end-to-end from the NESC ICs. Match the case's force model exactly — gravity degree/order, drag model + atmosphere, SRP shadow model, third-body set, integrator, step size — per the No Half-Baked Implementations rule. Tolerances follow the standard 5%-above-observed policy.
Any new physics. If a case requires a force model we don't yet have (e.g., a specific drag coefficient model, a third-body configuration we haven't ported), that's a separate port issue, not a tolerance adjustment.
Open questions
The NESC Earth suite spans several gravity-degree variants (point mass, J2-only, full harmonics). Which subset is "canonical" for an initial pass — start with point mass / J2 cases, or go straight to the full harmonics cases since we already have GGM05C wired?
Atmosphere: NESC cases typically specify a Jacchia or NRLMSISE model. We currently have MET. Does the case allow a model-equivalent substitution, or do we need to port the specified model first?
Overlap with our existing JEOD ISS Tier 3 tests: should the NESC LEO cases run alongside, or replace, any of the existing tier3 fixtures?
Goal
Add a verification track that propagates the NASA NESC Earth-orbit check cases through
Simulation::step()and compares against the published reference trajectories.Companion issue to #399 (lunar cases). The NESC GN&C check cases (NESC-RP-12-00767 / "Independent Orbit Propagation Verification") cover Earth-orbit regimes — LEO with non-spherical gravity, drag, SRP, third-body Sun/Moon perturbations, plus GEO and HEO/Molniya cases — with documented ICs, force models, integrator settings, and checkpoint state vectors. They give us an independent cross-check (vendor-neutral, not JEOD/Trick) for the same Earth-orbit regime our existing Tier 3 ISS fleet exercises.
Scope
astrodyn_verif_nesccrate stood up by Verify against NASA NESC Lunar Check Cases #399, committed undercrates/astrodyn_verif_nesc/test_data/earth/.$NESC_HOME/--nesc-homeis supplied.tier3_nesc_earth_*test per check case drivingastrodyn_runner::Simulationend-to-end from the NESC ICs. Match the case's force model exactly — gravity degree/order, drag model + atmosphere, SRP shadow model, third-body set, integrator, step size — per the No Half-Baked Implementations rule. Tolerances follow the standard 5%-above-observed policy.KNOWN_PARITY_GAPSexemptions only for cases that genuinely can't ride the recipe path.Out of scope
Open questions