Skip to main content

Module slbw

Module slbw 

Source
Expand description

Single-Level Breit-Wigner (SLBW) cross-section calculation.

SLBW is the simplest resonance formalism. It treats each resonance independently (no interference between resonances). It is useful as:

  • A validation check against the more complex Reich-Moore calculation
  • A quick approximation for isolated resonances
  • An educational/debugging tool

For isolated, well-separated resonances, SLBW and Reich-Moore should give nearly identical results.

This module also provides true MLBW (Multi-Level Breit-Wigner) via mlbw_evaluate_with_cached_jgroups, which includes resonance-resonance interference in the elastic channel (see SAMMY mlb/mmlb3.f90). MLBW is dispatched through the reich_moore crate’s unified precompute+evaluate pipeline (public entry points cross_sections_at_energy and cross_sections_on_grid) like every other formalism.

§SAMMY Reference

  • mlb/mmlb3.f90 Elastc_Mlb subroutine (line 56, SLBW branch) — the elastic cross-section formula this module mirrors.
  • mlb/mmlb4.f90 Abpart_Mlb subroutine — populates the Aaaone/Aaatwo/Aaathr accumulators consumed by Elastc_Mlb.
  • xxx/mxxx9.f90 lines 68-71 (Cs2sn2) — confirms SAMMY’s Cs/Si arrays hold cos(2φ)/sin(2φ), not cos(φ)/sin(φ).
  • SAMMY manual Section II.B.3 (Breit-Wigner approximations).

§Formulas

For each resonance at energy E_r with total J, write Δ = E − E_r and D = Δ² + (Γ_tot/2)². Then:

σ_capture(E) = g_J · π/k² · Γ_n(E)·Γ_γ / D

σ_elastic(E) = g_J · π/k² · [ 4·sin²φ (potential) + Γ_n(E)² / D (resonance peak) + 2·Γ_n(E)·Δ·sin(2φ) / D (interference, Δ part) − 2·Γ_n(E)·Γ_tot·sin²φ / D (interference, Γ part) ]

where Γ_n(E) = Γ_n(E_r) × P_l(E)/P_l(E_r) per ENDF-6 §D.1.1 eq D.7 (ENDF-102 Formats Manual, IAEA public PDF page 357), and Γ_tot = Γ_n(E) + Γ_γ + Γ_f.

The penetrability ratio already carries the full energy dependence of the neutron width. For s-wave (l=0), P_0(ρ) = ρ ∝ √E, so the ratio P_0(E)/P_0(E_r) = √(E/E_r) supplies the entire √E low-energy scaling; multiplying by a separate √(E/E_r) factor double-counts the wave-number dependence and yields Γ_n ∝ E rather than the physically correct Γ_n ∝ √E (1/v capture). The reference implementations all use the penetrability-ratio-only form:

  • NJOY/RECONR src/reconr.f90 csslbw/csmlbw/csmlbw2: gne = gn*pe*rper (with rper = 1/per).
  • SAMMY mlb/mmlb4.f90 Abpart_Mlb (lines 88-100) accumulates Γ_n(E) = 2·P_l(E)·γ_n² from reduced amplitudes γ_n obtained via γ_n² = GN/(2·P_l(E_r)) (SAMMY new/mnew3.f90:307-339 Betset), which is algebraically identical to ENDF D.7 after substitution.

The sign of the Γ_tot·sin²φ interference term is negative. This is equivalent to SAMMY’s (1 − cos2φ)·A + sin2φ·B + Aaathr·D form at mmlb3.f90:56 after substituting A = 2 − Γ_n·Γ_tot/Den, and to σ_el = g_J · π/k² · |1 − U_nn|² with U_nn = e^{−2iφ} · [1 + iΓ_n / (E_r − E − iΓ_tot/2)].

Issue #549: prior to this commit the term had the wrong sign (+ instead of ). The bias was numerically invisible in the existing samtry validation suite because all SLBW test cases are at ρ ≪ 1 where sin²φ ≈ ρ². The high-ρ regression test lives at crates/nereids-physics/tests/slbw_elastic_oracle.rs.

Functions§

slbw_cross_sections
Compute SLBW cross-sections at a single energy.
slbw_cross_sections_for_range
Compute SLBW cross-sections for a single resolved resonance range.