Run the warp-bubble time-integration solver on convergence results to extract strong-field curvature diagnostics, then assemble a timeline summary for visualization.
- Python 3.7+
- NumPy
Note: This project depends on solver.py, which provides the core RK4 integration and curvature computation functionality.
-
run_strong_curvature.py
- Reads
convergence.ndjson. - For each entry, runs the full solver and computes:
-
max_R(Ricci scalar) -
peak_R2($R_{μν}R^{μν}$ ) - Constraint-violation series vs. time.
-
- Emits:
strong_curvature.ndjsonstrong_curvature.am
- Reads
-
assemble_visualization.py
- Reads the curvature diagnostics.
- Detects events (curvature peaks, constraint breaches).
- Emits:
simulation_summary.ndjsonsimulation_summary.am
convergence.ndjson
JSON lines of:
{
"parameters": { "grid": 128, "dr": 0.01, "dt": 0.005 },
"L2_error": 1e-6,
"Linf_error": 2e-6,
"order": 2.0
}python run_strong_curvature.py \
--input convergence.ndjson \
--output-json strong_curvature.ndjson \
--output-am strong_curvature.am
python assemble_visualization.py \
--input-json strong_curvature.ndjson \
--input-am strong_curvature.am \
--output-json simulation_summary.ndjson \
--output-am simulation_summary.am- strong_curvature.ndjson
JSON lines, each:
{
"parameters": { ... },
"max_R": 0.123,
"peak_R2": 0.000456,
"violations": [ [0.0, 1e-7], [0.1, 2e-7], … ]- strong_curvature.am
AsciiMath summary, e.g.:
run: grid=128, dr=0.01, dt=0.005, max_R: 0.123, peak_R2: 0.000456- simulation_summary.ndjson
JSON lines of timeline events:
{
"event": "constraint_violation",
"time": 0.1,
"params": { ... }
}-
simulation_summary.am
AsciiMath timeline notes:timeline: - at t=0.1: constraint_violation for params { … } - at t=0.5: peak_R for params { … }
warp-curvature-analysis/
├─ run_strong_curvature.py
├─ assemble_visualization.py
├─ convergence.ndjson
├─ [convergence.am]
├─ strong_curvature.ndjson
├─ strong_curvature.am
├─ simulation_summary.ndjson
├─ simulation_summary.am
└─ README.md