When should I turn on the “windowed multipole” option? It can be used to evaluate temperature-dependent cross sections at run-time. Does it mean if windowed multipole is turned on, less memory is used during simulation? Does it make the result more accurate?
I tried to turn on ‘multipole’ in running a depletion of an assembly. Before I turn on ‘multipole’, the result was consistent with deterministic code. But now it seems that the result becomes incorrect. The only thing that I’ve changed is replace settings.temperature={'method': 'interpolation', 'multipole': False} with settings.temperature={'method': 'interpolation', 'multipole': True}.
I’ve tried three types of assembly. All results show that with ‘multipole’, keff decreases more quickly.
@kingyue The windowed multipole method allows resonance region cross sections to be evaluated exactly at any temperature. The alternative is to store cross sections tabulated at several temperatures and then interpolate between them, which does require more memory and is not as accurate. So the advantages of the multipole method are accuracy and memory use. From a performance standpoint, we’ve found that the time to calculate cross sections on-the-fly using the multipole method is on par with looking up tabulated cross sections.
The results that you show here do look concerning – I’ll try this out myself and see if I can reproduce and figure out what’s going on.
@kingyue So far I haven’t been able to reproduce the behavior you’re seeing. Would you be able to share the script your running that demonstrates this behavior?
One other thing to note is that in order to use the windowed multipole method, the data library you’re using needs to have multipole data present. Our official ENDF/B-VII.1 library is currently the only library that has multipole data. However, if you specify 'multipole': True and there is no multipole data present, it will fall back to the tabulated data, so that in itself shouldn’t be responsible for the discrepancy you are seeing.
Thanks for sharing your script @kingyue. So the issue is that tallying heating or heating-local (as is done when normalization_mode="energy-deposition") doesn’t work with windowed multipole data yet. Unfortunately we don’t have a check for this in the code right now so it slips through. I’ve created an issue so we can track this and eventually resolve it. In the meantime, your options are to either 1) not use multipole data or 2) use a different normalization mode that doesn’t rely on heating tallies directly.
I had the same issue using ENDFB71 WMP and using the normalization_mode =“energy-deposition” and somehow I have never come across this discussion (which could have saved me some time). Have a look at the attached graphs showing reaction rates and kinf for a reflected pincell with U235 gone in the first cycle (Version | 0.14.1-dev).