The claim
Mixture.transport_xs (→ diffusion_coefficient → MaterialXSField.diffusion_coefficient → the diffusion solver and DSA) applies the outflow transport correction with SigS[1] ALONE: Σ_tr = Σ_t − rowsum(Σ_{s,1}). The (n,2n) channel's P1 moment is not subtracted.
Until #426 step 1 that was moot — Isotope.sig2/Mixture.Sig2 carried only P0. [M] 2026-09-03: the ingest now keeps the whole (n,2n) Legendre stack, and Sig2[1] is non-zero on 9 of the 13 shipped isotopes (Be-9's ℓ=1 (n,2n) moment is 69 % of its P0 in ∞-norm; 45 % of the P1 emission source on Be-9 above threshold is (n,2n)'s). So D — and every DSA/diffusion consumer of it — now demonstrably omits a real term of the outflow correction: Σ_tr = Σ_t − Σ_{s,1} − y·Σ_{2n,1} with y = N2NKernel.multiplicity (the emission's first moment carries the yield like every other emission term).
What to do
Decide, then spell once: either include the (n,2n) P1 emission in transport_xs (the physically complete outflow correction; changes D on every Be/Zr/U-bearing mixture — measure the DSA rate and the diffusion k on the shipped fixtures before/after), or state in transport_xs's docstring and the diffusion theory page that the correction deliberately omits it and why. The #426 plan (.claude/plans/n2n_anisotropy_kept.md H-m) owes the corpus a .. warning:: at its step 3 either way; this issue tracks the CODE decision, which is a different consumer (DSA) from the doc page.
Surfaced by the elegance review of #426 step 1 (architectural opportunity 3). Labels: module:diffusion, module:data, type:improvement. Related: #426, #292 (diffusion data seam P1 re-baseline).
The claim
Mixture.transport_xs(→diffusion_coefficient→MaterialXSField.diffusion_coefficient→ the diffusion solver and DSA) applies the outflow transport correction withSigS[1]ALONE:Σ_tr = Σ_t − rowsum(Σ_{s,1}). The (n,2n) channel's P1 moment is not subtracted.Until #426 step 1 that was moot —
Isotope.sig2/Mixture.Sig2carried only P0.[M]2026-09-03: the ingest now keeps the whole (n,2n) Legendre stack, andSig2[1]is non-zero on 9 of the 13 shipped isotopes (Be-9's ℓ=1 (n,2n) moment is 69 % of its P0 in ∞-norm; 45 % of the P1 emission source on Be-9 above threshold is (n,2n)'s). SoD— and every DSA/diffusion consumer of it — now demonstrably omits a real term of the outflow correction:Σ_tr = Σ_t − Σ_{s,1} − y·Σ_{2n,1}withy = N2NKernel.multiplicity(the emission's first moment carries the yield like every other emission term).What to do
Decide, then spell once: either include the (n,2n) P1 emission in
transport_xs(the physically complete outflow correction; changesDon every Be/Zr/U-bearing mixture — measure the DSA rate and the diffusion k on the shipped fixtures before/after), or state intransport_xs's docstring and the diffusion theory page that the correction deliberately omits it and why. The #426 plan (.claude/plans/n2n_anisotropy_kept.mdH-m) owes the corpus a.. warning::at its step 3 either way; this issue tracks the CODE decision, which is a different consumer (DSA) from the doc page.Surfaced by the elegance review of #426 step 1 (architectural opportunity 3). Labels: module:diffusion, module:data, type:improvement. Related: #426, #292 (diffusion data seam P1 re-baseline).