Conversion script for homogenized cross sections
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, but support for other codes, including PARCS, will be added later on. The script has been used to produce cross section libraries to ARES initial core  and fuel cycle simulations.
The script reads the homogenized group constant data from the [input].coe output files produced using the Automated burnup sequence, 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:
The input file identifies two parameters:
mode CODE TYPE
|CODE||: is the code sequence for which the data is produced (currently only "ares" is 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. 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:
where is the value at the nominal state, are the polynomial coefficients and:
|is the difference in relative coolant density compared to nominal value|
|is the difference in the square root of fuel temperature compared to nominal value|
|is difference in moderator temperature compared to nominal value|
|is the control rod history (BWR)|
|is the boron concentration (PWR)|
|is the boron history (PWR)|
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 differnt 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.
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|
The syntax for the input block producing cross section library for a single assembly type is:
lib NAME BOR0 TFU0 TMO0 N COE1 COE1 ... COEN
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 LIB ENDFB7 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 1 HIS
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 repu FUE FUEH 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.
- ^ 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.
- ^ 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.
- ^ Mattila, R. "Kiehutusvesireaktorin vaikutusalamalli CROSS." YE-PR-5/02, VTT Technical Research Centre of Finland, 2002 (in Finnish)