Kraken tutorial 2024

From Kraken Wiki
Revision as of 09:11, 20 October 2023 by Ville Valtavirta (talk | contribs) (Ants)
Jump to: navigation, search


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:

  1. The type of assembly in the loading position is different.
  2. 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

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

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