-
Notifications
You must be signed in to change notification settings - Fork 0
CHANGELOG Summary
GRANITE v0.6.8 | ← Benchmarks & Validation | Developer Guide →
High-level version history. For granular bug fix details see the full CHANGELOG and Known Fixed Bugs.
Focus: Complete architectural overhaul of the Python analysis layer and post-release hardening.
-
granite_analysispackage overhaul: Monolithicscripts/sim_tracker.pyandscripts/dev_benchmark.pydecomposed into a 4-layer typed Python package:core/models.py(13 frozen dataclasses),core/parsers.py(12 compiled regex patterns),core/runners.py(shared telemetry loop),cli/(thin argparse entry points). PEP 517 installable viapip install -e .[dev]. - Old scripts permanently removed:
scripts/sim_tracker.py,scripts/dev_benchmark.py,scripts/dev_stability_test.py - C++ engine version banner corrected from
"0.6.5"to"0.6.7"insrc/core/cli_parser.cpp - CLI exit hardening: raw
FileNotFoundErrortracebacks replaced with cleansys.exit()messages -
run_granite.py docssubcommand: Sphinx HTML build with--openflag -
python/requirements.txt: flat dependency manifest for CI/Docker environments - 25 broken relative links fixed across
README.mdand alldocs/files - Quick Start Guide rewritten for
granite_analysispackage, new Step 7 (HPC/SLURM) - Wiki Documentation Index synced to v0.6.8
Focus: CI stabilization, identity audit, VORTEX Gold Master, 107-test milestone.
- C++ smoke tests: 4 new suites (92 → 107 tests) — AMR, horizon finder, M1 radiation, HDF5 roundtrip
- VORTEX Gold Master: GW audio sonification, Zen mode, cinematic autopilot, volume controls
- Identity purge: "GRANITE Collaboration" → "Liran M. Schwartz" across 37 files
- Documentation voice: "We/Our" → "I/The" across 24 passages
- Git history recovery after accidental
--forcepush (214 commits restored) -
.gitattributesLinguist override for C++ language dominance -
include/README.md: C++ header architecture map
Focus: Forensic rescue operation. Master reset of CCZ4 and AMR to the v0.6.0 verified baseline, preserving all P0 memory safety fixes.
- CCZ4 core reset: removed over-engineered mathematical constraints that destroyed interpolation balance
- AMR reset: restored
std::roundin child cell snapping; restored full-domain prolongation - Memory safety:
levels_.reserve()prevents pointer invalidation during refinement cascade - MICRO_OFFSET: domain phase-shift prevents r=0 division-by-zero for all centered-domain runs
- sim_tracker.py: procedural architecture restored; 8-layer stability summary guard
- Test count: 92/92 (100% pass rate)
- Validated: single_puncture (t=500M, ×84.8 ‖H‖₂ reduction), B2_eq (t=500M, ×61.3 reduction)
Focus: Binary black hole capability. AMR with subcycling. Python dashboard.
- TwoPuncturesBBH spectral initial data with Bowen-York extrinsic curvature
- Full Berger-Oliger recursive subcycling implemented
- Block-merging algorithm for close-binary refinement (eliminates MPI deadlocks)
- CFL synchronization: level timesteps cascade from L0 master
- sim_tracker.py: append-only live dashboard with NaN forensics and Matplotlib summaries
- gauge_wave and B2_eq benchmark configurations added
- validation_tests.yaml: machine-readable pass/fail criteria for 3 physics sectors
- 90 → 92 tests (+2 selective advection unit tests)
Focus: Repository structure, security, CI/CD, community standards.
- Root directory cleaned to 8 essential files
- scripts/, docs/, .github/ directories created and populated
- GitHub Actions CI workflow (.github/workflows/ci.yml)
- CodeQL static analysis (.github/workflows/codeql.yml)
- SECURITY.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md
- Chi-weighted hybrid advection (d1up far-field, d1 near puncture)
- Sommerfeld radiative BCs for Two-Punctures data
- Algebraic constraint enforcement (det(γ̃)=1, tr(Ã)=0)
- Adaptive CFL guardian (emergency dt reduction at CFL > 0.95)
- Numerical floors (χ, α) with IEEE 754-safe NaN guards
- Root cause of t≈6.25M crash confirmed: domain-size limitation (not code bug)
- Evidence matrix from 6 controlled experiments (CFL, η, Sommerfeld, upwinding)
- dev_benchmark.py forensic diagnostic runner
- Gauge wave travel time formula: t_crash ≈ domain_size / √2
- H2 fix: GridBlock single flat allocation (22 → 1 heap allocation)
- H3 fix: RHS zero-out loop spatial-outer, var-inner
- PPM reconstruction (Colella & Woodward 1984) implemented
- Full spin-weighted spherical harmonics (all ℓ,m modes via Wigner d-matrices)
- Recoil kick (Ruiz et al. 2008) implemented
- 81 → 90 tests
- C1 fix: EOS-exact sound speed (not hardcoded Γ=1)
- C3 fix: HLLE uses actual GRMetric3 (not flat dummy)
- H1 fix: KO dissipation in single OpenMP region (not 22 separate spawns)
- MP5 5th-order reconstruction (Suresh & Huynh 1997)
- 74 → 81 tests
- HLLD Riemann solver (Miyoshi & Kusano 2005) — all 7 wave families
- Constrained Transport ∇·B=0 to machine precision (Evans & Hawley 1988)
- TabulatedEOS with tri-linear interpolation, NR temperature inversion, beta-equilibrium
- TOV fix: 1.0e5 cm/km (not RSUN_CGS)
- 47 → 74 tests (+20 tabulated EOS tests)
This summary covers all phases through v0.6.7.2. For complete technical details including all bug IDs, exact line references, and physics derivations: Full CHANGELOG on GitHub
v0.6.8 · Repository · Issues
- 🩺 Simulation Health & Debugging
- 📊 Benchmarks & Validation
- 🗂️ AMR Design
- 🖥️ HPC Deployment
- 🌀 VORTEX Engine
"Simulate the unimaginable."