Skip to content

Real-geometry deterministic transport (1D spherical Sn) for MGXS weighting - #116

Open
jon-proximafusion wants to merge 4 commits into
developfrom
convert-to-multigroup-realgeom-transport
Open

Real-geometry deterministic transport (1D spherical Sn) for MGXS weighting#116
jon-proximafusion wants to merge 4 commits into
developfrom
convert-to-multigroup-realgeom-transport

Conversation

@jon-proximafusion

Copy link
Copy Markdown
Collaborator

Real-geometry deterministic transport: solve the flux in the ACTUAL reference geometry (concentric shells + central source) via 1D spherical Sn, then collapse each material against its own shell's local flux. No Monte Carlo.

Status: spherical Sn solver validated vs analytic point-source-in-absorber (0.9% mean). Open: diamond-difference negativity on the resonant problem -> adding a positivity-preserving curvilinear scheme (step characteristic). See FINDING_realgeom.md.

Supersedes the 1D-slab prototype (#114) for the near-source shells.

🤖 Generated with Claude Code

shimwell added 4 commits June 27, 2026 21:50
Supersedes the 1D-slab prototype (#114): solve the deterministic transport in the
ACTUAL reference geometry (concentric spheres, central source) -> 1D spherical Sn,
so the near-source shells get the correct (harder) flux instead of the slab's
over-softened backscatter. Each material collapsed against its own shell's local
flux. No Monte Carlo. Goal: beat slab everywhere incl. the near-source metals.
…ivity open)

sphere_sn.py: weighted-diamond curvilinear Sn, central point source, VALIDATED vs
analytic point-source-in-absorber (0.9% mean). det_realgeom.py: uses it for the real
concentric-sphere geometry. OPEN: diamond negativity on the resonant problem (steel
7.37; naive clamp breaks conservation) -> needs positivity-preserving curvilinear scheme
(step characteristic). Deep materials already won by the slab transport (#114); spherical
only needed for near-source shells where NR is already excellent. See FINDING_realgeom.md.
alpha_{m+1/2}>=0 (tent) => step (upwind space+angle) is unconditionally positive.
scheme='step' (default) in sphere_sn.py; validated (1.2% vs analytic, positive flux).
Fixes the diamond negativity on the resonant stack: tungsten 2.13 (beats slab 2.56),
Fe-56 1.08 (beats slab 1.39); but step's 1st-order diffusivity hurts steel/CuCrZr.
Next: diamond + negative-flux fixup for accuracy + positivity. See FINDING_realgeom.md.
Set-to-zero & re-solve; validated best on smooth (0.74% vs diamond 0.89, step 1.17),
positive flux. BUT on the resonant stack the set-to-zero clamp accumulates more error
than step (Fe-56 2.06 vs step 1.08) -- many resonance negativities. Conclusion: no
spherical scheme beats the robust 1D-slab transport (#114, Fe-56 0.60) on deep resonant
materials; spherical only helps near-source. Recommend the #113+#114+NR-near-source
hybrid. See FINDING_realgeom.md.
@jon-proximafusion

Copy link
Copy Markdown
Collaborator Author

diamond + negative-flux fixup added — but step is better on resonances; spherical doesn't beat the slab transport

Implemented scheme='fixup' (diamond + set-to-zero-&-re-solve negative-flux fixup). The curvature coefficients α_{m+1/2} ≥ 0 (tent) guarantee it terminates positive.

Smooth validation (point source in absorber): fixup 0.74% mean (best — diamond 0.89, step 1.17), positive flux. So as a general solver it's accurate + positive.

But on the resonant stack it's worse than step (Fe-56 total 2.06 vs step 1.08): at the many resonance negativities, the set-to-zero clamp accumulates more error than step's consistent upwinding.

Per-material, CCFE-709 (total %err vs material_wise):

material step fixup slab-transport #114 slab(MC)
tungsten 2.13 2.47 (5.51 slab-geom) 2.56
Fe-56 1.08 2.06 0.60 1.39
steel 2.44 2.53 0.57 (NR) 0.48

Conclusion: a correct-geometry spherical Sₙ does not outperform the simpler, robust 1D-slab transport (#114) on the deep resonant materials (Fe-56 0.60 vs 1.08) — the central source + resonance negativity make spherical numerically harder, and the positive schemes (step/fixup) are too diffusive/clamp-lossy. Its only clear gain is the near-source shell (tungsten 2.13 vs slab-method 2.56), where NR is already excellent.

Recommended path: #113 (NR, geometry-free default) + #114 (1D-slab transport + thermal-NR fallback) for the deep cross-talk materials (Fe-56 total 0.60 / scatter 0.69, both beat slab) + NR for near-source. A uniform high-accuracy positive spherical solver needs more advanced numerics (characteristic/CN) — diminishing returns vs this hybrid.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants