Skip to content

v1.12.0 — validated against published works: 172 anchors traced, 144 primary-confirmed

Latest

Choose a tag to compare

@king-aj3 king-aj3 released this 30 Aug 19:12

Someone put it to me plainly that being able to re-create this project's tutorials proves nothing — if a tutorial anchors on a wrong number, everyone faithfully reproduces the error. That is correct: consistency is not correctness. So this release's headline is not a feature. It is an audit of my own foundations.

  • Every reference value, traced to its primary source. Every number the validation gates anchor on was traced back to the original paper, standard, report or manufacturer datasheet, and compared digit by digit — under strict rules of evidence: only the original document (or an official scan) can CONFIRM a value; restatements merely corroborate; anything that could not be re-read in a fetched document is recorded as unverifiable rather than assumed right; and every suspected mismatch was re-verified against the source itself before being believed. Result: 172 anchors traced — 144 confirmed digit-for-digit against primary sources (the NIST scan of NBS TN-688, the compumag TEAM-7 specification, Lyn's J. Fluid Mech. experiment, the Huynh thesis chamber column, Belden datasheets, the ITU-R Recommendation texts, Balanis — measured from the PDF's embedded vector geometry where the source is a chart — and NIST CODATA), 13 corroborated only, 8 honestly unverifiable, and 7 real mismatches in my own numbers, every one corrected in this release and published beside its correction. The full record: https://ajj3.us/apps/emstudio/validation — and machine-readable in this repository as docs/validation/anchors.json, so the claim and the record cannot drift apart.
  • The seven corrections (none touched a solved result): the LPDA low-sigma table re-measured from Balanis Fig 11.13's embedded vector paths — the hand-read values were off by up to 0.010 in τ, and the 8.5 dB contour never reaches σ = 0.06 at all, so that row is now labelled the extrapolation it is; the 0.469 sphere constant's citation corrected (the constant was always right — it is Churchill's sphere correlation; the cited equation prints the 0.492 plate function); the vendored ITU-R P.1812 engine relabelled -8, the revision actually vendored and the one in force; "64 per-dataset logs" → 63; the horn phase-error docstring s = 1/8 → 1/4; the horn aspect-ratio derivation claim; and NBS TN-688's own 2.16 dB rounding of the dBd offset documented beside the exact 2.15 the code keeps.
  • A second horn design mode — the true Balanis optimum. design_pyramidal_optimum solves the ch. 13 chain for the shortest horn at a target gain, with the realizability condition p_e = p_h as the equation being solved and the feed guide included; the Element Designer gains a Design-mode choice beside the symmetric-beam default. Verified on identities from fetched sources: p_e/p_h = 1 to 1e-9 with and without a WR-90 throat, gain round-trip within 0.015 dB.
  • The symmetric-beam horn synthesis now prints one buildable horn. The old read-out quoted both per-plane optimum flares beside a 1.5 aspect ratio — a pair whose flares meet the axis 1.5× apart, which no single pyramidal horn can have. The E-plane flare now derives from the shared apex, and the "independent gain cross-check" is relabelled the same-model consistency figure it is.
  • The NEC2 pattern parsers select the requested frequency's block. On a swept file the old single-block parsers returned the band-start block under whatever label the caller asked for (latent — no shipped path passes one today). One shared block walker now serves all three parsers; a data row must lead with a number, so the card-echo trailer can never be ingested as data. Proven on real nec2c output.

Pre-tag proof: the full solver battery ran complete on the release commit itself — 115 ok, 0 failed, 0 skipped, 21,409.8 s (5.95 hours), 3,535 executed checks across 105 gates — and nothing moved during the run, so the proved tree and this tag differ by the proof paragraph alone.

97 automated validation gates in this repository. Full details in CHANGELOG.md.