-
Notifications
You must be signed in to change notification settings - Fork 2
Description
To achieve accurate self-shielding with mathematical probability tables, quasi-pointwise cross sections must be stored in the Draglib. This data is called Autolib ("autoprotection librairie", i.e. self-shielding library) and is made available for the domain of resolved resonances only, to avoid unnecessary data which would slow down the reading of Draglib file.
Since the very beginning of PyNjoy, the Autolib domain is identical for all isotopes and depends only on the energy mesh. It is even the recommended practice in the DRAGR documentation:
Lines 74 to 78 in 40f3296
| ! card 7 autolib energy limits. This data is used with advanced | |
| ! self-shielding models such as the Sanchez-Coste and | |
| ! Ribon extended models. It is highly recommended to use | |
| ! the same data for all resonant isotopes. (one card per | |
| ! material) |
These plots, realized with that script, make it clear that this is not optimal. For isotopes of zirconium, iron, chromium, silver, indium, cadmium and probably many others, the Autolib domain (between dotted lines) can be completely flat despite having several thousand groups (~5000 useless groups), while resonances located at higher energies are not precisely described. The most important resonances, those of uranium, are, however, accurately represented.
It would be more appropriate to choose:
- the lower Autolib limit just below the first resonance, for each isotope and for the highest temperature (to account for Doppler broadening),
- the upper Autolib limit, by locating automatically the limit between resolved and unresolved resonances.
This second limit is found in the MF2, MT151 record of the ENDF file. Here is an example:
4.009000+4 8.913238+1 0 0 1 04025 2151 1
4.009000+4 1.000000+0 0 0 1 04025 2151 2
1.000000-5 3.010000+5 1 2 0 14025 2151 3
0.000000+0 7.040000-1 0 0 3 04025 2151 4
8.913237+1 0.000000+0 0 0 246 414025 2151 5
In that case, 3.010000E+5 eV is the upper limit of the resolved energy range. The reference manual (ENDF-102) should be read carefully for more precise information.
Having a complete ENDF parser is probably excessive for that limited purpose. We could probably limit ourselves to parsing this in Python, from PyNjoy. Care should be taken to cover the multiple possible cases (i.e. having several ranges of resolved resonance, etc). Moreover, the chosen limit must coincide with a limit of the chosen multigroup mesh ; for example, the one immediately below.
PS : on the same principle, the beginning of the continuous range (above unresolved range, if it exists) should also be looked at, to fill ss variable:
PyNjoy2016/python/jeff3p1p1.py
Line 957 in 40f3296
| jeff3p1.ss = (2.76792, 2.47875e4) |
This variable is necessary to properly take into account self-shielding of unresolved resonances through so-called physical probability tables.