Reference
Validation & known limits
What is proven, how, and every accuracy issue found while writing this documentation. The limits are ranked by how much they matter for a drag/SRP sail in 250–500 km.
Evidence
- Test suite: 268 passed (2026-09-30, ThesisMS env, Basilisk referee included).
- Independent verify:
python main.py verifycross-checks each kernel with scipy quadrature, finite differences or textbook values (tests/validation/verify_physics.py). Hostile-input checks are intests/validation/hostile_inputs.py. - Basilisk referee: SH gravity vs Basilisk
computeField. - Audit trail:
docs/notes/ACEnv/Reports/verify_*.md,validate_pass1–4.md,docs/notes/criticv1.md(the F1–F11 critic pass fixed in v2.7),docs/VALIDATION_STANDARD.md. - Behaviour fingerprints: v2.7 restructure verified bit-identical to v2.6 (36 fingerprints) before the critic-pass physics changes.
Measured during this pass
| Check | Result |
|---|---|
| Analytic Sun direction vs astropy (TETE), 40 epochs 2026 | max 0.008° |
| Analytic Moon vs astropy (TETE), 40 epochs 2026 | direction 0.25° mean / 0.44° max; distance up to ≈ 3000 km |
| Walker-CLL vs exact CLL kernel (scratch quadrature), single plate s = 8 | face-on ≤ 0.02 %; 45° ≤ 0.8 %; 80° up to −11 % (α_N 0.99) |
| Same, whole SolarCat_v3 (176 plates), edge-on / 20° / face-on | ≤ 0.3 % in C_D |
| SolarCat C_D sensitivity to σ_T (α_N 0.93): σ_T 1 → 0.7 | edge-on 0.387 → 0.262 (−32 %), face-on 2.214 → 2.145 |
| SolarCat face-on C_D vs α_N (Walker): 1.0 / 0.93 / 0.7 / 0.5 | 1.88 / 2.21 / 2.67 / 2.94 |
Known limits, ranked
| # | Issue | Impact | Fix size |
|---|---|---|---|
| 1 | No per-panel materials. One (α_E | α_N, σ_T, T_w) and one (c_a, c_s, c_d) for the whole vehicle. | high Accommodation moves C_D by 30 % or more. Optics set the SRP lift/normal split. | see plan |
| 2 | Ephemeris file not wired: no CSPICE in the build, no YAML key, load_spice never called. The Moon is analytic (0.44° / 3000 km). | low for dynamics (≈ 3e-8 m/s²); a gap versus the requirement | ½–1 day: CMake + ephemeris.kernels YAML + env call + test |
| 3 | WMM-2020 used at a 2026 epoch (WMM2025.COF is present but not the default). | medium for magnetorquer authority and B-aligned modes | 1 line in paths.py or set ARLAMX_WMM |
| 4 | Space weather is synthetic: uniform draws + step jumps; F10.7a = F10.7; scalar Ap only; F10.7 floor 5 sfu. | medium Density correlations and storm dynamics are unrealistic. Fine as domain randomisation. | 1–2 days (SW-All.csv replay) |
| 5 | No self-shadowing or flow shielding between panels. | medium for concave shapes (SolarCat petals + PCB), negligible for flat membranes | 4–6 days (precomputed visibility maps) |
| 6 | alpha_t is σ_T (momentum), while CLL papers quote α_t (energy): σ_T = 1 − √(1 − α_t). | medium if literature values are pasted in directly | docs + rename, or convert in the loader |
| 7 | No thermal re-emission SRP force, and T_w is a constant 300 K. | low–medium A few % of the normal SRP force on metallised films. | in plan (phase 5) |
| 8 | Cylindrical, binary eclipse (no penumbra). | low ≈ 8–10 s ramp missing per crossing; step discontinuity in the reward signal. | ½ day (conical model) |
| 9 | SPICE time and frame: UTC JD used as TDB (≈ 69 s); J2000 vs the of-date plant frame (≈ 0.36°). | low Matters only once SPICE is on. | ½ day (str2et/ΔT + precession or ITRF via PCK) |
| 10 | Walker-CLL fit error at grazing incidence with α_N → 1. | low on a whole vehicle (≤ 0.3 %), up to 11 % per plate | exact kernel (plan phase 3) |
| 11 | SRP flashes (×2–6) and weather jumps are training stressors, not physics. | info Exclude them from physics studies. | — |
| 12 | MSIS failure fallback switches to a constant atmosphere for the rest of the process (with one warning). | low Could silently corrupt a long run. | make it raise in training |
| 13 | Earth orientation is GMST-only (no precession, nutation or polar motion). SH gravity is evaluated with fully normalised Legendre functions through degree 70. Training presets stay at 2, 4 and 8. | negligible for this vehicle class | — |
| 14 | Earth radiation uses a point-source view factor for tilted plates, and zonal-mean a₀/e₀. | low | Knocke latitude-dependent a₀/e₀ + ring integration: 1–2 days |
| 15 | Sentman α_E closure omits the incident thermal energy term. | negligible (≈ 0.2 % C_p) | — |
| 16 | Policy observes truth for r, v, ω, B. | design choice Not flight-representative on the input side. | sensor-in-the-loop observations |
None of these were fixed in this pass. You asked for documentation and a plan only.