-
Notifications
You must be signed in to change notification settings - Fork 519
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rare bug for a randomly generated nuclear data file #1699
Comments
Hmm, yeah I'm no physicist but I seem to recall from my studies of neutron interaction theory that elastic scattering is always possible. There have been problems (some fairly recent) in evaluations of negative elastic scattering cross sections, which processing codes typically zero out or set to some very low value. In light of what you're seeing, obviously a very small positive value would cause less problems, but even so I feel like we should probably add some kind of check here. Can you guys share / point to the evaluation that is leading to this issue? |
Here is the full problem, the particular nuclide causing the problem is ni60 |
Yikes, I see the 2 keV wide hole in that cross section. Is the original ENDF file using SLBW resonance formalism? In any event, I think we should ought to fix this "bug". One possible solution that should prevent problems whether or not implicit capture is on would be to check for a non-zero scattering cross section before calling if (p.neutron_xs_[i_nuclide].total > p.neutron_xs_[i_nuclide].absorption) {
scatter(p, i_nuclide);
} where currently there is no conditional around the call to |
Hi both, the perturbed files produced by sandy if helps |
We've (through Ander Gray) come across a bug which results in a failure to sample an inelastic reaction. In this instance, its due to the fact that at the the elastic scattering cross section is 0 at the energy of the particle, the logic flow then breaks down. The original initiating issue is that with implicit capture on, the in physics.cpp
In this instance
neutron_xs_[i_nuclide].absorption == neutron_xs_[i_nuclide].total
and thus thep.wgt_absorb_
is the entire particle weight andp.wgt_
is 0. The check if the particle is dead happens only in the non-implicit capture branch. So my question is, is this truely a bug? I feel like a nuclide physically can't have an elastic scattering cross section of 0 can it? Which points to a nuclear data processesing error upstream.The text was updated successfully, but these errors were encountered: