Sensitivity calculations
Serpent relies on the collision history based first order GPT equivalent implementation[1] to calculate sensitivities of various responses to various perturbations. As a simple example, the sensitivity of the effective multiplication factor to the different nuclear cross sections can be calculated.
Implementation
Input
Adding a response
Basic responses
Basic responses can be set up with the syntax
sens resp NAME FLAG
Where the different response names and flags are as follows
NAME | explanation of NAME | FLAG | explanation of FLAG |
keff | sensitivity of effective multiplication factor to perturbation | 0/1 | OFF/ON |
beff | sensitivity of effective delayed neutron fraction to perturbation | 0/1 | OFF/ON |
leff | sensitivity of effective prompt generation time to perturbation | 0/1 | OFF/ON |
Omitting (or forgetting) the flag from the definition, will turn the response on by default.
Reaction rate ratios
Sensitivities of reaction rate ratios to perturbations can be set up to be calculated with
sens resp detratio NAME DET1 DET2
Where the paramters are:
NAME | : the name of the response. Will be used in output. |
DET1 | : Name of the numerator detector, i.e. the one whose reaction rate is being divided. |
DET2 | : Name of the denominator detector, i.e. the one whose reaction rate is the dividing value. |
The two detectors have to be set up separately in normal Serpent fashion.
Notes:
- Currently, each detector can have only one bin.
- Currently, only the indirect effect of the perturbation is calculated and the direct effect must be calculated separately and added to the result.
Adding a perturbation
sens pert NAME FLAG
Where the different perturbation names and flags are as follows
NAME | explanation of NAME | FLAG | explanation of FLAG |
xs | perturbation of basic cross sections | 0/1 | OFF/ON |
chi | perturbation of fission spectrum | 0/1 | OFF/ON |
nubar | perturbation of fission nubar | 0/1 | OFF/ON |
eleg | perturbation of Legendre moments of elastic scattering angular distribution |
0/1/2/3/4/5/6/7 | Number of Legendre moments to perturb. |
Omitting (or forgetting) the flag from the definition will turn the perturbation on by default. The default number of Legendre moments to include is 3.
Choosing nuclides to perturb
The perturbed nuclides can be specified by giving a list of the ZAI-numbers to include
sens pert zailist ZAI1 ZAI2 ...
for example
sens pert zailist 922350 922380
for perturbations affecting 235U and 238U. By giving the control words total and/or sum in the list of ZAI-numbers, the total sensitivity over all ZAIs present in the calculation and the sum sensitivity of the listed ZAIs will be calculated, respectively.
All nuclides present in the calculation can be included with
sens pert zailist all
this will automatically include the calculation of the total sensitivity.
Choosing materials to perturb
The materials, where the perturbations are applied can similarly be specified by giving a list of the material names
sens pert matlist MAT1 MAT2 ...
for example
sens pert matlist fuel coolant
for perturbations affecting interactions in materials fuel and coolant. By giving the control words total and/or sum in the list of material names, the total sensitivity over all materials present in the calculation and the sum sensitivity of the listed materials will be calculated, respectively.
All materials present in the calculation can be included with
sens pert matlist all
this will automatically include the calculation of the total sensitivity.
Additional options
The options for sensitivity calculations can be set using the
sens opt ...
syntax.
Energy grid for scoring
The energy grid used for scoring the sensitivities can be set using
sens opt egrid ENAME
where ENAME is a name of an energy grid definition.
Number of latent generations
The number of latent generations used for k-effective sensitivity calculations can be set with
sens opt latgen NGEN
where NGEN is the number of generations to use. The number of summation generations for reaction rate ratios and bilinear-ratios will be NGEN+1
Event bank size
The default size of the allocated event bank can be too small for some sensitivity calculations resulting in the following error:
Fatal error in function EventFromBank: Event bank is empty Simulation aborted.
The event bank size can be set using
set nbuf NBUF EBANK
where NBUF is the neutron buffer size (default is 5) and EBANK is the event bank size (default is 100).
Output
The output of the sensitivity calculations is written into a MATLAB/OCTAVE readable file [input]_sens.m
General parameters
Parameter | Size | Description |
---|---|---|
SENS_N_MAT | 1 | Number of perturbed materials. |
SENS_N_ZAI | 1 | Number of perturbed nuclides (ZAIs). |
SENS_N_PERT | 1 | Number of different perturbation types (cross sections, fission spectra etc.). |
SENS_N_ENE | 1 | Number of energy bins used for tallying the sensitivities. |
SENS_MAT_LIST | SENS_N_MAT strings | Array of names for the perturbed materials. |
SENS_ZAI_LIST | SENS_N_ZAI | Array of ZAI numbers for the perturbed nuclides. |
SENS_PERT_LIST | SENS_N_PERT strings | Array of names for the perturbation types. |
SENS_E | SENS_N_ENE + 1 | Grid points for the energy grid used for tallying the sensitivities. |
SENS_LETHARGY_WIDTHS | SENS_N_ENE | Lethargy widths of the energy bins. Lethargy at the maximum energy bin boundary is 0. |
Calculated sensitivities
The calculated sensitivities are printed out both in an energy dependent format (integrated to the energy grid defined by sens opt egrid) and an energy integrated format (integrated over all energies).
The standard sensitivity responses include:
Parameter | Size | Description |
---|---|---|
ADJ_PERT_KEFF_SENS | SENS_N_MAT SENS_N_ZAI SENS_N_PERT SENS_N_ENE 2 | The energy dependent sensitivity of the multiplication factor and the associated statistical error. |
ADJ_PERT_KEFF_SENS_E_INT | SENS_N_MAT SENS_N_ZAI SENS_N_PERT 2 | The energy integrated sensitivity of the multiplication factor and the associated statistical error. |
ADJ_PERT_BEFF_SENS | SENS_N_MAT SENS_N_ZAI SENS_N_PERT SENS_N_ENE 2 | The energy dependent sensitivity of the delayed neutron fraction and the associated statistical error. |
ADJ_PERT_BEFF_SENS_E_INT | SENS_N_MAT SENS_N_ZAI SENS_N_PERT 2 | The energy integrated sensitivity of the delayed neutron fraction and the associated statistical error. |
ADJ_PERT_LEFF_SENS | SENS_N_MAT SENS_N_ZAI SENS_N_PERT SENS_N_ENE 2 | The energy dependent sensitivity of the prompt neutron generation time and the associated statistical error. |
ADJ_PERT_LEFF_SENS_E_INT | SENS_N_MAT SENS_N_ZAI SENS_N_PERT 2 | The energy integrated sensitivity of the prompt neutron generation time and the associated statistical error. |
ADJ_PERT_VOID_SENS | SENS_N_MAT SENS_N_ZAI SENS_N_PERT SENS_N_ENE 2 | The energy dependent sensitivity of the void reactivity coefficient and the associated statistical error. |
ADJ_PERT_VOID_SENS_E_INT | SENS_N_MAT SENS_N_ZAI SENS_N_PERT 2 | The energy integrated sensitivity of the void reactivity coefficient and the associated statistical error. |
The reaction rate sensitivities defined using sens resp detratio are output as:
Parameter | Size | Description |
---|---|---|
ADJ_PERT_NAME_SENS | SENS_N_MAT SENS_N_ZAI SENS_N_PERT SENS_N_ENE 2 | The energy dependent sensitivity of the reaction rate ratio NAME and the associated statistical error. |
ADJ_PERT_NAME_SENS_E_INT | SENS_N_MAT SENS_N_ZAI SENS_N_PERT 2 | The energy integrated sensitivity of the reaction rate ratio NAME and the associated statistical error. |
Helpful indices
The indices for different materials, ZAIs and perturbations are also included as separate variables of the following format
Parameter | Size | Description |
---|---|---|
iSENS_MAT_NAME | 1 | Index corresponding to material NAME. |
iSENS_ZAI_NUMBER | 1 | Index corresponding to the nuclide with ZAI NUMBER. |
iSENS_PERT_NAME | 1 | Index corresponding to the perturbation NAME. |
These indices can be used to refer to the different materials, nuclides and perturbations in data processing without the need to manually figure out the indices. For example,
ADJ_PERT_KEFF_SENS(iSENS_MAT_fuel, iSENS_ZAI_922380, iSENS_PERT_CAPT_XS, :, 1)
will refer to the energy dependent sensitivity of the multiplication factor to the perturbation of the capture cross section of uranium 238 in the material fuel.
It should be noted that the indices for certain materials, ZAIs and perturbations only exist if they have been included in the sensitivity calculation using sens pert.
Examples
References
- ^ Aufiero, M. et al. "A collision history-based approach to sensitivity/perturbation calculations in the continuous energy Monte Carlo code SERPENT", Ann. Nucl. Energy, 152 (2015) 245-258. DOI:10.1016/j.anucene.2015.05.008