Add Tier 3 coverage for SIM_dyncomp RUN_9B and RUN_10B (#202)#611
Merged
Conversation
RUN_9B is RUN_9A (body-frame [10,0,0] N·m torque pulse over t∈[1000,2000)s, no external force) but started at the Docking Torque Equilibrium Attitude with a non-zero orbital rate; RUN_10B is RUN_10A (gravity-gradient libration of the cylinder) plus an initial 0.01 deg/s LVLH pitch rate. In both cases the differing initial angular velocity is carried by the t=0 row of the existing committed reference CSV, so the recipes reuse the RUN_9A / RUN_10A scenario builders (and RUN_9A's torque-only pre-step) verbatim. Adds the two recipe factories, tier3_ tests, and bevy_parity_ wrappers. Tolerances set to 1.05× observed max per component (the body-X rate axis keeps the 1e-15 floor the RUN_10 siblings use). No regeneration needed — dyncomp_run9b_state.csv and dyncomp_run10b_state.csv are already committed. Closes #202. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds Tier 3 cross-validation and Bevy↔runner parity coverage for the remaining SIM_dyncomp rotational-state edge cases RUN_9B and RUN_10B, reusing existing scenario builders and JEOD reference CSVs.
Changes:
- Added new
VerificationCasefactories and builders forSIM_dyncompRUN_9B and RUN_10B in the JEOD verification recipe module. - Added Tier 3 tests invoking the new RUN_9B / RUN_10B recipes.
- Added Bevy parity wrapper tests for RUN_9B / RUN_10B.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| crates/astrodyn_verif_parity/tests/bevy_parity_dyncomp_run9.rs | Adds parity test wrapper for RUN_9B torque + initial rate. |
| crates/astrodyn_verif_parity/tests/bevy_parity_dyncomp_run10.rs | Adds parity test wrapper for RUN_10B gravity-gradient torque + initial LVLH pitch rate. |
| crates/astrodyn_verif_jeod/tests/tier3_sim_dyncomp_run9.rs | Adds Tier 3 cross-validation test for RUN_9B. |
| crates/astrodyn_verif_jeod/tests/tier3_sim_dyncomp_run10.rs | Adds Tier 3 cross-validation test for RUN_10B. |
| crates/astrodyn_verif_jeod/src/run_verification/sim_dyncomp.rs | Introduces RUN_9B / RUN_10B case factories and corresponding build functions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The 5° figure is the gravity-gradient libration amplitude (90° − 85°), not the initial attitude. Matches RUN_10A's own doc comment and the analytical validation comment in tier3_sim_dyncomp_run10.rs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #202. First wave of the #99 Tier 3 coverage burn-down.
What
Adds per-RUN Tier 3 cross-validation for the two outstanding rotational-state edge cases in
SIM_dyncomp:[10,0,0] N·mtorque pulse overt ∈ [1000,2000) s, no external force) except the ISS starts at the Docking Torque Equilibrium Attitude with orbit angular rate (~0.065 deg/s).input.pyaddslvlh_init.ang_velocity = [0, 0.01, 0] deg/s.In both cases the only difference from the already-covered sibling is the initial angular velocity, which is carried by the t=0 row of the reference CSV (read via
rot_from). The recipes therefore reuse the RUN_9A / RUN_10A scenario builders (and RUN_9A's torque-only pre-step) verbatim.Touch-points
crates/astrodyn_verif_jeod/src/run_verification/sim_dyncomp.rs—run9b_torque_initial_rate()/run10b_gravity_torque_circular_rate()factories + build fns.crates/astrodyn_verif_jeod/tests/tier3_sim_dyncomp_run{9,10}.rs—tier3_simulation_*tests.crates/astrodyn_verif_parity/tests/bevy_parity_dyncomp_run{9,10}.rs— parity wrappers.No reference regeneration needed —
dyncomp_run9b_state.csv/dyncomp_run10b_state.csvare already committed. Tolerances set to 1.05× observed max per component (CLAUDE.md policy).Verification
tier3_simulation_run9b_torque_initial_rate,tier3_simulation_run10b_gravity_torque_circular_rate— PASSbevy_parity_dyncomp_run9b_torque_initial_rate,bevy_parity_dyncomp_run10b_gravity_torque_circular_rate— PASS (bit-identical lockstep)parity_topics_are_a_superset_of_tier3_topics— PASScargo fmt --check,cargo clippy -p astrodyn_verif_jeod -p astrodyn_verif_parity --tests -- -D warnings— clean🤖 Generated with Claude Code