Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,14 @@ target_link_libraries(flux_sweep PRIVATE adsc_core adsc_flags)
add_executable(decay_trade src/main_decay_trade.cpp)
target_link_libraries(decay_trade PRIVATE adsc_core adsc_flags)

# WP13 kit-class trade CSV emitter: regenerates generated/wp13_kit_trade.{csv,md}
# (sail/EDT/hybrid per-class A/B/C trade) and generated/wp13_classC.{csv,md}
# (controlled-reentry mission-class comparison). Reuses src/decay.cpp's
# existing sail model plus the new EDT-v1 physics core; no other physics
# change.
add_executable(kit_trade src/main_kit_trade.cpp)
target_link_libraries(kit_trade PRIVATE adsc_core adsc_flags)

# WP7 reference-metrics emitter: re-computes the pinned WP1/F1/WP2/WP3/WP4
# demo numbers as generated/reference_metrics.csv so the evidence pack quotes
# committed data only (R6). Reuses existing code paths; no physics change.
Expand Down
26 changes: 19 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -488,13 +488,20 @@ adsc-specification-v4.md retired v4.2 spec (superseded by v5; kept because v5
keep-out violations re-verified at L1/L2 [ds-v1/ds-v2]; the
CW-safe-but-higher-level-unsafe case does NOT materialize for this
dispersion set — measured, see `generated/wp12_ladder.md`).
- **WP13–WP15 (v5)** — not started; `adsc-specification-v5.md` defines the
kit-class trade + EDT physics, cost ranges + FoM, and the proposal package.
WP9 remains the only path to TRL 5, unchanged by v5.
- **WP13 — Kit-class trade + EDT physics** ✅ implemented (aligned-dipole
EDT-v1 band model with mandatory η(i) = |cos i|..cos²i — derivation:
`wp13-edt-derivation.md`, citations: `wp13-literature.md`; per-class
recommended-kit table `generated/wp13_kit_trade.csv`; class-C
controlled-reentry comparison `generated/wp13_classC.md`; libration T7
explicitly **unresolved**; SL-16 EDT is a *candidate with open risks*,
not a closed recommendation).
- **WP14–WP15 (v5)** — not started; `adsc-specification-v5.md` defines the
cost ranges + FoM upgrade and the proposal package. WP9 remains the only
path to TRL 5, unchanged by v5.

**Roadmap end state: WP1–WP8 complete; Phase 0 (WP10), WP11 safety
hardening, and WP12 fidelity ladder complete.** The package is regenerable
end-to-end with one command
hardening, WP12 fidelity ladder, and WP13 kit-class trade + EDT physics
complete.** The package is regenerable end-to-end with one command
(`bash tools/regenerate_all.sh build`) and CI enforces byte-identity of every
committed artifact on every push.

Expand Down Expand Up @@ -528,8 +535,13 @@ handoff (range = solar max .. solar min) makes the honest structure concrete:
Sail-only closes for the lighter/lower class B (tens of m²) but **not** for the
heavy, high stage A (hundreds-to-thousands of m² — impractical): the honest
negative that brackets open trade T1 (drag sail vs electrodynamic tether). The
EDT parametric study spans, e.g., 36.1 yr at 50 m/day down to 1.2 yr at
1500 m/day of along-track decay. (The 25-year column is the IADC guideline;
legacy EDT *parametric* study spans, e.g., 36.1 yr at 50 m/day down to 1.2 yr at
1500 m/day of along-track decay; since WP13 the EDT branch also has a *physics*
band (aligned-dipole, capped-current, mandatory η(i) = |cos i|..cos²i): the SL-16
class works out at **2.98 .. 9.17 yr** with a 3 km / 2 A (PLACEHOLDER) tether —
an **EDT candidate with open risks** (libration T7 unresolved, plasma Ne pair
PLACEHOLDER), *not* a closed recommendation — see `generated/wp13_kit_trade.csv`
and `wp13-edt-derivation.md`. (The 25-year column is the IADC guideline;
under a US FCC license the current rule is **5 years** — FCC 22-74, 2022 — which
makes the class-A sail-only negative strictly harder. See the WP8 rulepacks.)

Expand Down
79 changes: 75 additions & 4 deletions evidence/adsc_evidence_pack.md
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,60 @@ per-orbit table for both geometries is in `generated/wp12_ladder.md`.
with a deliberately coarse altitude-independent solar factor marked
PLACEHOLDER.

### Kit-class trade + EDT physics (WP13)

Data source: `generated/wp13_kit_trade.csv` (schema 1.0; column
definitions in `generated/wp13_kit_trade_schema.md`), regenerated by
`kit_trade` (src/main_kit_trade.cpp) by combining the EXISTING WP3
sail-decay model with the NEW WP13 EDT-v1 aligned-dipole physics core
(src/decay.cpp: edt_deorbit_years) -- no hand-written numbers.

| catalog | recommended kit | sail area, 25-yr [m^2] | EDT deorbit time [yr] | EDT eta(i) band |
|---|---|---:|---:|---:|
| SL-16 / Zenit-2 second stage | edt-candidate-open-risks | 135..2155 | 3.0..9.2 | 0.106..0.326 |
| SL-8 / Kosmos-3M second stage | sail | 7..115 | 0.6..3.0 | 0.043..0.208 |
| Envisat-class massive SSO payload | controlled-reentry-mission-class | 61..983 | 5.5..37.5 | 0.021..0.146 |

**EDT-v1 model scope (R14 fidelity tag), quoted verbatim from the
committed CSV -- never hand-transcribed, so the generator and the data
cannot drift:**

> [model: EDT-v1 aligned-dipole, capped-current; eta band |cos i|..cos^2 i; libration T7 OPEN - PLACEHOLDER duty factor]

**Honesty check (T7, D12/D13 - never claim closed).** Libration /
dynamic tether stability is explicitly UNRESOLVED (T7; Pelaez, J., et
al., 2000, cited in `wp13-literature.md`); the edt_years band above
folds it in only as a flat PLACEHOLDER duty-cycle knob
(`EdtConfig::eta_libration`), never claimed solved. Plasma electron
density is a cited PLACEHOLDER solar-min/max pair, not an IRI
implementation (spec non-goal; `wp13-literature.md` Topic 3 citation
gap). Every band above is an aligned-dipole idealization (SPENVIS
centred dipole, IGRF epoch 2000), not a tilted-dipole or full-IGRF
field. Deploy risk is reported, not applied: deploy_risk = 0.0500 [-]
(PLACEHOLDER `EdtConfig::deploy_failure_prob`) is quoted for the
record and is NOT folded into the edt_years band above. Bottom line,
EDT is a candidate for the SL-16 class, not a closed recommendation --
quoted verbatim from the committed CSV's own recommended-kit
rationale: "sail infeasible (135..2155 m2 for the 25-yr guideline, solar max..min); EDT (band 3.0..9.2 yr) subject to T7; libration (T7, Pelaez et al. 2000) and plasma Ne (PLACEHOLDER solar-min/max pair, wp13-literature.md Topic 3) remain open -- an honest EDT candidate, not a closed recommendation"

**Class C (controlled reentry, a separate mission class - not a
sail/EDT kit choice).** Massive/high-risk derelicts where the
deliverable is a controlled reentry, evaluated on casualty risk,
ground footprint, delta-v, consent and cost in
`generated/wp13_classC.md` (data: `generated/wp13_classC.csv`, schema
1.0), not on a sail/EDT kit trade. Computed controlled-deorbit delta-v
(single impulsive perigee-lowering burn from the catalog's circular
orbit to a target perigee of 6371+40 km):

| candidate | v_c [m/s] | delta-v [m/s] |
|---|---:|---:|
| Zenit-2 stage (catalog_A) | 7431.2 | 223.4 |
| Envisat-class (catalog_C) | 7462.2 | 208.3 |

Cross-reference: the eta(i) closed-form derivation is
`wp13-edt-derivation.md`; the citation pack is `wp13-literature.md`
(both committed at the repo root).

## 5. Campaign statistics and cost/FoM

WP5 Monte Carlo: 500 dispersed missions per catalog at fixed master seed
Expand Down Expand Up @@ -422,7 +476,7 @@ in `include/`, `src/` and `tools/` carrying the uppercase PLACEHOLDER mark
only in order to collect and audit it). If a value is listed here, treat
it as unvalidated until a cited source replaces it.

Total marks: **113**
Total marks: **130**

| location | line |
|---|---|
Expand Down Expand Up @@ -476,8 +530,11 @@ Total marks: **113**
| `include/adsc/cost.hpp:86` | double cu_to_musd_high = 0.0; // PLACEHOLDER (cited range, WP7) |
| `include/adsc/cost.hpp:88` | // Normalized congestion-weight table (PLACEHOLDER; cite on fill). Peaks |
| `include/adsc/cost.hpp:101` | // Launch band factor for a target band (PLACEHOLDER model). |
| `include/adsc/decay.hpp:33` | DebrisCatalog catalog_C(); // CZ upper-stage class (PLACEHOLDER) |
| `include/adsc/decay.hpp:34` | DebrisCatalog catalog_D(); // US Delta-class stage (PLACEHOLDER) |
| `include/adsc/decay.hpp:111` | double kit_mass_kg = 20.0; // PLACEHOLDER EDT kit mass (tether + deployer + electron... |
| `include/adsc/decay.hpp:112` | double avg_current_a = 2.0; // PLACEHOLDER average bare-tether collected current, BET... |
| `include/adsc/decay.hpp:113` | double eta_libration = 0.75; // PLACEHOLDER libration/duty-cycle efficiency penalty [-... |
| `include/adsc/decay.hpp:114` | double deploy_failure_prob = 0.05; // PLACEHOLDER deployment-failure probability [-] (report... |
| `include/adsc/flux.hpp:21` | // them. All debris-population figures are PLACEHOLDER, marked below and to be |
| `include/adsc/flux.hpp:26` | // PLACEHOLDER-marked flux parameters (R10); the physical constants (aluminium |
| `include/adsc/flux.hpp:34` | // Spatial number density of >=1 cm debris [objects / km^3]. PLACEHOLDER -- |
Expand Down Expand Up @@ -521,12 +578,26 @@ Total marks: **113**
| `src/cost.cpp:448` | "/ notes / provenance / PLACEHOLDER caveats /\n" |
| `src/cost.cpp:460` | " sum m_i*w(h_i)/C_campaign (spec ?4). The two weightings are PLACEHOLDER and\n" |
| `src/cost.cpp:467` | "- **currency_anchor** (global): `cu_to_musd_range` -- a PLACEHOLDER cited\n" |
| `src/decay.cpp:63` | return {"CZ upper stage (PLACEHOLDER)", 0.0, 0.0, 0.0, true}; |
| `src/decay.cpp:66` | return {"US Delta-class stage (PLACEHOLDER)", 0.0, 0.0, 0.0, true}; |
| `src/decay.cpp:83` | return {"US Delta-class stage (PLACEHOLDER)", 0.0, 0.0, 0.0, true}; |
| `src/flux.cpp:81` | "figures are PLACEHOLDER (MASTER-8 / ESA spatial-density class; cite at " |
| `src/flux.cpp:94` | std::fprintf(f, "PLACEHOLDER spatial densities: average %.1e /km^3, peak " |
| `src/main.cpp:137` | std::printf(" target inertia diag: %.2f / %.2f / %.2f kg m^2 (PLACEHOLDER ratios)\n", |
| `src/main_flux.cpp:33` | std::printf("\n[T6] collector exposure (>= 1 cm; PLACEHOLDER densities, cite MASTER-8)\n"); |
| `src/main_kit_trade.cpp:38` | "/cos i/..cos^2 i; libration T7 OPEN - PLACEHOLDER duty factor]"; |
| `src/main_kit_trade.cpp:117` | // kit_mass (edt): NEW EdtConfig::kit_mass_kg, PLACEHOLDER. |
| `src/main_kit_trade.cpp:120` | "\"installed EDT kit mass, PLACEHOLDER (EdtConfig::kit_mass_kg)\"\n", |
| `src/main_kit_trade.cpp:124` | // deploy_risk: EdtConfig::deploy_failure_prob, PLACEHOLDER. Reported |
| `src/main_kit_trade.cpp:128` | "\"PLACEHOLDER EDT deployment-failure probability " |
| `src/main_kit_trade.cpp:203` | " `EdtConfig::kit_mass_kg` (PLACEHOLDER). value = value_lo = value_hi (a\n" |
| `src/main_kit_trade.cpp:205` | "- `deploy_risk`: `EdtConfig::deploy_failure_prob`, PLACEHOLDER. Reported\n" |
| `src/main_kit_trade.cpp:219` | "libration T7 OPEN - PLACEHOLDER duty factor]`. This states the model scope\n" |
| `src/main_kit_trade.cpp:228` | "PLACEHOLDER duty-cycle knob (`EdtConfig::eta_libration`) -- never claimed\n" |
| `src/main_kit_trade.cpp:229` | "solved. Plasma electron density is a cited PLACEHOLDER parameter, not an\n" |
| `src/main_kit_trade.cpp:366` | "**[CITATION NEEDED - PLACEHOLDER: per-object Ec analysis]**. Both " |
| `src/main_kit_trade.cpp:427` | std::fprintf(f, "/ Zenit-2 / SL-16 (catalog_A) / PLACEHOLDER until WP14 / WP14 cost-range ite... |
| `src/main_kit_trade.cpp:428` | std::fprintf(f, "/ Envisat-class (catalog_C) / PLACEHOLDER until WP14 / WP14 cost-range itemi... |
| `src/main_kit_trade.cpp:466` | // open risks (T7 libration, plasma Ne PLACEHOLDER). ------------------- |
| `src/main_kit_trade.cpp:479` | "(T7, Pelaez et al. 2000) and plasma Ne (PLACEHOLDER solar-min/" |
| `src/main_ladder.cpp:75` | // PLACEHOLDER bare-stage drag cross-sections (WP12 L2). Kept local to this |
| `src/main_ladder.cpp:78` | constexpr double kSL16AreaM2 = 33.0; // PLACEHOLDER SL-16 / Zenit-2 bare-stage cross-section... |
| `src/main_ladder.cpp:79` | constexpr double kSL8AreaM2 = 7.5; // PLACEHOLDER SL-8 / Kosmos-3M bare-stage cross-sectio... |
Expand Down
Loading