Kraken tutorial 2024
Contents
General description
Inputs
Ants
Ants main input
Ants input can be split into multiple files using the include cards. In this case, our main input file contains general definitions of the problem, the radial and axial nodalization (using the core card) and some simulation settings in the iteration block. The settings in the iteration block can be largely changed during the calculation using the Cerberus Python API, while the basic nodalization and general definitions will be constant during the simulation.
Ants.inp
title "LDR-Lite" global geometry square neutronics diffusion library type polynomial path "../inputs/xs/narrow_2g.xs" core width_xy 21.5036 rows 9 columns 9 axial_nodes 22 axial_heights 15.000000 ! Support plate 1.748000 ! Bottom zirconium plugs 5.715000 ! Grid 1 8 * 5.535625 ! Fuel 5.715000 ! Grid 2 8 * 5.535625 ! Fuel 4.007000 ! Top plenum 14.712000 ! Structures above active core division_x 2 division_y 2 radial_boundary_coeff 0.031477 ! Extrapolation length axial_boundary_coeff 0.031477 ! Extrapolation length include "../inputs/ants_includes/fuel_assemblies.inc" include "../inputs/ants_includes/radial_reflector.inc" include "../inputs/ants_includes/control_rods.inc" include "../inputs/ants_includes/core.inc" iteration power 1.0 max_outer 10000 control_variable keff xenon_state zero samarium_state zero
Core loading
The fuel load card is used to define the loading of the core: Which assembly type or radial reflector type is in place in each loading position. The identifiers here should correspond to definitions we will make for fuel assemblies and radial reflector.
The fuel rotation card can be used to use the same asymmetric material in multiple places of the core in a way that it is rotated to match its new position. In this case, each radial reflector position consists of four different quarters with the materials R01 to R05 having been homogenized in the East-North-East octant of the core. Instead of specifying 32 separate radial reflector materials, the first 5 radial reflector positions are reused, rotating and or flipping them to the different octants of the core. The fuel assemblies (A1, A2 and A3) do not need to be rotated so they are kept in the default orientation (E).
Control rod insertion in Ants can be thought to happen through replacing the local node material of a fuel type with the local node material of a controlrod type. The controlrod position card is used to indicate which controlrod type is used in which lattice position. As the control rod insertion will replace the non-rodded fuel material in the nodes with a rodded fuel material in the nodes, different control rod types are needed if:
- The type of assembly in the loading position is different.
- The type of control rod to be inserted is different.
In our case, we will have three assembly types (A1, A2, A3) and two control rod types (R, S), which means that six potentially different control rod types could be created (R rod in each 3 assembly types, S rod in each 3 assembly types). Due to the fact that the assembly type A1 (central assembly) always contains a shutdown rod, we only have five control rod types to define and load into our core.
core.inc
fuel load 0 0 R03 R02 R01 R02 R03 0 0 0 R05 R04 A2 A3 A2 R04 R05 0 R03 R04 A3 A2 A2 A2 A3 R04 R03 R02 A2 A2 A3 A2 A3 A2 A2 R02 R01 A3 A2 A2 A1 A2 A2 A3 R01 R02 A2 A2 A3 A2 A3 A2 A2 R02 R03 R04 A3 A2 A2 A2 A3 R04 R03 0 R05 R04 A2 A3 A2 R04 R05 0 0 0 R03 R02 R01 R02 R03 0 0 ! Rotation: Which way does the original assembly's east face point to when rotated ! dash - indicates that N and S are flipped/reflected first and then ! E face is rotated to the user given direction fuel rotation 0 0 N N -N -N -N 0 0 0 N N E E E -N E 0 -W -W E E E E E E E -W E E E E E E E E -W E E E E E E E E W E E E E E E E -E W W E E E E E -E -E 0 W -S E E E S -E 0 0 0 -S -S -S S S 0 0 ! Indicates which assemblies contain which types of control rodded nodes ! Control rod type in Ants is a combination of: ! 1) The base fuel assembly type present in the node ! 2) The control rod type being inserted in the node ! Here we have two different control rod types R/S and base fuel types are ! the same as in fuel load card controlrod position 0 0 0 0 0 0 0 0 0 0 0 0 SA2 SA3 SA2 0 0 0 0 0 SA3 RA2 RA2 RA2 SA3 0 0 0 SA2 RA2 RA3 RA2 RA3 RA2 SA2 0 0 SA3 RA2 RA2 SA1 RA2 RA2 SA3 0 0 SA2 RA2 RA3 RA2 RA3 RA2 SA2 0 0 0 SA3 RA2 RA2 RA2 SA3 0 0 0 0 0 SA2 SA3 SA2 R04 0 0 0 0 0 0 0 0 0 0 0 ! Indicates which positions are linked to which control identifier ! These identifiers can then be used to move specific control rods controlrod group load 0 0 0 0 0 0 0 0 0 0 0 0 S7.2 S4.2 S7.1 0 0 0 0 0 S8.2 R6.2 R3.2 R6.1 S8.1 0 0 0 S7.3 R6.3 R5.2 R2.2 R5.1 R6.8 S7.8 0 0 S4.3 R3.3 R2.3 S1.1 R2.1 R3.1 S4.1 0 0 S7.4 R6.4 R5.3 R2.4 R5.4 R6.7 S7.7 0 0 0 S8.3 R6.5 R3.4 R6.6 S8.4 0 0 0 0 0 S7.5 S4.4 S7.6 0 0 0 0 0 0 0 0 0 0 0 0
Fuel assembly definitions
The group constant materials occupying the different horizontal quarters and axial layers of fuel assemblies are defined here using the fuel type input cards. First each assembly type (A1, A2, A3) are defined to consist radially of four identical subnodes (subs / quarters). Then the axial structure of each of these sub-types is defined using the fuel type input card, from the bottom to the top node.
The node content needs to match a material found in the group constant library, such as BRz1 which describes one of the bottom reflector nodes.
Note that the dash in front of the material name -BRz1 defines this node as a reflector node.
Spacer grids, control rods and presence of instrumentation in the assembly can be treated in the GenPoly group constant library as sub-materials (SelectMaterial) of the main fuel type (HomogenizedMaterial) and in the Ants input, denoting fuel1/SPA_2/CR_0 corresponds to the fuel type FUEL1 in the group constant library, using spacer type 2 and control rod type 0.
fuel1 is equal to fuel1/SPA_0/CR_0/DET_0.
fuel_assemblies.inc
! ! Fuel assembly types (Need to give material in each axial node) ! Material identifier given for node needs to correspond to one in the .xs library ! ! Type A1 fuel type "A1" nodes -BRz1 ! Bottom reflector -BRz2 ! Bottom reflector fuel1/SPA_2/CR_0 ! Grid 1 8 * fuel1/SPA_0/CR_0 ! fuel fuel1/SPA_2/CR_0 ! Grid 2 8 * fuel1/SPA_0/CR_0 ! fuel -TRz1 ! Top reflector -TRz2 ! Top reflector ! Type A2 fuel type "A2" nodes -BRz1 ! Bottom reflector -BRz2 ! Bottom reflector fuel2/SPA_2/CR_0 ! Grid 1 8 * fuel2/SPA_0/CR_0 ! fuel fuel2/SPA_2/CR_0 ! Grid 2 8 * fuel2/SPA_0/CR_0 ! fuel -TRz1 ! Top reflector -TRz2 ! Top reflector ! Type A3 fuel type "A3" nodes -BRz1 ! Bottom reflector -BRz2 ! Bottom reflector fuel3/SPA_2/CR_0 ! Grid 1 8 * fuel3/SPA_0/CR_0 ! fuel fuel3/SPA_2/CR_0 ! Grid 2 8 * fuel3/SPA_0/CR_0 ! fuel -TRz1 ! Top reflector -TRz2 ! Top reflector
Control rod structure
We need to define the safety type (S) and regulating type (R) control rods so that they can be inserted into the core as needed. When we define them using the controlrod type card we need to specify the number of parts they consist of (two parts in our case INC/BOC), the length of each part (depending on R or S type), and which material the local nodes will be filled if a control rod part is present there.
As we want to have control rods inserted to e.g. assembly type A2 replace the local fuel with rodded fuel corresponding to the A2 assembly type (fuel2), we will need to specify separate control rod types for assembly type A2 and A3 for example. (Since we want to have control rods inserting to A3 assembly type to insert rodded fuel3 instead of rodded fuel2.)
control_rods.inc
! ! Fuel assembly types (Need to give material in each axial node) ! Material identifier given for node needs to correspond to one in the .xs library ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Rod type S inserted to fuel type A1 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! controlrod type "SA1" parts 2 lengths 5 95 nodes ! Nodes of the inconel part -BRz1 -BRz2 fuel1/SPA_2/CR_1 8 * fuel1/SPA_0/CR_1 fuel1/SPA_2/CR_1 8 * fuel1/SPA_0/CR_1 -TRz1 -TRz2 ! Nodes of the boron carbide part -BRz1 -BRz2 fuel1/SPA_2/CR_2 8 * fuel1/SPA_0/CR_2 fuel1/SPA_2/CR_2 8 * fuel1/SPA_0/CR_2 -TRz1 -TRz2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Rod type R inserted to fuel type A2 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! controlrod type "RA2" parts 2 lengths 50 50 nodes ! Nodes of the inconel part -BRz1 -BRz2 fuel2/SPA_2/CR_1 8 * fuel2/SPA_0/CR_1 fuel2/SPA_2/CR_1 8 * fuel2/SPA_0/CR_1 -TRz1 -TRz2 ! Nodes of the boron carbide part -BRz1 -BRz2 fuel2/SPA_2/CR_2 8 * fuel2/SPA_0/CR_2 fuel2/SPA_2/CR_2 8 * fuel2/SPA_0/CR_2 -TRz1 -TRz2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Rod type R inserted to fuel type A3 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! controlrod type "RA3" parts 2 lengths 50 50 nodes ! Nodes of the inconel part -BRz1 -BRz2 fuel3/SPA_2/CR_1 8 * fuel3/SPA_0/CR_1 fuel3/SPA_2/CR_1 8 * fuel3/SPA_0/CR_1 -TRz1 -TRz2 ! Nodes of the boron carbide part -BRz1 -BRz2 fuel3/SPA_2/CR_2 8 * fuel3/SPA_0/CR_2 fuel3/SPA_2/CR_2 8 * fuel3/SPA_0/CR_2 -TRz1 -TRz2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Rod type S inserted to fuel type A2 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! controlrod type "SA2" parts 2 lengths 5 95 nodes ! Nodes of the inconel part -BRz1 -BRz2 fuel2/SPA_2/CR_1 8 * fuel2/SPA_0/CR_1 fuel2/SPA_2/CR_1 8 * fuel2/SPA_0/CR_1 -TRz1 -TRz2 ! Nodes of the boron carbide part -BRz1 -BRz2 fuel2/SPA_2/CR_2 8 * fuel2/SPA_0/CR_2 fuel2/SPA_2/CR_2 8 * fuel2/SPA_0/CR_2 -TRz1 -TRz2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Rod type S inserted to fuel type A3 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! controlrod type "SA3" parts 2 lengths 5 95 nodes ! Nodes of the inconel part -BRz1 -BRz2 fuel3/SPA_2/CR_1 8 * fuel3/SPA_0/CR_1 fuel3/SPA_2/CR_1 8 * fuel3/SPA_0/CR_1 -TRz1 -TRz2 ! Nodes of the boron carbide part -BRz1 -BRz2 fuel3/SPA_2/CR_2 8 * fuel3/SPA_0/CR_2 fuel3/SPA_2/CR_2 8 * fuel3/SPA_0/CR_2 -TRz1 -TRz2
Radial reflector definition
For the radial reflector positions we need to specify the local materials used in each node in the same way as we did for fuel assemblies using the fuel type card. In this case, we have separately generated group constants for the separate quarters (NW, NE, SW and SE) of the radial reflector positions so we use the subs definition to tell Ants that each of these positions is made up from the four quarter types defined later in the file.
Our assumption here, and when generating the group constants, is that the radial reflector does not have any axial variation in its composition, which allows us to simply fill it with 22 nodes of the same material. Here, as with the bottom and top reflector nodes we use the dash (-) to indicate that the nodes are reflector nodes.
radial_reflector.inc
! ! ! Radial reflector positions ! ! fuel type "R01" subs "R01_NW" "R01_NE" "R01_SW" "R01_SE" fuel type "R02" subs "R02_NW" "R02_NE" "R02_SW" "R02_SE" fuel type "R03" subs "R03_NW" "R03_NE" "R03_SW" "R03_SE" fuel type "R04" subs "R04_NW" "R04_NE" "R04_SW" "R04_SE" fuel type "R05" subs "R05_NW" "R05_NE" "R05_SW" "R05_SE" ! All axial nodes of the radial reflector are the same fuel type "R01_SW" nodes 22 * -RR01_SW fuel type "R01_SE" nodes 22 * -RR01_SE fuel type "R01_NW" nodes 22 * -RR01_NW fuel type "R01_NE" nodes 22 * -RR01_NE fuel type "R02_SW" nodes 22 * -RR02_SW fuel type "R02_SE" nodes 22 * -RR02_SE fuel type "R02_NW" nodes 22 * -RR02_NW fuel type "R02_NE" nodes 22 * -RR02_NE fuel type "R03_SW" nodes 22 * -RR03_SW fuel type "R03_SE" nodes 22 * -RR03_SE fuel type "R03_NW" nodes 22 * -RR03_NW fuel type "R03_NE" nodes 22 * -RR03_NE fuel type "R04_SW" nodes 22 * -RR04_SW fuel type "R04_SE" nodes 22 * -RR04_SE fuel type "R04_NW" nodes 22 * -RR04_NW fuel type "R04_NE" nodes 22 * -RR04_NE fuel type "R05_SW" nodes 22 * -RR05_SW fuel type "R05_SE" nodes 22 * -RR05_SE fuel type "R05_NW" nodes 22 * -RR05_NW fuel type "R05_NE" nodes 22 * -RR05_NE
Kharon
Kharon.inp
# --- simulationControl { nPhases 2 nIterMax 200 urfU 0.125 urfP 0.125 urfH 0.25 gravity -9.81 readRestart 0 standAlone 0 writeFormat ascii materialProperties libTable thermalBC power } # --- inlet { type massFlowInlet massFlowRate 6.36 0.0 pressure 6.10e5 temperature 367.6 367.6 volumeFraction 1.0 0.0 } outlet { pressure 6.20e5 temperature 380 380 volumeFraction 1.0 0.0 } fuelType rr { nCells 20 ! Align bottom of active core to z = 0.0 bottomElevation -0.05715 cellHeight 0.05715000 ! Grid 1 0.05715000 ! Grid 1 8 * 0.05535625 ! Fuel 0.05715000 ! Grid 2 8 * 0.05535625 ! Fuel 0.05535625 hydraulicDiameter 20 * 1.153052E-02 thermalDiameter 20 * 1.278587E-02 porosity 20 * 5.446598E-01 } fuelType f1 { nCells 20 ! Align bottom of active core to z = 0.0 bottomElevation -0.05715 cellHeight 0.05715000 ! Grid 1 0.05715000 ! Grid 1 8 * 0.05535625 ! Fuel 0.05715000 ! Grid 2 8 * 0.05535625 ! Fuel 0.05535625 hydraulicDiameter 20 * 1.153052E-02 thermalDiameter 20 * 1.278587E-02 porosity 20 * 5.446598E-01 } core { coreLattice square assemblyPitch 0.2150360 } ! ! loadPattern { 0 0 rr rr rr rr rr 0 0 0 rr rr f1 f1 f1 rr rr 0 rr rr f1 f1 f1 f1 f1 rr rr rr f1 f1 f1 f1 f1 f1 f1 rr rr f1 f1 f1 f1 f1 f1 f1 rr rr f1 f1 f1 f1 f1 f1 f1 rr rr rr f1 f1 f1 f1 f1 rr rr 0 rr rr f1 f1 f1 rr rr 0 0 0 rr rr rr rr rr 0 0 }
SuperFINIX
SuperFINIX.inp
% --- Set library files to use set optionsfile "./finix_files/finix.options" set rodfile "./finix_files/finix.rods" set scenariofile "./finix_files/finix.scenario" % --- Rod types rodtype F1 rod_B options_default scenario_default rgb 255 150 150 multiplicity 264 % --- Radial meshes (input of power, output of temperature) set inrmesh 1 0.0 0.40950 set outrmesh 1 0.0 0.40950 % --- Set axial meshing (centimetres) % set zmesh <nz> <zlims> % <nz> = Number of axial layers (> 0 = equal spacing, < 0 = arbitrary spacing) % <zlims> = axial limits: % if <nz> > 0: <zlims> = <zmin> <zmax> % if <nz> < 0: <zlims> = <z1> <z2> ... <zn> set zmesh -18 0.00000 5.71500 11.250625 16.78625 22.321875 27.8575 33.393125 38.92875 44.464375 50 55.715 61.250625 66.78625 72.321875 77.8575 83.393125 88.928750 94.464375 100 % --- Minicore level case lat SMR 1 0.0 0.0 9 9 21.50360 .. .. .. .. .. .. .. .. .. .. .. .. F1 F1 F1 .. .. .. .. .. F1 F1 F1 F1 F1 .. .. .. F1 F1 F1 F1 F1 F1 F1 .. .. F1 F1 F1 F1 F1 F1 F1 .. .. F1 F1 F1 F1 F1 F1 F1 .. .. .. F1 F1 F1 F1 F1 .. .. .. .. .. F1 F1 F1 .. .. .. .. .. .. .. .. .. .. .. .. % --- Set the minicore lattice as the top level lattice set toplattice SMR % --- Horizontal plot plot 3 500 500
finix.rods
finix.options
finix.scenario