Problem
The Lorentz flux-conservation correction in NEO-2-QL/join_ripples.f90 divides every joined propagator column by its column sum without handling an exact-zero column.
At current stacked head 03f5b9dacdbf7c882fac01c37972e8e266575351, a Debug build with bounds checking and -ffpe-trap=invalid reaches:
join_ripples.f90:294
facnorm = 0
amat_p_p(1,2) = 0
amat_p_m(1,2) = 0
SIGFPE: 0/0
Context:
i = 2
npass_l = 24
npass_r = 24
old propagator tags = 12..13
new propagator tags = 13..13
The collision operator and propagators complete before this fault. No earlier NaN, IEEE exception, or failed linear-solve diagnostic appears in the trapped run.
Expected behavior
The flux-conservation correction must define and verify the intended behavior for a zero incoming propagator column. It must not silently create NaNs or divide by zero. Nonzero columns must retain the existing normalization and conservation law.
Acceptance
- Add a behavioral fixture that reaches a joined exact-zero Lorentz column and fails before the repair.
- Define the physical meaning of the zero column: impossible state, removable empty channel, or upstream assembly defect.
- Preserve column-sum-one normalization for every nonzero column.
- Reject an impossible zero column with stage, index, dimensions, tags, and finite-value diagnostics, or handle a physically empty channel with an explicitly justified invariant.
- Run the full native suite and a bounds-checked source-only helical-geometry case.
- Verify no IEEE invalid flag and finite final transport outputs.
Problem
The Lorentz flux-conservation correction in
NEO-2-QL/join_ripples.f90divides every joined propagator column by its column sum without handling an exact-zero column.At current stacked head
03f5b9dacdbf7c882fac01c37972e8e266575351, a Debug build with bounds checking and-ffpe-trap=invalidreaches:Context:
The collision operator and propagators complete before this fault. No earlier NaN, IEEE exception, or failed linear-solve diagnostic appears in the trapped run.
Expected behavior
The flux-conservation correction must define and verify the intended behavior for a zero incoming propagator column. It must not silently create NaNs or divide by zero. Nonzero columns must retain the existing normalization and conservation law.
Acceptance