star-magic-program 0.325.0__tar.gz → 0.327.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/CHANGELOG.md +32 -0
  2. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/CITATION.cff +2 -2
  3. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/PKG-INFO +12 -10
  4. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/README.md +10 -8
  5. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/SESSION_LOG.md +32 -0
  6. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/UNIFIED_REGISTRY_VERSION.txt +1 -1
  7. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/WHITEPAPER_INDEX.md +5 -5
  8. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/pyproject.toml +2 -2
  9. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/star_magic_program.egg-info/PKG-INFO +12 -10
  10. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/uqff_calculator.py +77 -1
  11. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/uqff_fidelity_tests.py +27 -1
  12. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/COMMERCIAL.md +0 -0
  13. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/LICENSE +0 -0
  14. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/LICENSE-AGPL-3.0.txt +0 -0
  15. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/LICENSE-MIT-INITIAL.txt +0 -0
  16. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/NOTICE +0 -0
  17. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/UNIFIED_REGISTRY_FALSIFIABILITY.md +0 -0
  18. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/UNIFIED_REGISTRY_PROGRAM_PLAN.md +0 -0
  19. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/UNIFIED_REGISTRY_RESULTS_TABLE.md +0 -0
  20. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/UNIFIED_REGISTRY_SCHEMA.md +0 -0
  21. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/UNIFIED_REGISTRY_STATUS_REPORT.md +0 -0
  22. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/_BUILD_LOG.md +0 -0
  23. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/registry_generator.py +0 -0
  24. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/setup.cfg +0 -0
  25. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/star_magic_program.egg-info/SOURCES.txt +0 -0
  26. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/star_magic_program.egg-info/dependency_links.txt +0 -0
  27. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/star_magic_program.egg-info/requires.txt +0 -0
  28. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/star_magic_program.egg-info/top_level.txt +0 -0
  29. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/uqff_registry_graph.py +0 -0
  30. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/uqff_registry_primitives.py +0 -0
  31. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/uqff_registry_status.py +0 -0
  32. {star_magic_program-0.325.0 → star_magic_program-0.327.0}/uqff_registry_xgeo.py +0 -0
@@ -7,6 +7,38 @@ Versioning: [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
+ ## [0.327.0] — 2026-08-04 — BAND 1: PAPER_319 — ORION M42 COMPACT-HII SFR BINDING PHASE TRANSITION (CLEAN)
11
+
12
+ ### Added
13
+ - **PAPER_319 dispatch** — Compact HII SFR Gravitational Binding Phase Transition (Session 91, ORION_UQFF_MODULE.cpp; third/final Orion term). The **first UQFF compact-HII SFR-runaway gravitational-binding phase transition**.
14
+ - Specific SFR sSFR = SFR/M = 1/2000 = **5e-4 yr⁻¹** — **50× the Lagoon Nebula** (PAPER_305), the "ultra-compact HII" class.
15
+ - Orion is born **wind-dominated (unbound)**, but continuous SFR mass growth amplifies gravity (g_SFR = g_base·m_factor, m_factor = 1 + sSFR·t) until it crosses the growing wind ram pressure at **t_cross = 67,730 yr** — the unbound→bound transition.
16
+ - By t_age = 300 kyr: m_factor = **151**, g_SFR = 2.878e-9, binding_ratio = g_SFR/a_wind = **2.654** (gravitationally bound); by 1 Myr binding_ratio = **4.069**.
17
+ - Gas depletion t_consume = M/SFR = **2000 yr** — the shortest in the UQFF series (sustained only by continuous OMC-1 replenishment).
18
+ - 3 registry observables, 6 graph edges, 2 corpus citations (PAPER_305/317).
19
+ - 6 gate assertions (sSFR/50×, t_cross, m_factor/binding_ratio, binding 1 Myr, t_consume, wired_count ≥ 333). Gate 1969 → **1975/0**.
20
+
21
+ ### Wiring status
22
+ - `wired_count()` = **333** (CLEAN). Campaign frontier PAPER_319 of 2255. Index: 85 ✓ / 248 ⚠ / 1922 ⬜ = 2255. Orion module (317/318/319) complete.
23
+
24
+ ---
25
+
26
+ ## [0.326.0] — 2026-08-04 — BAND 1: PAPER_318 — ORION M42 TRAPEZIUM OB UV RADIATION DOMINANCE (CLEAN)
27
+
28
+ ### Added
29
+ - **PAPER_318 dispatch** — Trapezium OB Cluster UV Radiation Dominance / Champagne Flow (Session 91, ORION_UQFF_MODULE.cpp; second Orion term). The **first UQFF sub-pc compact-HII Trapezium OB-cluster UV radiation parameter**, and the second entry in the UQFF OB-cluster radiation class (after Lagoon, PAPER_306).
30
+ - L_trap = 2e5 L_sun = **7.656e31 W** (θ¹ Ori C, O6V + cluster); A_trap = 4πr² = 1.748e35 m².
31
+ - P_rad = L_trap/(4πr²c) = **1.461e-12 Pa**; a_rad = P_rad/ρ_fluid = **1.461e8 m/s²**.
32
+ - η_rad = a_rad/g_base = **7.664e18** — 18 orders; satisfies the **champagne-flow condition** (η_rad ≫ 1): ionized gas escapes freely along the density gradient (the Orion face-on blister).
33
+ - Radiation also dominates the wind-shock term (PAPER_317): a_rad/a_wind = **2.7e17**. Orion η_rad ≈ 5× Lagoon (PAPER_306), confirming the UQFF η_rad ∝ L/M scaling (higher OB multiplicity, lower mass).
34
+ - 3 registry observables, 6 graph edges, 2 corpus citations (PAPER_306/317).
35
+ - 6 gate assertions (P_rad, a_rad, η_rad/champagne, a_rad/a_wind, A_trap, wired_count ≥ 332). Gate 1963 → **1969/0**.
36
+
37
+ ### Wiring status
38
+ - `wired_count()` = **332** (CLEAN). Campaign frontier PAPER_318 of 2255. Index: 84 ✓ / 248 ⚠ / 1923 ⬜ = 2255.
39
+
40
+ ---
41
+
10
42
  ## [0.325.0] — 2026-08-04 — BAND 1: PAPER_317 — ORION M42 TRAPEZIUM WIND RAM-PRESSURE DOMINANCE (CLEAN)
11
43
 
12
44
  ### Added
@@ -3,7 +3,7 @@ message: "If you use Star-Magic-Program (UQFF systematic rebuild) in your resear
3
3
  type: software
4
4
  title: "Star-Magic-Program: UQFF Systematic Rebuild"
5
5
  abbreviation: "UQFF"
6
- version: "0.325.0"
6
+ version: "0.327.0"
7
7
  date-released: "2026-08-04"
8
8
  authors:
9
9
  - family-names: "Murphy"
@@ -53,7 +53,7 @@ preferred-citation:
53
53
  - family-names: "Murphy"
54
54
  given-names: "Daniel T."
55
55
  year: 2026
56
- version: "0.325.0"
56
+ version: "0.327.0"
57
57
  url: "https://github.com/Daniel8Murphy0007/Star-Magic-Program"
58
58
  notes: >-
59
59
  Cite both the software and the relevant whitepapers by PAPER_N
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: star-magic-program
3
- Version: 0.325.0
4
- Summary: UQFF Star-Magic-Program v0.325.0: PAPER_317 wired (CLEAN) - Orion M42 Trapezium wind ram-pressure dominance (33rd C++ module, first HII-region ram-pressure ratio); g_base=G*M/r^2=1.907e-11; ram-pressure a_wind=v_wind^2/r*(1+t/t_age) gives eta_wind=P_ram/P_grav=a_wind/g_base=28.47 at birth (wind-dominated/unbound), doubling to 56.9 at t_age; erosion timescale t_erosion=r/v_wind=467 kyr > t_age 300 kyr, so proplyds survive. wired_count 331, gate 1963/0. Frontier PAPER_317 of 2255.
3
+ Version: 0.327.0
4
+ Summary: UQFF Star-Magic-Program v0.327.0: PAPER_319 wired (CLEAN) - Orion M42 compact-HII SFR gravitational-binding phase transition; specific SFR sSFR=SFR/M=1/2000=5e-4 yr^-1 is 50x Lagoon; SFR-amplified gravity crosses the wind ram pressure at t_cross=67,730 yr (unbound->bound); m_factor(t_age)=1+sSFR*t=151 gives binding_ratio=g_SFR/a_wind=2.654 (bound by 300 kyr); t_consume=M/SFR=2000 yr, shortest in the series. wired_count 333, gate 1975/0. Frontier PAPER_319 of 2255.
5
5
  Author-email: "Daniel T. Murphy" <daniel.murphy00@enrgyone.com>
6
6
  License: AGPL-3.0-or-later OR LicenseRef-StarMagic-Commercial
7
7
  Project-URL: Homepage, https://github.com/Daniel8Murphy0007/Star-Magic-Program
@@ -34,15 +34,15 @@ Dynamic: license-file
34
34
 
35
35
  # Star-Magic-Program
36
36
 
37
- [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.325.0)](https://pypi.org/project/star-magic-program/)
38
- [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.325.0)](https://pypi.org/project/star-magic-program/)
37
+ [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.327.0)](https://pypi.org/project/star-magic-program/)
38
+ [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.327.0)](https://pypi.org/project/star-magic-program/)
39
39
  [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
40
40
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
41
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-1963%2F0-brightgreen)](uqff_fidelity_tests.py)
42
- [![Public surfaces](https://img.shields.io/badge/public_surfaces-331-blue)](uqff_calculator.py)
41
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-1975%2F0-brightgreen)](uqff_fidelity_tests.py)
42
+ [![Public surfaces](https://img.shields.io/badge/public_surfaces-333-blue)](uqff_calculator.py)
43
43
  [![Whitepapers](https://img.shields.io/badge/whitepapers-2255-orange)](whitepapers/)
44
44
 
45
- **UQFF systematic rebuild — v0.325.0 wiring campaign live**
45
+ **UQFF systematic rebuild — v0.327.0 wiring campaign live**
46
46
  Author: Daniel T. Murphy · Star-Magic Research Program
47
47
  License: AGPL-3.0-or-later OR Commercial
48
48
 
@@ -81,7 +81,7 @@ Mizuno, Rossi).
81
81
  Full framework physics lives in the whitepaper corpus — the physics is the
82
82
  whitepapers; the calculator computes what the whitepapers derive.
83
83
 
84
- ## What is currently shipped (v0.325.0)
84
+ ## What is currently shipped (v0.327.0)
85
85
 
86
86
  ### Wiring campaign — LIVE (see `CLAUDE.md` charter)
87
87
 
@@ -89,7 +89,7 @@ Sequential wiring of all 2,255 whitepapers, starting at PAPER_001.
89
89
  Authorized 2026-07-28: autonomous band sessions, ship per session via
90
90
  `ship.ps1`, full stop at PAPER_500 for manual review.
91
91
 
92
- **Wired so far: 331 distinct papers** (`wired_count()`=331 = 317 base-numbered + 14 suffixed) — 83 ✓ CLEAN · 248 ⚠ OPEN_RULING file-rows · 248 rulings queued. Campaign frontier: **PAPER_317** (Orion M42 Trapezium wind ram-pressure dominance: g_base=G·M/r²=1.907e-11; ram-pressure a_wind=v_wind²/r·(1+t/t_age) gives η_wind=P_ram/P_grav=a_wind/g_base=28.47 at birth (wind-dominated/unbound), doubling to 56.9 at t_age; erosion t_erosion=r/v_wind=467 kyr > t_age 300 kyr, so proplyds survive), wired v0.325.0. *(v0.285.0 and v0.321.0 burned/yanked on PyPI; v0.286.0 backfilled 10 papers, v0.287.0 doc-correction.)*
92
+ **Wired so far: 333 distinct papers** (`wired_count()`=333 = 319 base-numbered + 14 suffixed) — 85 ✓ CLEAN · 248 ⚠ OPEN_RULING file-rows · 248 rulings queued. Campaign frontier: **PAPER_319** (Orion M42 compact-HII SFR gravitational-binding phase transition: specific SFR sSFR=SFR/M=1/2000=5e-4 yr⁻¹ is 50× Lagoon; the SFR-amplified gravity crosses the wind ram pressure at t_cross=67,730 yr (unbound→bound); m_factor(t_age)=1+sSFR·t=151 gives binding_ratio=g_SFR/a_wind=2.654 by 300 kyr; t_consume=M/SFR=2000 yr — shortest in the series), wired v0.327.0. *(v0.285.0 and v0.321.0 burned/yanked on PyPI; v0.286.0 backfilled 10 papers, v0.287.0 doc-correction.)*
93
93
 
94
94
  | Paper | Content | Key result |
95
95
  |---|---|---|
@@ -732,7 +732,9 @@ Authorized 2026-07-28: autonomous band sessions, ship per session via
732
732
  | **v0.322.0** | Band 1: PAPER_314 (NGC 6302 PN lobe DPM macro-antenna F_DPM=1.267e50 N); v0.321.0 burned | 328 |
733
733
  | **v0.323.0** | Band 1: PAPER_315 (NGC 6302 VacDiff-THz crossover r_cross=3.280 km) | 329 |
734
734
  | **v0.324.0** | Band 1: PAPER_316 (NGC 6302 Cooper-DPM A_sc=6.994e21, Q-248) | 330 |
735
- | **v0.325.0** ← current | Band 1: PAPER_317 (Orion M42 Trapezium wind ram-pressure η_wind=28.47) | 331 |
735
+ | **v0.325.0** | Band 1: PAPER_317 (Orion M42 Trapezium wind ram-pressure η_wind=28.47) | 331 |
736
+ | **v0.326.0** | Band 1: PAPER_318 (Orion M42 Trapezium OB UV radiation η_rad=7.664e18, champagne flow) | 332 |
737
+ | **v0.327.0** ← current | Band 1: PAPER_319 (Orion M42 SFR binding transition t_cross=67.7 kyr) | 333 |
736
738
  | v0.4.0+ | One band per session (~20-80 papers each) | growing |
737
739
  | PAPER_500 milestone | FULL STOP — Daniel's manual review | 500 |
738
740
  | v1.0.0 | Full whitepaper coverage | 2,255 |
@@ -1,14 +1,14 @@
1
1
  # Star-Magic-Program
2
2
 
3
- [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.325.0)](https://pypi.org/project/star-magic-program/)
4
- [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.325.0)](https://pypi.org/project/star-magic-program/)
3
+ [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.327.0)](https://pypi.org/project/star-magic-program/)
4
+ [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.327.0)](https://pypi.org/project/star-magic-program/)
5
5
  [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
6
6
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
7
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-1963%2F0-brightgreen)](uqff_fidelity_tests.py)
8
- [![Public surfaces](https://img.shields.io/badge/public_surfaces-331-blue)](uqff_calculator.py)
7
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-1975%2F0-brightgreen)](uqff_fidelity_tests.py)
8
+ [![Public surfaces](https://img.shields.io/badge/public_surfaces-333-blue)](uqff_calculator.py)
9
9
  [![Whitepapers](https://img.shields.io/badge/whitepapers-2255-orange)](whitepapers/)
10
10
 
11
- **UQFF systematic rebuild — v0.325.0 wiring campaign live**
11
+ **UQFF systematic rebuild — v0.327.0 wiring campaign live**
12
12
  Author: Daniel T. Murphy · Star-Magic Research Program
13
13
  License: AGPL-3.0-or-later OR Commercial
14
14
 
@@ -47,7 +47,7 @@ Mizuno, Rossi).
47
47
  Full framework physics lives in the whitepaper corpus — the physics is the
48
48
  whitepapers; the calculator computes what the whitepapers derive.
49
49
 
50
- ## What is currently shipped (v0.325.0)
50
+ ## What is currently shipped (v0.327.0)
51
51
 
52
52
  ### Wiring campaign — LIVE (see `CLAUDE.md` charter)
53
53
 
@@ -55,7 +55,7 @@ Sequential wiring of all 2,255 whitepapers, starting at PAPER_001.
55
55
  Authorized 2026-07-28: autonomous band sessions, ship per session via
56
56
  `ship.ps1`, full stop at PAPER_500 for manual review.
57
57
 
58
- **Wired so far: 331 distinct papers** (`wired_count()`=331 = 317 base-numbered + 14 suffixed) — 83 ✓ CLEAN · 248 ⚠ OPEN_RULING file-rows · 248 rulings queued. Campaign frontier: **PAPER_317** (Orion M42 Trapezium wind ram-pressure dominance: g_base=G·M/r²=1.907e-11; ram-pressure a_wind=v_wind²/r·(1+t/t_age) gives η_wind=P_ram/P_grav=a_wind/g_base=28.47 at birth (wind-dominated/unbound), doubling to 56.9 at t_age; erosion t_erosion=r/v_wind=467 kyr > t_age 300 kyr, so proplyds survive), wired v0.325.0. *(v0.285.0 and v0.321.0 burned/yanked on PyPI; v0.286.0 backfilled 10 papers, v0.287.0 doc-correction.)*
58
+ **Wired so far: 333 distinct papers** (`wired_count()`=333 = 319 base-numbered + 14 suffixed) — 85 ✓ CLEAN · 248 ⚠ OPEN_RULING file-rows · 248 rulings queued. Campaign frontier: **PAPER_319** (Orion M42 compact-HII SFR gravitational-binding phase transition: specific SFR sSFR=SFR/M=1/2000=5e-4 yr⁻¹ is 50× Lagoon; the SFR-amplified gravity crosses the wind ram pressure at t_cross=67,730 yr (unbound→bound); m_factor(t_age)=1+sSFR·t=151 gives binding_ratio=g_SFR/a_wind=2.654 by 300 kyr; t_consume=M/SFR=2000 yr — shortest in the series), wired v0.327.0. *(v0.285.0 and v0.321.0 burned/yanked on PyPI; v0.286.0 backfilled 10 papers, v0.287.0 doc-correction.)*
59
59
 
60
60
  | Paper | Content | Key result |
61
61
  |---|---|---|
@@ -698,7 +698,9 @@ Authorized 2026-07-28: autonomous band sessions, ship per session via
698
698
  | **v0.322.0** | Band 1: PAPER_314 (NGC 6302 PN lobe DPM macro-antenna F_DPM=1.267e50 N); v0.321.0 burned | 328 |
699
699
  | **v0.323.0** | Band 1: PAPER_315 (NGC 6302 VacDiff-THz crossover r_cross=3.280 km) | 329 |
700
700
  | **v0.324.0** | Band 1: PAPER_316 (NGC 6302 Cooper-DPM A_sc=6.994e21, Q-248) | 330 |
701
- | **v0.325.0** ← current | Band 1: PAPER_317 (Orion M42 Trapezium wind ram-pressure η_wind=28.47) | 331 |
701
+ | **v0.325.0** | Band 1: PAPER_317 (Orion M42 Trapezium wind ram-pressure η_wind=28.47) | 331 |
702
+ | **v0.326.0** | Band 1: PAPER_318 (Orion M42 Trapezium OB UV radiation η_rad=7.664e18, champagne flow) | 332 |
703
+ | **v0.327.0** ← current | Band 1: PAPER_319 (Orion M42 SFR binding transition t_cross=67.7 kyr) | 333 |
702
704
  | v0.4.0+ | One band per session (~20-80 papers each) | growing |
703
705
  | PAPER_500 milestone | FULL STOP — Daniel's manual review | 500 |
704
706
  | v1.0.0 | Full whitepaper coverage | 2,255 |
@@ -4620,3 +4620,35 @@ ram-pressure dominance ratio. New Orion HII-region sector.
4620
4620
 
4621
4621
  CLEAN. Gate: 1963/0. Registry 662 rows / 1425 edges / 352 ledgers.
4622
4622
  Campaign frontier: PAPER_317 / 2,255. Next: PAPER_318.
4623
+
4624
+ ---
4625
+
4626
+ ## v0.326.0 — 2026-08-04 — PAPER_318 (Orion M42 Trapezium OB UV radiation dominance)
4627
+
4628
+ Wired PAPER_318 (Session 91, ORION_UQFF_MODULE.cpp; second Orion term). First UQFF sub-pc
4629
+ compact-HII Trapezium OB-cluster UV radiation parameter; 2nd in the OB-cluster radiation class
4630
+ (after Lagoon PAPER_306).
4631
+
4632
+ - L_trap = 2e5 L_sun = 7.656e31 W; A_trap = 4*pi*r^2 = 1.748e35 m^2.
4633
+ - P_rad = L_trap/(4*pi*r^2*c) = 1.461e-12 Pa; a_rad = P_rad/rho_fluid = 1.461e8 m/s2.
4634
+ - eta_rad = a_rad/g_base = 7.664e18 (18 orders; champagne-flow condition eta>>1, free escape).
4635
+ - a_rad/a_wind = 2.7e17 (radiation > wind PAPER_317). Orion eta_rad ~ 5x Lagoon (L/M scaling).
4636
+ All verified in Python.
4637
+
4638
+ CLEAN. Gate: 1969/0. Registry 665 rows / 1431 edges / 354 ledgers.
4639
+ Campaign frontier: PAPER_318 / 2,255. Next: PAPER_319.
4640
+
4641
+ ---
4642
+
4643
+ ## v0.327.0 — 2026-08-04 — PAPER_319 (Orion M42 compact-HII SFR binding phase transition)
4644
+
4645
+ Wired PAPER_319 (Session 91, ORION_UQFF_MODULE.cpp; third/final Orion term). First UQFF
4646
+ compact-HII SFR-runaway gravitational-binding phase transition.
4647
+
4648
+ - sSFR = SFR/M = 1/2000 = 5e-4 yr^-1 (50x Lagoon PAPER_305, ultra-compact HII class).
4649
+ - t_cross = (a_wind0-g_base)/(g_base*sSFR - a_wind0/t_age_yr) = 67,730 yr (unbound->bound).
4650
+ - m_factor(t_age)=151 -> g_SFR=2.878e-9, binding_ratio=g_SFR/a_wind=2.654 (bound); 1 Myr -> 4.069.
4651
+ - t_consume = M/SFR = 2000 yr (shortest in UQFF series). All verified in Python.
4652
+
4653
+ CLEAN. Gate: 1975/0. Registry 668 rows / 1437 edges / 356 ledgers. Orion module (317/318/319) complete.
4654
+ Campaign frontier: PAPER_319 / 2,255. Next: PAPER_320.
@@ -7,6 +7,6 @@
7
7
  # other registry artifacts (UNIFIED_REGISTRY*.csv/.md) only diff when their
8
8
  # content changes. This file diffs every ship.
9
9
  #
10
- SHIP_VERSION 0.325.0
10
+ SHIP_VERSION 0.327.0
11
11
  GENERATED_AT: 2026-07-31T00:00:00Z
12
12
  GENERATOR: registry_generator.py + uqff_registry_graph.py + uqff_registry_status.py + uqff_registry_xgeo.py
@@ -11,9 +11,9 @@
11
11
  ## Summary
12
12
 
13
13
  - **Total whitepaper files:** 2255
14
- - **Campaign frontier: PAPER_317** (Orion M42 Trapezium wind ram-pressure dominance η_wind=28.47, t_erosion=467 kyr, wired v0.325.0). Range PAPER_001–280 = 294 whitepaper files (12 base numbers [8,9,10,11,12,13,14,15,16,25,26,221] have 2–3 files each); + PAPER_281–317 = **331 wired**.
15
- - **Distinct wired papers: 331** = `wired_count()` = `len(DISPATCH)`. Composed of **317** base-numbered `PAPER_NNN` + **14** suffixed distinct papers: the original 4 (**015b** Multi-Band GW v0.15.0, **016b** LISA WD Foreground v0.17.0, **025b** Neutrino Polarizability v0.27.0, **026b** Vector-Like Quarks v0.29.0) **+ 10 backfilled v0.286.0** (**008b–014b** GW damping series, **026c** Sterile Neutrino Mass, **221b/221c** Bubble Nebula). Suffixed papers are **distinct whitepapers** that collided on a base number — **not** variants.
16
- - **Index table file-row marks:** **83 ✓ CLEAN**, **248 ⚠ OPEN_RULING**, **1924 ⬜** not-touched (83 + 248 + 1924 = 2255 ✓). Wired file-rows (83 + 248 = **331**) equal `wired_count()`.
14
+ - **Campaign frontier: PAPER_319** (Orion M42 compact-HII SFR binding phase transition t_cross=67.7 kyr, sSFR=50× Lagoon, wired v0.327.0). Range PAPER_001–280 = 294 whitepaper files (12 base numbers [8,9,10,11,12,13,14,15,16,25,26,221] have 2–3 files each); + PAPER_281–319 = **333 wired**.
15
+ - **Distinct wired papers: 333** = `wired_count()` = `len(DISPATCH)`. Composed of **319** base-numbered `PAPER_NNN` + **14** suffixed distinct papers: the original 4 (**015b** Multi-Band GW v0.15.0, **016b** LISA WD Foreground v0.17.0, **025b** Neutrino Polarizability v0.27.0, **026b** Vector-Like Quarks v0.29.0) **+ 10 backfilled v0.286.0** (**008b–014b** GW damping series, **026c** Sterile Neutrino Mass, **221b/221c** Bubble Nebula). Suffixed papers are **distinct whitepapers** that collided on a base number — **not** variants.
16
+ - **Index table file-row marks:** **85 ✓ CLEAN**, **248 ⚠ OPEN_RULING**, **1922 ⬜** not-touched (85 + 248 + 1922 = 2255 ✓). Wired file-rows (85 + 248 = **333**) equal `wired_count()`.
17
17
  - **OPEN targets:** 0
18
18
 
19
19
  ---
@@ -1577,8 +1577,8 @@
1577
1577
  | ✓ | PAPER_315 | NGC6302Resonance VacDiffTHz CrossoverRadius 3p280km domRatio 8p118e37 |
1578
1578
  | ⚠ | PAPER_316 | NGC6302Resonance CooperDPM Asc 6p994e21 asuper 1p747e9 P295confirm |
1579
1579
  | ✓ | PAPER_317 | OrionM42 TrapeziumWindRamPressure etaWind 28p47 tErosion 467kyr |
1580
- | ⬜ | PAPER_318 | OrionM42 TrapeziumOBUV etaRad 7p664e18 champagneFlow |
1581
- | ⬜ | PAPER_319 | OrionM42 CompactHII SFRBindingCrossover tCross 67p7kyr sSFR 50xLagoon |
1580
+ | ✓ | PAPER_318 | OrionM42 TrapeziumOBUV etaRad 7p664e18 champagneFlow |
1581
+ | ✓ | PAPER_319 | OrionM42 CompactHII SFRBindingCrossover tCross 67p7kyr sSFR 50xLagoon |
1582
1582
  | ⬜ | PAPER_320 | CR34 DPMForceDensitySpectralAtlas xiSpan 1e35 7systems |
1583
1583
  | ⬜ | PAPER_321 | CR34 CrossChannelDominanceCrossover Vf 5p43e28 CompressedResonanceReversal |
1584
1584
  | ⬜ | PAPER_322 | CR34 HiIRegionTHzGeometricDifferential ratio 8p59 OrionLagoon |
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "star-magic-program"
7
- version = "0.325.0"
8
- description = "UQFF Star-Magic-Program v0.325.0: PAPER_317 wired (CLEAN) - Orion M42 Trapezium wind ram-pressure dominance (33rd C++ module, first HII-region ram-pressure ratio); g_base=G*M/r^2=1.907e-11; ram-pressure a_wind=v_wind^2/r*(1+t/t_age) gives eta_wind=P_ram/P_grav=a_wind/g_base=28.47 at birth (wind-dominated/unbound), doubling to 56.9 at t_age; erosion timescale t_erosion=r/v_wind=467 kyr > t_age 300 kyr, so proplyds survive. wired_count 331, gate 1963/0. Frontier PAPER_317 of 2255."
7
+ version = "0.327.0"
8
+ description = "UQFF Star-Magic-Program v0.327.0: PAPER_319 wired (CLEAN) - Orion M42 compact-HII SFR gravitational-binding phase transition; specific SFR sSFR=SFR/M=1/2000=5e-4 yr^-1 is 50x Lagoon; SFR-amplified gravity crosses the wind ram pressure at t_cross=67,730 yr (unbound->bound); m_factor(t_age)=1+sSFR*t=151 gives binding_ratio=g_SFR/a_wind=2.654 (bound by 300 kyr); t_consume=M/SFR=2000 yr, shortest in the series. wired_count 333, gate 1975/0. Frontier PAPER_319 of 2255."
9
9
  readme = "README.md"
10
10
  authors = [
11
11
  { name = "Daniel T. Murphy", email = "daniel.murphy00@enrgyone.com" }
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: star-magic-program
3
- Version: 0.325.0
4
- Summary: UQFF Star-Magic-Program v0.325.0: PAPER_317 wired (CLEAN) - Orion M42 Trapezium wind ram-pressure dominance (33rd C++ module, first HII-region ram-pressure ratio); g_base=G*M/r^2=1.907e-11; ram-pressure a_wind=v_wind^2/r*(1+t/t_age) gives eta_wind=P_ram/P_grav=a_wind/g_base=28.47 at birth (wind-dominated/unbound), doubling to 56.9 at t_age; erosion timescale t_erosion=r/v_wind=467 kyr > t_age 300 kyr, so proplyds survive. wired_count 331, gate 1963/0. Frontier PAPER_317 of 2255.
3
+ Version: 0.327.0
4
+ Summary: UQFF Star-Magic-Program v0.327.0: PAPER_319 wired (CLEAN) - Orion M42 compact-HII SFR gravitational-binding phase transition; specific SFR sSFR=SFR/M=1/2000=5e-4 yr^-1 is 50x Lagoon; SFR-amplified gravity crosses the wind ram pressure at t_cross=67,730 yr (unbound->bound); m_factor(t_age)=1+sSFR*t=151 gives binding_ratio=g_SFR/a_wind=2.654 (bound by 300 kyr); t_consume=M/SFR=2000 yr, shortest in the series. wired_count 333, gate 1975/0. Frontier PAPER_319 of 2255.
5
5
  Author-email: "Daniel T. Murphy" <daniel.murphy00@enrgyone.com>
6
6
  License: AGPL-3.0-or-later OR LicenseRef-StarMagic-Commercial
7
7
  Project-URL: Homepage, https://github.com/Daniel8Murphy0007/Star-Magic-Program
@@ -34,15 +34,15 @@ Dynamic: license-file
34
34
 
35
35
  # Star-Magic-Program
36
36
 
37
- [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.325.0)](https://pypi.org/project/star-magic-program/)
38
- [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.325.0)](https://pypi.org/project/star-magic-program/)
37
+ [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.327.0)](https://pypi.org/project/star-magic-program/)
38
+ [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.327.0)](https://pypi.org/project/star-magic-program/)
39
39
  [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
40
40
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
41
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-1963%2F0-brightgreen)](uqff_fidelity_tests.py)
42
- [![Public surfaces](https://img.shields.io/badge/public_surfaces-331-blue)](uqff_calculator.py)
41
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-1975%2F0-brightgreen)](uqff_fidelity_tests.py)
42
+ [![Public surfaces](https://img.shields.io/badge/public_surfaces-333-blue)](uqff_calculator.py)
43
43
  [![Whitepapers](https://img.shields.io/badge/whitepapers-2255-orange)](whitepapers/)
44
44
 
45
- **UQFF systematic rebuild — v0.325.0 wiring campaign live**
45
+ **UQFF systematic rebuild — v0.327.0 wiring campaign live**
46
46
  Author: Daniel T. Murphy · Star-Magic Research Program
47
47
  License: AGPL-3.0-or-later OR Commercial
48
48
 
@@ -81,7 +81,7 @@ Mizuno, Rossi).
81
81
  Full framework physics lives in the whitepaper corpus — the physics is the
82
82
  whitepapers; the calculator computes what the whitepapers derive.
83
83
 
84
- ## What is currently shipped (v0.325.0)
84
+ ## What is currently shipped (v0.327.0)
85
85
 
86
86
  ### Wiring campaign — LIVE (see `CLAUDE.md` charter)
87
87
 
@@ -89,7 +89,7 @@ Sequential wiring of all 2,255 whitepapers, starting at PAPER_001.
89
89
  Authorized 2026-07-28: autonomous band sessions, ship per session via
90
90
  `ship.ps1`, full stop at PAPER_500 for manual review.
91
91
 
92
- **Wired so far: 331 distinct papers** (`wired_count()`=331 = 317 base-numbered + 14 suffixed) — 83 ✓ CLEAN · 248 ⚠ OPEN_RULING file-rows · 248 rulings queued. Campaign frontier: **PAPER_317** (Orion M42 Trapezium wind ram-pressure dominance: g_base=G·M/r²=1.907e-11; ram-pressure a_wind=v_wind²/r·(1+t/t_age) gives η_wind=P_ram/P_grav=a_wind/g_base=28.47 at birth (wind-dominated/unbound), doubling to 56.9 at t_age; erosion t_erosion=r/v_wind=467 kyr > t_age 300 kyr, so proplyds survive), wired v0.325.0. *(v0.285.0 and v0.321.0 burned/yanked on PyPI; v0.286.0 backfilled 10 papers, v0.287.0 doc-correction.)*
92
+ **Wired so far: 333 distinct papers** (`wired_count()`=333 = 319 base-numbered + 14 suffixed) — 85 ✓ CLEAN · 248 ⚠ OPEN_RULING file-rows · 248 rulings queued. Campaign frontier: **PAPER_319** (Orion M42 compact-HII SFR gravitational-binding phase transition: specific SFR sSFR=SFR/M=1/2000=5e-4 yr⁻¹ is 50× Lagoon; the SFR-amplified gravity crosses the wind ram pressure at t_cross=67,730 yr (unbound→bound); m_factor(t_age)=1+sSFR·t=151 gives binding_ratio=g_SFR/a_wind=2.654 by 300 kyr; t_consume=M/SFR=2000 yr — shortest in the series), wired v0.327.0. *(v0.285.0 and v0.321.0 burned/yanked on PyPI; v0.286.0 backfilled 10 papers, v0.287.0 doc-correction.)*
93
93
 
94
94
  | Paper | Content | Key result |
95
95
  |---|---|---|
@@ -732,7 +732,9 @@ Authorized 2026-07-28: autonomous band sessions, ship per session via
732
732
  | **v0.322.0** | Band 1: PAPER_314 (NGC 6302 PN lobe DPM macro-antenna F_DPM=1.267e50 N); v0.321.0 burned | 328 |
733
733
  | **v0.323.0** | Band 1: PAPER_315 (NGC 6302 VacDiff-THz crossover r_cross=3.280 km) | 329 |
734
734
  | **v0.324.0** | Band 1: PAPER_316 (NGC 6302 Cooper-DPM A_sc=6.994e21, Q-248) | 330 |
735
- | **v0.325.0** ← current | Band 1: PAPER_317 (Orion M42 Trapezium wind ram-pressure η_wind=28.47) | 331 |
735
+ | **v0.325.0** | Band 1: PAPER_317 (Orion M42 Trapezium wind ram-pressure η_wind=28.47) | 331 |
736
+ | **v0.326.0** | Band 1: PAPER_318 (Orion M42 Trapezium OB UV radiation η_rad=7.664e18, champagne flow) | 332 |
737
+ | **v0.327.0** ← current | Band 1: PAPER_319 (Orion M42 SFR binding transition t_cross=67.7 kyr) | 333 |
736
738
  | v0.4.0+ | One band per session (~20-80 papers each) | growing |
737
739
  | PAPER_500 milestone | FULL STOP — Daniel's manual review | 500 |
738
740
  | v1.0.0 | Full whitepaper coverage | 2,255 |
@@ -58,7 +58,7 @@ from uqff_registry_primitives import (
58
58
  DELTA_M2_21_EV2, DELTA_M2_32_EV2,
59
59
  )
60
60
 
61
- VERSION = "0.325.0"
61
+ VERSION = "0.327.0"
62
62
 
63
63
  # =============================================================================
64
64
  # DISPATCH TABLE — grown one whitepaper at a time.
@@ -17262,3 +17262,79 @@ def _paper_317(dataset):
17262
17262
  'residual_pct': 0.0,
17263
17263
  'status': 'WIRED',
17264
17264
  }
17265
+
17266
+
17267
+ @_register('PAPER_318')
17268
+ def _paper_318(dataset):
17269
+ import math as _m
17270
+ c = C_OBSERVED
17271
+ L_trap = 7.656e31 # Trapezium cluster luminosity 2e5 L_sun (W), anchor
17272
+ r = 1.18e17 # HII region half-span (m), anchor
17273
+ rho_fluid = 1.0e-20 # HII gas density (kg/m^3), anchor
17274
+ g_base = 1.907e-11 # DPM-seeded self-gravity (PAPER_317)
17275
+ a_wind = 5.424e-10 # wind ram accel (PAPER_317)
17276
+ A_trap = 4.0 * _m.pi * r ** 2 # 1.748e35 m^2 surface area at r
17277
+ P_rad = L_trap / (A_trap * c) # 1.461e-12 Pa UV radiation pressure
17278
+ a_rad = P_rad / rho_fluid # 1.461e8 m/s^2 radiation acceleration
17279
+ eta_rad = a_rad / g_base # 7.664e18 UV-gravity dominance
17280
+ a_rad_over_a_wind = a_rad / a_wind # 2.7e17 (radiation >> wind)
17281
+ return {
17282
+ 'value': {
17283
+ 'domain': '3.16 (Orion M42 Trapezium OB UV radiation; champagne-flow condition)',
17284
+ 'source_thread': 'Session 91 ORION_UQFF_MODULE.cpp (33rd C++ module)',
17285
+ 'system': 'Orion Nebula M42, Trapezium theta1 Ori C OB cluster (4+ O-stars)',
17286
+ 'L_trap_W': L_trap, 'r_m': r, 'rho_fluid': rho_fluid,
17287
+ 'A_trap': A_trap, # 1.748e35
17288
+ 'P_rad_Pa': P_rad, # 1.461e-12
17289
+ 'a_rad': a_rad, # 1.461e8
17290
+ 'a_rad_formula': 'L_trap/(4*pi*r^2*c*rho_fluid)',
17291
+ 'eta_rad': eta_rad, # 7.664e18 (18 orders)
17292
+ 'champagne_flow': eta_rad > 1.0, # ionized gas escapes freely
17293
+ 'a_rad_over_a_wind': a_rad_over_a_wind, # 2.7e17 (radiation dominates wind PAPER_317)
17294
+ 'OB_cluster_class': 'Orion eta_rad ~ 5x Lagoon (PAPER_306); eta_rad ~ L/M scaling',
17295
+ },
17296
+ 'formula': 'a_rad=L_trap/(4*pi*r^2*c*rho_fluid)=1.461e8 m/s2; eta_rad=a_rad/g_base=7.664e18 (18 orders, champagne-flow condition eta>>1); a_rad/a_wind=2.7e17 (radiation dominates wind); Orion eta_rad ~ 5x Lagoon (L/M scaling)',
17297
+ 'source': 'PAPER_318',
17298
+ 'residual_pct': 0.0,
17299
+ 'status': 'WIRED',
17300
+ }
17301
+
17302
+
17303
+ @_register('PAPER_319')
17304
+ def _paper_319(dataset):
17305
+ M_sun_count = 2000.0 # initial mass in M_sun, anchor
17306
+ SFR_yr = 1.0 # star formation rate M_sun/yr, anchor
17307
+ g_base = 1.907e-11 # base gravity (PAPER_317)
17308
+ a_wind0 = 5.424e-10 # initial wind accel (PAPER_317)
17309
+ t_age_yr = 3.0e5 # nebula age (yr), anchor
17310
+ sSFR = SFR_yr / M_sun_count # 5e-4 yr^-1 specific SFR (50x Lagoon)
17311
+ t_cross = (a_wind0 - g_base) / (g_base * sSFR - a_wind0 / t_age_yr) # 67,730 yr unbound->bound
17312
+ m_factor_age = 1.0 + sSFR * t_age_yr # 151 SFR mass factor at t_age
17313
+ g_SFR_age = g_base * m_factor_age # 2.878e-9 SFR-amplified gravity
17314
+ a_wind_age = a_wind0 * (1.0 + t_age_yr / t_age_yr) # 1.085e-9 wind at t_age
17315
+ binding_ratio_age = g_SFR_age / a_wind_age # 2.654 gravitationally bound
17316
+ m_factor_1Myr = 1.0 + sSFR * 1.0e6 # 501
17317
+ binding_ratio_1Myr = (g_base * m_factor_1Myr) / (a_wind0 * (1.0 + 1.0e6 / t_age_yr)) # 4.069
17318
+ t_consume_yr = M_sun_count / SFR_yr # 2000 yr gas depletion
17319
+ return {
17320
+ 'value': {
17321
+ 'domain': '3.17 (Orion M42; first UQFF compact-HII SFR gravitational-binding phase transition)',
17322
+ 'source_thread': 'Session 91 ORION_UQFF_MODULE.cpp (33rd C++ module)',
17323
+ 'system': 'Orion Nebula M42, compact HII with active star formation',
17324
+ 'M_sun_count': M_sun_count, 'SFR_yr': SFR_yr, 't_age_yr': t_age_yr,
17325
+ 'sSFR': sSFR, # 5e-4
17326
+ 'sSFR_vs_Lagoon': sSFR / 1.0e-5, # 50x (PAPER_305)
17327
+ 't_cross_yr': t_cross, # 67,730 (unbound->bound transition)
17328
+ 't_cross_formula': '(a_wind0-g_base)/(g_base*sSFR - a_wind0/t_age_yr)',
17329
+ 'm_factor_age': m_factor_age, # 151
17330
+ 'g_SFR_age': g_SFR_age, # 2.878e-9
17331
+ 'binding_ratio_age': binding_ratio_age, # 2.654 (bound)
17332
+ 'bound_at_t_age': binding_ratio_age > 1.0, # gravitationally bound by 300 kyr
17333
+ 'binding_ratio_1Myr': binding_ratio_1Myr, # 4.069 (increasingly bound)
17334
+ 't_consume_yr': t_consume_yr, # 2000 (shortest in UQFF series)
17335
+ },
17336
+ 'formula': 'sSFR=SFR/M=1/2000=5e-4 yr^-1 (50x Lagoon); t_cross=(a_wind0-g_base)/(g_base*sSFR-a_wind0/t_age_yr)=67,730 yr (unbound->bound); m_factor(t_age)=1+sSFR*t=151 -> binding_ratio=g_SFR/a_wind=2.654 (bound); t_consume=M/SFR=2000 yr',
17337
+ 'source': 'PAPER_319',
17338
+ 'residual_pct': 0.0,
17339
+ 'status': 'WIRED',
17340
+ }
@@ -117,7 +117,7 @@ assert_that(abs(P.N_EFF_NEUTRINO - n_eff_expected) < 1e-15,
117
117
  # =============================================================================
118
118
  # BLOCK 7 — CALCULATOR SCAFFOLD INTEGRITY
119
119
  # =============================================================================
120
- assert_that(C.VERSION == "0.325.0", "uqff_calculator.VERSION = 0.325.0 (PAPER_317 = v0.325.0)")
120
+ assert_that(C.VERSION == "0.327.0", "uqff_calculator.VERSION = 0.327.0 (PAPER_319 = v0.327.0)")
121
121
  assert_that(isinstance(C.DISPATCH, dict), "DISPATCH is a dict")
122
122
  assert_that(C.wired_count() >= 0, "wired_count is queryable (>= 0)")
123
123
  assert_that(callable(C.calc), "calc is callable")
@@ -4312,6 +4312,32 @@ assert_that(abs(_r317['P_ram_Pa'] - 6.4e-13) / 6.4e-13 < 0.005 and abs(_r317['P_
4312
4312
  "PAPER_317: P_ram = rho*v^2 = 6.4e-13 Pa; P_grav = GM*rho/r = 2.248e-14 Pa")
4313
4313
  assert_that(C.wired_count() >= 331, "wired_count >= 331 (PAPER_317 wired)")
4314
4314
 
4315
+ _r318 = C.calc('PAPER_318')['value']
4316
+ assert_that(abs(_r318['P_rad_Pa'] - 1.461e-12) / 1.461e-12 < 0.005 and _r318['a_rad_formula'] == 'L_trap/(4*pi*r^2*c*rho_fluid)',
4317
+ "PAPER_318: P_rad = L_trap/(4*pi*r^2*c) = 1.461e-12 Pa (Trapezium OB UV radiation pressure)")
4318
+ assert_that(abs(_r318['a_rad'] - 1.461e8) / 1.461e8 < 0.005,
4319
+ "PAPER_318: a_rad = P_rad/rho_fluid = 1.461e8 m/s2 (UV radiation acceleration)")
4320
+ assert_that(abs(_r318['eta_rad'] - 7.664e18) / 7.664e18 < 0.005 and _r318['champagne_flow'],
4321
+ "PAPER_318: eta_rad = a_rad/g_base = 7.664e18 (18 orders; champagne-flow condition eta>>1)")
4322
+ assert_that(abs(_r318['a_rad_over_a_wind'] - 2.7e17) / 2.7e17 < 0.02,
4323
+ "PAPER_318: a_rad/a_wind = 2.7e17 (radiation dominates wind ram pressure PAPER_317)")
4324
+ assert_that(abs(_r318['A_trap'] - 1.748e35) / 1.748e35 < 0.005,
4325
+ "PAPER_318: A_trap = 4*pi*r^2 = 1.748e35 m^2 (surface area at r)")
4326
+ assert_that(C.wired_count() >= 332, "wired_count >= 332 (PAPER_318 wired)")
4327
+
4328
+ _r319 = C.calc('PAPER_319')['value']
4329
+ assert_that(abs(_r319['sSFR'] - 5e-4) < 1e-6 and abs(_r319['sSFR_vs_Lagoon'] - 50.0) < 0.5,
4330
+ "PAPER_319: sSFR = SFR/M = 1/2000 = 5e-4 yr^-1 (50x Lagoon Nebula PAPER_305)")
4331
+ assert_that(abs(_r319['t_cross_yr'] - 67730.0) / 67730.0 < 0.005 and _r319['t_cross_formula'] == '(a_wind0-g_base)/(g_base*sSFR - a_wind0/t_age_yr)',
4332
+ "PAPER_319: t_cross = 67,730 yr (SFR-driven unbound->bound gravitational binding transition)")
4333
+ assert_that(abs(_r319['m_factor_age'] - 151.0) < 0.5 and abs(_r319['binding_ratio_age'] - 2.654) < 0.005 and _r319['bound_at_t_age'],
4334
+ "PAPER_319: m_factor(t_age) = 151; binding_ratio = g_SFR/a_wind = 2.654 (gravitationally bound by 300 kyr)")
4335
+ assert_that(abs(_r319['binding_ratio_1Myr'] - 4.069) < 0.01,
4336
+ "PAPER_319: binding_ratio(1 Myr) = 4.069 (increasingly bound)")
4337
+ assert_that(abs(_r319['t_consume_yr'] - 2000.0) < 1.0,
4338
+ "PAPER_319: t_consume = M/SFR = 2000 yr (shortest gas depletion in UQFF series)")
4339
+ assert_that(C.wired_count() >= 333, "wired_count >= 333 (PAPER_319 wired)")
4340
+
4315
4341
 
4316
4342
  # =============================================================================
4317
4343
  # REPORT