Changelog · Recent activity

Patches, frontend changes, and V&V milestones. Reverse chronological. Tags: .

May 2026

12 untracked pages committed · drift refresh

Two-week debt cleared: 11 pages authored 2026-05-05..16 plus three modified pages landed in three logical commits. Coverage and changelog snapshots refreshed to 2026-05-22 to reflect the radiation V&V buildout, AKSource landing, and MC tuning done in the interim.

  • tier1 / tier2 / coverage / casebook / erdmp / roadmap / changelog · privacy / terms
  • index.html — Dispersion workflow section + Coverage nav link
  • docs.html — Quality & Coverage section, real card targets (was #)
Radiation V&V combined-PDF email workflow

After every sweep + postprocess, /tmp/combined_rad_vv.pdf is auto-emailed to the engineering recipient via local msmtp (Gmail SMTP). Preferred over the Gmail MCP for multi-MB attachments. Workflow rule persisted across sessions.

AKSource C++ kernels (Patch 0008) + spray bridge

Low-Mach combustion kernels — TFC, EDC, Detonation, Fireball — land in the reactive solver as Patch 0008; smoke runs clean. Lagrangian spray Python translator + ParmParse contract land alongside (full C++ linkage deferred to a build-env step). 32 + 18 new tests, 534 total green.

AKSource production hardening (G1–G10) + 5 follow-up closures

G-batch: mixture flash, wind-profile, Peng-Robinson EOS, receptor framework, frequency / lineage hashing, scenario binding, multi-source superposition, REST dispatch_payload, 12-case V&V benchmark library, PNGRB markdown report. Follow-up: 14 MB production LUT (11.5 M cells), MTT closure dimensional fix, 12 V&V YAMLs, HazmatDB JSON externalisation, JWT auth + tenant isolation + rate limiting. Williamson BLEVE matches the published 58.0 m exactly. 484 total tests green.

AKSource P0→P12 — 13-phase tier-spanning source stack

Unified source-modelling tensor + vessel ODE + LUT + MTT hand-off + sub-grid closures, spanning all 10 consequence types (Dispersion · Jet/Pool/Flash fire · Deflagration · Detonation · DDT · BLEVE · Cryogenic · RPT). Tier-1 becomes a projection of AKSource. 269 P0-P12 tests + 155 adjacent = 424 green.

MC accuracy / speed backfill · Cumber 2009 audit closed

Accuracy: A4 + A5 + ST1 + ST3 + ST4 + T2#8 + T2#9 (face-centred qr extraction 1.5·qr_bdry − 0.5·qr_inside, adaptive sampling N ∝ τ_max). Speed: S2 Russian-roulette bounce scale, S3 Sobol stream reuse, S4 WSGGM band pool. Mode-2 directional probes gain Cumber-I cos·sin hemisphere sampling. R009 wall-flux imbalance dropped 6× / 4× / 3× at κ_L = 2 / 5 / 10.

Radiation V&V RULES v2 + Altaç-Tekkalmaz 2008 buildout

Machine-checked YAML schema + linter + migrator; all 40 VC-R case files migrated. Altaç-Tekkalmaz 2008 BMP-A through BMP-F digitised from Tables 3–8 (with 3 typo corrections vs the published source). Phase 2 adds T1R-004/005/006 AB+CD; Phase 3 adds 15 new cases. VC-R006 cylinder rebuilt around Henson §6.1.2 Case B — wall flux PASS at ±15 % on all three κ (4.6 % / 7.3 % / 0.5 %).

Coverage page + V&V Casebook + workflow bridge

New coverage.html (Tests · Verification · Validation, 13 categories), new casebook.html (per-case index, filterable), new erdmp.html regulatory guide, plus dispersion workflow + Tier-1 ↔ Tier-2 bridge added to index.html.

  • Fixed broken anchor in grid_convergence.html (was pointing at non-existent docs.html#grid_convergence)
  • 262 internal links resolve · 0 broken
Items 1–5 dispersion bundle · 156 tests pass

Five Brinkman / EB / TurbInflow improvements landed together. Smoke-verified: AMR + turb 240 s clean, Brinkman + AMR 60 s clean (3 levels active).

  • Item 1 · VOS Brinkman + IBM wall drag — closes the ramp-smearing 9× concentration gap vs EB at x = 200 m
  • Item 2 · EB wall-function — coarse-grid EB without cut-cell complications
  • Item 3 · Wake-spike softener — damps the spike when turb-inflow gusts hit the obstacle face
  • Item 4 · Brinkman substepping — accelerated relaxation, M sub-steps within one outer dt
  • Item 5 · AMR + turb preflight — spectral low-pass filter (patch 0005, default-off)
D(x) sweep analyzer → worst-arc metric · Dfar20-trans200 winner

Switched D(x) post-sweep analyzer from mean-FAC2 to worst-arc metric. New winner under stricter scoring: D_far = 20, transition x = 200 m. Applied to inputs.pg-turb-8m-optimal.

April 2026

Radiation fire features · Mode 4 qinc field + iso-contour

Three radiation features for outdoor fire scenarios: qinc(x) field + iso-line export (Mode 4), Wayne atmospheric attenuation, ground & sky outdoor BCs. All default-off ParmParse flags so V&V cases stay indoor-canonical.

Radiation V&V pipeline closed — Phases A + B + C + D

Unified P1 + MC runner with single-pass AgniKawach PDF report. 28 cases total. 15 / 27 PASS at ± 15 % wall flux. WSGGM accumulation bug fixed.

Sobol primary-ray sampler · 44× variance reduction

2-D Sobol sequence on (azimuth, polar) for MC modes 1 / 2 / 3 / 4. Default on. Cumber (2009) hot-ray adaptive sampling auto-fires for narrow / localised emitters.

Product prototype stack (parallel-agent build)

Landing page · scenario builder · 3D viewer · dashboards · QRA · SCADA live · FastAPI backend · WebSocket job monitor · branded PDF · Docker compose stack — all in tree.

P1 wall flux — Marshak (correct) replaces Lambert (bug)

P1 wall flux formula was wrong (Lambert). Replaced with Marshak. Neither formula passes at τ < 0.5 — that is why MC is the default radiation engine.

WSGGM (RADCAL) + soot Rayleigh κ

Gas absorption coefficient with composition selection (pelerad.wsggm_composition). Auto-rule: gray for κ-uniform / single-band, WSGGM otherwise. Soot Rayleigh small-particle κ wired through.

Three-mode Monte Carlo radiation

Mode 1 (full-field), Mode 2 (monitor probes, directional or omni), Mode 3 (hemisphere wall flux, default-on per VC-R case). Anisotropic scattering supported.

Patch 0003 velocity clamp · 226 tests / 16 suites

Coverage audit: Tier-2 87 % · Tier-1 65 % · postprocess 13 %. Mandatory test-coverage policy adopted: every new code change must ship with tests, no exceptions.

Hypre v2.28 bottom solver linked · class F/A workaround

PeleLMeX binary now links Hypre v2.28 (user-local, no MPI). Switch via mac_proj.bottom_solver = hypre. Native MLMG remains default — Hypre adds ~35 % overhead on cases native handles.

  • Class F/A workaround — gravity + low-Mach projection cannot close on small grid; set peleLM.gravity = 0 and encode stability via reduced Cs / D
Virtual-source σ-shift correction in postprocess

σ_eff = √(σ²Pasquill + r²release) applied automatically. The near-source "under-prediction" was a comparison artefact, not a solver bug. Standard practice for AERMOD / ADMS / HEGADAS.

  • VC-005 ratio at x = 50 m: 0.11 → 0.51 · at x = 100 m: 0.36 → 0.79
  • Patch 0002 part A (top-hat BC) thereby superseded — was solving the wrong problem