You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Introduced `simulate_vector_impulse.py` to encapsulate the vectorized translation impulse engine simulation.
- Implemented JAX support with fallbacks to NumPy for performance optimization.
- Added classes for 3D vectors and impulse profiles, along with methods for trajectory planning and energy computation.
- Created a multi-segment trajectory planning function to handle complex maneuvers.
- Developed visualization functions for trajectory analysis, including 3D plots and energy timelines.
- Deprecated the standalone JAX acceleration test script, replacing it with a pytest-based demo that runs conditionally based on JAX availability.
- Added pytest fixtures for trajectory planning and mission results to streamline testing.
- Updated V&V tests to import from the new simulation module structure.
Copy file name to clipboardExpand all lines: UQ-TODO.ndjson
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -21,4 +21,7 @@
21
21
{"title":"Stability Mode Sensitivity","description":"Perturb background profiles and recompute dominant growth rates in WarpBubble3DStabilityAnalyzer; report distribution of max growth.","type":"analysis","severity":55,"category":"stability","impact":"High sensitivity indicates need for profile constraints or damping mechanisms"}
22
22
{"title":"Metamaterial-Plasma Coupling Validation","description":"Validate 10⁴× enhancement with small toroidal rings","type":"validation","severity":70,"category":"cross_system_coupling","impact":"Could affect energy reduction accuracy"}
23
23
{"title":"Battery Cost-Complexity Tradeoff","description":"Analyze battery vs. fusion for 25 MW in small spacecraft","type":"theoretical","severity":65,"category":"system_integration","impact":"Could increase costs if battery scaling is inefficient"}
24
+
{"title":"Define abort criteria for ramp overshoot","description":"Quantify safe abort thresholds for power ramp overshoot and quench conditions; tie to safety checklist.","type":"safety","severity":60,"category":"safety","impact":"Prevents thermal/electrical overstress during transients"}
25
+
{"title":"Thermal cooldown margin validation","description":"Model cooldown time and margin after full-power mission; ensure compliance with thermal limits.","type":"analysis","severity":55,"category":"thermal","impact":"Undersized cooling could force increased dwell or mission delays"}
26
+
{"title":"Fix geometry and mission timeline","description":"Lock geometry and mission timeline consistent with constraints; propagate to tests and docs.","type":"process","severity":40,"category":"documentation","impact":"Prevents drift between models and mission plan"}
24
27
{"title":"Ring Field Synchronization","description":"Ensure 1-meter rings synchronize fields for stable 5-meter bubble","type":"theoretical","severity":55,"category":"temporal_coupling","impact":"Could destabilize warp bubble if unsynchronized"}
{"category":"V&V","task":"Vector impulse energy scales ~ v_max^2","priority":"Done","note":"Implemented in tests/test_vnv_vector_impulse.py"}
7
+
{"category":"V&V","task":"Validate plasma_density bounds and units","priority":"High","source_file":"src/supraluminal_prototype/warp_generator.py","source_snippet":"def plasma_density","python_snippet":"import numpy as np\nfrom src.supraluminal_prototype.warp_generator import plasma_density, GridSpec\nres = plasma_density({'grid': GridSpec(), 'n0': 3e20})\nn = res['n']\nassert float(n.min()) >= 0 and np.isfinite(n).all()\n# units: n0 is in m^-3; ensure scaling preserves peak within ~1%\nassert np.isclose(float(n.max()), 3e20, rtol=1e-2)","status":"resolved","date":"2025-08-10"}
8
+
{"category":"V&V","task":"Bench field_synthesis against simplified analytic target","priority":"Medium","source_file":"src/supraluminal_prototype/warp_generator.py","source_snippet":"def field_synthesis","python_snippet":"import numpy as np\nfrom src.supraluminal_prototype.warp_generator import GridSpec, field_synthesis, target_soliton_envelope, compute_envelope_error\ngrid = GridSpec()\n# Use target_soliton_envelope as simplified analytic target\nanalytic = target_soliton_envelope({'grid': grid, 'r0': 0.0, 'sigma': 0.5*grid.extent})['envelope']\n# Synthesize with uniform ring amplitudes and reasonable sigma\nsyn = field_synthesis([1,1,1,1], {'grid': grid, 'sigma': 0.2*grid.extent})['envelope']\nerr = compute_envelope_error(syn, analytic, norm='l2')\n# Expect bounded error on coarse grid; tighten later with fitters\nassert 0.0 <= err <= 0.6","status":"resolved","date":"2025-08-10"}
9
+
{"category":"V&V","task":"V&V: coil ramp linearity and hysteresis","priority":"Medium","source_file":"src/supraluminal_prototype/hardware.py","source_snippet":"class CoilDriver","python_snippet":"from src.supraluminal_prototype.hardware import CoilDriver\ndrv = CoilDriver(max_current=5000.0, hysteresis=0.0)\nvals = [drv.command(i/30.0) for i in range(31)]\n# Near-linear increments\nincs = [vals[i]-vals[i-1] for i in range(1,31)]\nassert max(abs(incs[i]-incs[0]) for i in range(1,len(incs))) < 1e-3*drv.max_current","status":"resolved","date":"2025-08-10"}
7
10
{"category":"V&V","task":"Trajectory accuracy improves with n_steps","priority":"Done","note":"Implemented in tests/test_vnv_vector_impulse.py"}
Copy file name to clipboardExpand all lines: VnV-TODO.ndjson
-3Lines changed: 0 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,6 @@
6
6
{"category":"Docs/Process","task":"Traceability: link roadmap items to tests","priority":"High","source_file":"docs/roadmap.ndjson","source_snippet":"associated_tasks","python_snippet":"# Scriptable check: for each associated_tasks title, ensure a matching line exists in VnV-TODO.ndjson/UQ-TODO.ndjson/tests"}
{"category":"Safety","task":"Safety checklist v0.9","priority":"High","source_file":"docs/safety_checklist.md","source_snippet":"Safe ramp abort and quench procedures","python_snippet":"# Placeholder: validate presence of abort criteria, watchdogs, thermal margins"}
9
-
{"category":"V&V","task":"V&V: coil ramp linearity and hysteresis","priority":"Medium","source_file":"src/supraluminal_prototype/hardware.py","source_snippet":"class CoilDriver","python_snippet":"from src.supraluminal_prototype.hardware import CoilDriver\ndrv = CoilDriver(max_current=5000.0, hysteresis=0.0)\nvals = [drv.command(i/30.0) for i in range(31)]\n# Near-linear increments\nincs = [vals[i]-vals[i-1] for i in range(1,31)]\nassert max(abs(incs[i]-incs[0]) for i in range(1,len(incs))) < 1e-3*drv.max_current"}
10
9
{"category":"V&V","task":"V&V: power draw vs. model across ramp","priority":"High","source_file":"src/supraluminal_prototype/power.py","source_snippet":"def compute_smearing_energy","python_snippet":"# Placeholder: integrate measured P(t) and compare to model E within tolerance; assert abs(E_meas-E_model)/E_model < 0.1"}
11
10
{"category":"Design","task":"Power electronics block diagram v1","priority":"Medium","source_file":"docs/power_electronics_block.md","source_snippet":"DC bus, ring drivers, protections","python_snippet":"# Placeholder artifact existence check"}
12
11
{"task":"Instantiate MetricBackreactionEvolution with default parameters","priority":"High","source_file":"evolve_3plus1D_with_backreaction.py","source_file_lines":"1:20","source_snippet":"class MetricBackreactionEvolution","python_snippet":"from evolve_3plus1D_with_backreaction import MetricBackreactionEvolution; mbe = MetricBackreactionEvolution(); assert hasattr(mbe, 'laplacian_3d') and callable(mbe.laplacian_3d)"}
@@ -29,5 +28,3 @@
29
28
{"task":"Verify build_metric for Natário metric with 1-meter rings","priority":"High","source_file":"src/supraluminal_prototype/warp_generator.py","source_file_lines":"50:65","source_snippet":"def build_metric(self, params): ...","python_snippet":"import numpy as np\nfrom supraluminal_prototype.warp_generator import WarpFieldGenerator\nxs = np.linspace(-1,1,16)\ngen = WarpFieldGenerator(grid=(xs, xs, xs), dx=xs[1]-xs[0])\nG = gen.build_metric({'r_eff':1e-10,'v':3e8})\nassert G.shape == (4,4,16,16,16)\nr2 = sum(xi**2 for xi in np.meshgrid(xs,xs,xs,indexing='ij'))\nassert np.allclose(G[0,0], np.exp(-r2))"}
Copy file name to clipboardExpand all lines: docs/progress_log-completed.ndjson
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -36,4 +36,6 @@
36
36
{"event":"Add JAX vs NumPy benchmark summary to docs using jax_acceleration test","status":"completed","refs":["test_jax_acceleration.py","docs/technical-documentation.md"]}
37
37
{"event":"CI workflow added to run tests on GitHub Actions","status":"completed","refs":[".github/workflows/ci.yml","requirements-test.txt"]}
38
38
{"event":"README updated with pytest filters and focused run guidance","status":"completed","refs":["README.md","pytest.ini","conftest.py"]}
39
-
{"event":"Added V&V tests: vector energy ~ v_max^2 and trajectory accuracy improves with n_steps","status":"completed","refs":["tests/test_vnv_vector_impulse.py","simulate_vector_impulse.py"]}
39
+
{"event":"Added V&V tests: vector energy ~ v_max^2 and trajectory accuracy improves with n_steps","status":"completed","refs":["tests/test_vnv_vector_impulse.py","simulate_vector_impulse.py"]}
40
+
{"event":"Laser coherence injection-locking plan draft","status":"completed","refs":["docs/roadmap.ndjson:Rings, Coils, Lasers, Plasma Integration","docs/technical-documentation.md:Coherence Control Plan (draft)"]}
41
+
{"event":"CI hygiene: tests-only discovery and optional JAX demo skip","status":"completed","refs":["pytest.ini:testpaths","tests/test_jax_acceleration.py"]}
0 commit comments