Conversion script for homogenized cross sections

From Serpent Wiki
Jump to: navigation, search

In order to be used with deterministic core simulators, the group constant output produced by Serpent has to be converted into appropriate format. Work on an automated conversion script has been started, and the latest version of the SXSFit scirpt is available on-line. Currently only the Serpent-ARES code sequence is fully supported. The script has been used to produce cross section libraries to ARES initial core [1] and fuel cycle simulations.[2]

The script reads the homogenized group constant data from the [input].coe output files produced using the Automated burnup sequence with coefficient matrixes, and takes advantage of a number of predetermined variables to pass information into the output. The format conversion depends on the code sequence, as described below.

The SXSFit script is run from the command line:

sxsfit INPUT

The input file identifies two parameters:



CODE  : is the code sequence for which the data is produced (currently only "ares" is fully supported)
RUN  : is the type of data produced ("base", "hzp", "hfp" or "dep")

The data types are:

base  : only the nominal branches are run, produced cross section library has no dependence on state variables
hzp  : only branches required to perform hot zero-power calculations are run, cross sections depend on boron concentration and control rod insertion, but not on state variables
hfp  : all branches required to perform hot full-power calculations are run, dependence on all parameters but without burnup
dep  : all branches and histories required to perform fuel cycle simulations are run, dependence on all parameters and burnup

The second supported input parameter is lib, and the format depends on the code sequence as described below.


The cross section model in ARES is based on the combination of tabular interpolation and polynomial expansions.[3] Tabulated data is used for burnup points, control rod insertion branches and moderator temperature (PWR) or void (BWR) histories. The remaining variations are accounted for by polynomial interpolation of the form:

\Sigma =  \Sigma_0   + a\rho^2+b\rho   
  + cT_\mathrm{f}^2+dT_\mathrm{f}  
  + eT_\mathrm{m}^2+fT_\mathrm{m} 
  + g\rho T_\mathrm{f} 
  + h\rho T_\mathrm{m}^2+i\rho T_\mathrm{m} 
  + jT_\mathrm{f}T_\mathrm{m} 
  + kH_\mathrm{cr} 
  + lB^2+mB 
  + nH_\mathrm{bo}^2+oH_\mathrm{bo} 
  + pB^2T_\mathrm{m}^2 + qB^2T_\mathrm{m} + vBT_\mathrm{m}^2+wBT_\mathrm{m}   
  + rB^2T_\mathrm{f} +sBT_\mathrm{f} 
  + tB^2\rho+uB\rho

where \Sigma_0 is the value at the nominal state, a\dots w are the polynomial coefficients and:

\rho is the difference in relative coolant density compared to nominal value
T_\mathrm{f} is the difference in the square root of fuel temperature compared to nominal value
T_\mathrm{m} is difference in moderator temperature compared to nominal value
H_\mathrm{cr} is the control rod history (BWR)
B is the boron concentration (PWR)
H_\mathrm{bo} is the boron history (PWR)

The SXSFit script calculates the coefficients by fitting the polynomial into 24 points corresponding to different state point combinations.

Changes in the density of coolant in liquid state is included in the coolant temperature parameter. Separate parametrization for coolant density is to account for the effects of sub-cooled boiling. In practice this means running additional branches with small but non-zero void fraction.

The first 5 parameter variations are handled as branch variations. The procedure is repeated for different Moderator temperature (PWR) or coolant void (BWR) histories. Boron histories are accounted for by separate burnup calculations without branches. All branch calculations are repeated for different control rod types.

Serpent variables

The state point information is passed into the conversions script using the following variables:

VHI  : moderator temperature (PWR) or coolant void history (BWR)
BHI  : boron history
BOR  : boron concentration
CR  : insertion of contro rods (0 = no rods, n = rod type n inserted)
TFU  : fuel temperature
VOI  : coolant void fraction
TMO  : moderator temperature

SXSFit input

The syntax for the input block producing cross section library for a single assembly type is:

lib NAME 

where the input values are:

NAME  : name of the produced library
BOR0  : nominal boron concentration
TFU0  : nominal fuel temperature
TMO0  : nominal moderator temperature
N  : number of Serpent coe-files
COE1 ... COEN  : names of the coe-files


The complete input example demonstrating the use of the automated burnup sequence defines a single history calculation with a number branches. The history variables are defined in a separate branch:

% --- History variables:

branch HIS
var BHI 500
var VHI 550

which is included on every restart in the coefficient matrix:

% --- Coefficient matrix: (full set of variations: 3x3x3x2)

coef 11 0 0.1 1 3 5 10 15 20 30 40 50

3 nom Blo Bhi
3 nom Clo Chi
3 nom Flo Fhi
2 nom CR

This means that these variables are included in every output block of the coe-file. Variable LIB is for additional information, and not identified or used by SXSFit. The remaining variables are set together with the variations defined in the branch cards, for example:

% --- Branch to high fuel temperature:

branch Fhi
stp fuel -10.1348 1200
stp zirc4 -6.5020 628
var TFU 1200 

defines a branch to high fuel temperature and sets the value of FUE accordingly. It should be noted that the interpolation polynomial does not include all cross terms, so the 3x3x3x2 matrix has defines some unnecessary runs. The number of branches can be reduced to minimum by applying multiple variations per branch.

If similar history calculations were defined for all moderator temperature and boron histories (3x3 cases), the input for SXSFit could look like:

mode ares dep

lib ASM1.cs
0.0 900.0 575.0 9

The cross section data for producing library file ASM1.cs (for a single assembly type) is collected from 9 Serpent runs: Y00_H01.coe ... Y00_H09.coe.


  1. ^ Leppänen, J., Mattila, R., and Pusa, M. "Validation of the Serpent-ARES code sequence using the MIT BEAVRS benchmark - Initial core at HZP conditions." Ann. Nucl. Energy, 69 (2014) 212-225.
  2. ^ Leppänen, J. and Mattila, R. "Validation of the Serpent-ARES code sequence using the MIT BEAVRS benchmark – HFP conditions and fuel cycle 1 simulations." Ann. Nucl. Energy, 96 (2016) 324-331.
  3. ^ Mattila, R. "Kiehutusvesireaktorin vaikutusalamalli CROSS." YE-PR-5/02, VTT Technical Research Centre of Finland, 2002 (in Finnish)