Skip to content

Add Tier 3 coverage for SIM_dyncomp RUN_9B and RUN_10B (#202)#611

Merged
simnaut merged 2 commits into
mainfrom
wave1-dyncomp-run9b-run10b
May 24, 2026
Merged

Add Tier 3 coverage for SIM_dyncomp RUN_9B and RUN_10B (#202)#611
simnaut merged 2 commits into
mainfrom
wave1-dyncomp-run9b-run10b

Conversation

@simnaut
Copy link
Copy Markdown
Owner

@simnaut simnaut commented May 24, 2026

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:

  • RUN_9B — external torque with non-zero initial inertial rate. Identical to RUN_9A (body-frame [10,0,0] N·m torque pulse over t ∈ [1000,2000) s, no external force) except the ISS starts at the Docking Torque Equilibrium Attitude with orbit angular rate (~0.065 deg/s).
  • RUN_10B — gravity-gradient torque, circular orbit, with a small initial LVLH pitch rate. Identical to RUN_10A except JEOD's input.py adds lvlh_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.

Note: issue #99 described RUN_10B as "0° initial attitude"; the JEOD source (SET_test/RUN_10B/input.py, which execs RUN_10A and adds the pitch rate) is authoritative and was followed per the JEOD Convention Rule.

Touch-points

  • crates/astrodyn_verif_jeod/src/run_verification/sim_dyncomp.rsrun9b_torque_initial_rate() / run10b_gravity_torque_circular_rate() factories + build fns.
  • crates/astrodyn_verif_jeod/tests/tier3_sim_dyncomp_run{9,10}.rstier3_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.csv are 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 — PASS
  • bevy_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 — PASS
  • cargo fmt --check, cargo clippy -p astrodyn_verif_jeod -p astrodyn_verif_parity --tests -- -D warnings — clean

🤖 Generated with Claude Code

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>
Copilot AI review requested due to automatic review settings May 24, 2026 04:18
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 VerificationCase factories and builders for SIM_dyncomp RUN_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.

Comment thread crates/astrodyn_verif_jeod/src/run_verification/sim_dyncomp.rs
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>
@simnaut simnaut enabled auto-merge (squash) May 24, 2026 05:24
@simnaut simnaut merged commit d81982f into main May 24, 2026
18 checks passed
@simnaut simnaut deleted the wave1-dyncomp-run9b-run10b branch May 24, 2026 05:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Tier 3 coverage for SIM_dyncomp RUN_9B and RUN_10B

2 participants