Automated burnup sequence
Homogenized group constants form the input data for core-level fuel cycle and transient simulator calculations. The data is parametrized according to discrete state-points, which are defined by the local thermal hydraulic conditions together with reactivity control. The process of group constant generation must cover the full range of operating states within the reactor core, which often requires repeating the assembly-level calculation thousands of times. Since the local operating conditions inside the fuel assembly also affect how the materials are depleted, the state-points by which the data is parametrized are not completely independent. The calculations are instead divided into:
- Branch variations, taking into account momentary changes in the operating conditions, such as fuel temperature, moderator density and temperature, boron concentration and insertion of control rods
- History variations, taking into account conditions that persist for an extended period of time, such as moderator temperature and density, boron concentration and positioning of control rods
In practice, the procedure involves burnup calculations covering all assembly types and history variations. Branch variations are accounted for by performing restart calculations for each burnup point, varying the local operating conditions accordingly.
Serpent provides an automated burnup sequence, capable of performing branch variations for a single history run. The procedure works by first running a burnup calculation, after which a number of restarts are performed for selected burnup points. For each restart the code invokes a number of user-defined variations in the input, corresponding to the branches to different state-points. The branches are defined using the branch card, and the combination of variations by the coefficient matrix. The group constant data is collected into a separate output file easily read by post-processing scripts. The input and output formats are described below with examples.
For the moment the automated burnup sequence is limited to performing branch variations, and variations in histories must be handled by writing separate input files.
Each branch card defines one or several variations to the basic input. The currently supported variations can be used for:
- Replacing one material with another
- Replacing of one universe with another
- Changing the density and temperature of a material
- Applying a universe transformation
The branches are identified by their name in the coefficient matrix.
The typical use for the material replacement variation is to change the boron concentration in the coolant. Assume, for example, that the input defines three coolant compositions:
- cool_0B without boron
- cool_750B with 750 ppm boron
- cool_1500B with 1500 ppm boron
mat cool_0B -0.77010 moder lwtr 1001 1001.06c 3.33330E-01 8016.06c 6.66670E-01 mat cool_500B -0.77010 moder lwtr 1001 1001.06c 3.33076E-01 8016.06c 6.66161E-01 5010.06c 1.51847E-04 5011.06c 6.11204E-04 mat cool_1500B -0.77010 moder lwtr 1001 ... therm lwtr lwj3.11t
If the material used to fill the coolant channel in the original geometry is cool_500B, then this is the material used throughout the burnup calculation. Once the depletion history is completed, the code starts performing the restarts and invoking the branches. The boron concentration can be varied to 0 and 1000 ppm with branches:
branch Blo cool_500B cool_0B branch Bhi cool_500B cool_1000B
Names Blo and Bhi are used in the coefficient matrix to invoke these branches.