Difference between revisions of "Kraken tutorial 2024"

From Kraken Wiki
Jump to: navigation, search
(Kharon)
(Inputs)
 
(45 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
== General description ==
 
== General description ==
  
...
+
In this tutorial, a small modular reactor core consisting of 37 fuel assemblies will be modelled. The active height of the fuel is 100 cm.
 +
 
 +
[[File:lite_loading.png|frameless|x500px]]
 +
[[File:lite_crs.png|frameless|x500px]]
 +
 
 +
The loading consists of six assembly types as shown above and the control rods are divided into safety rods (S) and regulating rods (R).
 +
 
 +
[[File:lite_axial.png|frameless|x500px]]
 +
 
 +
The model is based on the [https://www.ldr-reactor.fi/en/ldr-lite-benchmark/ LDR lite benchmark].
  
 
== Group constant generation ==
 
== Group constant generation ==
  
[[Group constant generation for Kraken tutorial 2024]]
+
For an overview of generating group constants for Ants using Serpent, see [[:File:Serpent_Ants_GCs.pdf|the associated presentation]] and the group constant generation models in [[Media:PHYSOR_2024_LDR_lite_GC_inputs.tgz|PHYSOR_2024_LDR_lite_GC_inputs.tgz]].
  
 
== Inputs ==
 
== Inputs ==
 +
 +
All inputs are also found in the [https://vtt.sharefile.eu/d-s7a948506038d47eeb7dbf45607a7e8d8 LDR lite model for PHYSOR 2024] archive along with the Python inputs for running the calculations. See also [[Media:SMR_modelling_with_Kraken.pdf|SMR_modelling_with_Kraken.pdf]].
  
 
=== Ants ===
 
=== Ants ===
Line 22: Line 33:
 
  [[Ants input manual#title|title]] "LDR-Lite"
 
  [[Ants input manual#title|title]] "LDR-Lite"
 
   
 
   
  [[Ants input manual#global_geometry|global geometry]] square [[Ants input manual#neutronics|neutronics]] diffusion
+
  [[Ants input manual#global_geometry|global geometry]] rectangular [[Ants input manual#neutronics|neutronics]] diffusion
 
   
 
   
  [[Ants input manual#library_type|library type]] polynomial [[Ants input manual#path|path]] "../inputs/xs/new_narrow_2g_no_mdep.xs"
+
  [[Ants input manual#library_type|library type]] polynomial [[Ants input manual#path|path]] "./gc/group_constants_2g.xs"
 
   
 
   
 
  [[Ants input manual#core|core]] [[Ants input manual#width_xy|width_xy]]      21.5036
 
  [[Ants input manual#core|core]] [[Ants input manual#width_xy|width_xy]]      21.5036
Line 43: Line 54:
 
       [[Ants input manual#radial_boundary_coeff|radial_boundary_coeff]] 0.031477  ! Extrapolation length
 
       [[Ants input manual#radial_boundary_coeff|radial_boundary_coeff]] 0.031477  ! Extrapolation length
 
       [[Ants input manual#axial_boundary_coeff|axial_boundary_coeff]]  0.031477  ! Extrapolation length
 
       [[Ants input manual#axial_boundary_coeff|axial_boundary_coeff]]  0.031477  ! Extrapolation length
+
      [[Ants input manual#nominal_power|nominal_power]]            50.0e6
 +
 
 
  [[Ants input manual#include|include]] "../inputs/ants_includes/fuel_assemblies.inc"
 
  [[Ants input manual#include|include]] "../inputs/ants_includes/fuel_assemblies.inc"
 
  [[Ants input manual#include|include]] "../inputs/ants_includes/radial_reflector.inc"
 
  [[Ants input manual#include|include]] "../inputs/ants_includes/radial_reflector.inc"
Line 50: Line 62:
 
   
 
   
 
   
 
   
  [[Ants input manual#iteration|iteration]] [[Ants input manual#power|power]]                    1.0
+
  [[Ants input manual#iteration|iteration]] [[Ants input manual#power|power]]                    50.0e6
 
           [[Ants input manual#max_outer|max_outer]]                10000
 
           [[Ants input manual#max_outer|max_outer]]                10000
 
           [[Ants input manual#control_variable|control_variable]]        keff
 
           [[Ants input manual#control_variable|control_variable]]        keff
          [[Ants input manual#xenon_state|xenon_state]]              zero
 
          [[Ants input manual#samarium_state|samarium_state]]          zero
 
 
</div>
 
</div>
 
</div>
 
</div>
Line 62: Line 72:
 
The [[Ants input manual#fuel_load|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 assembly definitions|fuel assemblies]] and [[#Radial reflector definition|radial reflector]].
 
The [[Ants input manual#fuel_load|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 assembly definitions|fuel assemblies]] and [[#Radial reflector definition|radial reflector]].
  
The [[Ants input manual#fuel_rotation|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 definition|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).
+
The [[Ants input manual#fuel_rotation|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 definition|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-A6) 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 [[Ants input manual#fuel_type|fuel type]] with the local node material of a [[Ants input manual#controlrod_type|controlrod type]]. The [[Ants input manual#controlrod_position|controlrod position]] card is used to indicate which [[Ants input manual#controlrod_type|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:
 
Control rod insertion in Ants can be thought to happen through replacing the local node material of a [[Ants input manual#fuel_type|fuel type]] with the local node material of a [[Ants input manual#controlrod_type|controlrod type]]. The [[Ants input manual#controlrod_position|controlrod position]] card is used to indicate which [[Ants input manual#controlrod_type|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:
Line 68: Line 78:
 
# The type of control rod to be inserted 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.
+
In our case, we will have six assembly types (A1-A6) and two control rod types (R, S), which means that twelve potentially different control rod types could be created (R rod in each 6 assembly types, S rod in each 6 assembly types). However, in the modelled core each assembly type contains just one control rod type (R or S) and therefore, we only have six control rod types to define and load into our core.
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:60em;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:60em;">
 
'''core.inc'''
 
'''core.inc'''
<div class="mw-collapsible-content">  
+
<div class="mw-collapsible-content">
 
  [[Ants input manual#fuel_load|fuel load]]
 
  [[Ants input manual#fuel_load|fuel load]]
 
     0  0 R03 R02 R01 R02 R03 0  0
 
     0  0 R03 R02 R01 R02 R03 0  0
     0 R05 R04  A2 A3 A2 R04 R05 0
+
     0 R05 R04  A4 A6 A4 R04 R05 0
   R03 R04  A3  A2  A2  A2 A3 R04 R03
+
   R03 R04 A5 A3  A2  A3 A5 R04 R03
   R02  A2  A2 A3 A2  A3  A2  A2 R02
+
   R02 A4  A3 A2  A2  A2  A3  A4 R02
   R01  A3 A2  A2  A1  A2  A2  A3 R01
+
   R01  A6 A2  A2  A1  A2  A2  A6 R01
   R02  A2  A2 A3 A2  A3  A2  A2 R02
+
   R02 A4  A3 A2  A2  A2  A3  A4 R02
   R03 R04  A3  A2  A2 A2  A3 R04 R03
+
   R03 R04 A5 A3  A2  A3 A5 R04 R03
     0 R05 R04  A2 A3 A2 R04 R05 0
+
     0 R05 R04  A4 A6 A4 R04 R05 0
 
     0  0 R03 R02 R01 R02 R03 0  0
 
     0  0 R03 R02 R01 R02 R03 0  0
 
   
 
   
Line 99: Line 109:
 
   
 
   
 
  ! Indicates which assemblies contain which types of control rodded nodes
 
  ! Indicates which assemblies contain which types of control rodded nodes
  ! Control rod [[Ants input manual#type|type]] in Ants is a combination of:
+
  ! Control rod type in Ants is a combination of:
  !  1) The base [[Ants input manual#fuel|fuel]] [[Ants input manual#assembly|assembly]] [[Ants input manual#type|type]] present in the node
+
  !  1) The base fuel assembly type present in the node
  !  2) The control rod [[Ants input manual#type|type]] being inserted 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 [[Ants input manual#fuel|fuel]] types are
+
  ! Here we have two different control rod types R/S and base fuel types are
  ! the same as in [[Ants input manual#fuel_load|fuel load]] card
+
  ! the same as in fuel load card
 
  [[Ants input manual#controlrod_position|controlrod position]]
 
  [[Ants input manual#controlrod_position|controlrod position]]
 
     0  0  0  0  0  0  0  0  0
 
     0  0  0  0  0  0  0  0  0
     0  0  0 SA2 SA3 SA2   0  0  0
+
     0  0  0 SA4 SA6 SA4   0  0  0
     0  0 SA3 RA2 RA2 RA2 SA3   0  0
+
     0  0 SA5 RA3 RA2 RA3 SA5   0  0
     0 SA2 RA2 RA3 RA2 RA3 RA2 SA2   0
+
     0 SA4 RA3 RA2 RA2 RA2 RA3 SA4   0
     0 SA3 RA2 RA2 SA1 RA2 RA2 SA3   0
+
     0 SA6 RA2 RA2 SA1 RA2 RA2 SA6   0
     0 SA2 RA2 RA3 RA2 RA3 RA2 SA2   0
+
     0 SA4 RA3 RA2 RA2 RA2 RA3 SA4   0
     0  0 SA3 RA2 RA2 RA2 SA3   0  0
+
     0  0 SA5 RA3 RA2 RA3 SA5   0  0
     0  0  0 SA2 SA3 SA2 R04   0  0
+
     0  0  0 SA4 SA6 SA4  0   0  0
 
     0  0  0  0  0  0  0  0  0
 
     0  0  0  0  0  0  0  0  0
 
   
 
   
 
  ! Indicates which positions are linked to which control identifier
 
  ! Indicates which positions are linked to which control identifier
 
  ! These identifiers can then be used to move specific control rods
 
  ! These identifiers can then be used to move specific control rods
  [[Ants input manual#controlrod_group|controlrod group]] [[Ants input manual#load|load]]
+
  [[Ants input manual#controlrod_group_load|controlrod group load]]
 
   0    0    0    0    0    0    0    0    0
 
   0    0    0    0    0    0    0    0    0
   0    0    0  S7.2 S4.2 S7.1 0    0    0
+
   0    0    0  S7.3 S4.2 S7.2 0    0    0
   0    0  S8.2 R6.2 R3.2 R6.1 S8.1  0    0
+
   0    0  S8.2 R6.3 R3.2 R6.2 S8.1  0    0
   0  S7.3 R6.3 R5.2 R2.2 R5.1 R6.8 S7.8 0
+
   0  S7.4 R6.4 R5.2 R2.2 R5.1 R6.1 S7.1 0
 
   0  S4.3 R3.3 R2.3 S1.1 R2.1 R3.1 S4.1  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  S7.5 R6.5 R5.3 R2.4 R5.4 R6.8 S7.8 0
   0    0  S8.3 R6.5 R3.4 R6.6 S8.4  0    0
+
   0    0  S8.3 R6.6 R3.4 R6.7 S8.4  0    0
   0    0    0  S7.5 S4.4 S7.6 0    0    0
+
   0    0    0  S7.6 S4.4 S7.7 0    0    0
 
   0    0    0    0    0    0    0    0    0
 
   0    0    0    0    0    0    0    0    0
 
</div>
 
</div>
Line 132: Line 142:
 
==== Fuel assembly definitions ====
 
==== Fuel assembly definitions ====
  
The group constant materials occupying the different horizontal quarters and axial layers of fuel assemblies are defined here using the [[Ants input manual#fuel_type|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 [[Ants input manual#fuel_type|fuel type]] input card, from the bottom to the top node.
+
The group constant materials occupying the different horizontal quarters and axial layers of fuel assemblies are defined here using the [[Ants input manual#fuel_type|fuel type]] input cards. First each assembly type (A1-A6) 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 [[Ants input manual#fuel_type|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 <tt>BRz1</tt> which describes one of the bottom reflector nodes.
 
The node content needs to match a material found in the group constant library, such as <tt>BRz1</tt> which describes one of the bottom reflector nodes.
Line 138: Line 148:
 
Note that the dash in front of the material name <tt>-BRz1</tt> defines this node as a reflector node.
 
Note that the dash in front of the material name <tt>-BRz1</tt> 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 <tt>fuel1/SPA_2/CR_0</tt> corresponds to the fuel type FUEL1 in the group constant library, using spacer type 2 and control rod type 0.  
+
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 <tt>fuel1/SPA_1/CR_0</tt> corresponds to the fuel type FUEL1 in the group constant library, using spacer type 1 and control rod type 0.  
  
 
<tt>fuel1</tt> is equal to <tt>fuel1/SPA_0/CR_0/DET_0</tt>.
 
<tt>fuel1</tt> is equal to <tt>fuel1/SPA_0/CR_0/DET_0</tt>.
Line 154: Line 164:
 
     -BRz1      ! Bottom reflector
 
     -BRz1      ! Bottom reflector
 
     -BRz2      ! Bottom reflector
 
     -BRz2      ! Bottom reflector
       fuel1/SPA_2/CR_0 ! Grid 1
+
       fuel1/SPA_1/CR_0 ! Grid 1
 
   8 * fuel1/SPA_0/CR_0 ! fuel
 
   8 * fuel1/SPA_0/CR_0 ! fuel
       fuel1/SPA_2/CR_0 ! Grid 2
+
       fuel1/SPA_1/CR_0 ! Grid 2
 
   8 * fuel1/SPA_0/CR_0 ! fuel
 
   8 * fuel1/SPA_0/CR_0 ! fuel
 
     -TRz1      ! Top reflector
 
     -TRz1      ! Top reflector
Line 165: Line 175:
 
     -BRz1      ! Bottom reflector
 
     -BRz1      ! Bottom reflector
 
     -BRz2      ! Bottom reflector
 
     -BRz2      ! Bottom reflector
       fuel2/SPA_2/CR_0 ! Grid 1
+
       fuel2/SPA_1/CR_0 ! Grid 1
 
   8 * fuel2/SPA_0/CR_0 ! fuel
 
   8 * fuel2/SPA_0/CR_0 ! fuel
       fuel2/SPA_2/CR_0 ! Grid 2
+
       fuel2/SPA_1/CR_0 ! Grid 2
 
   8 * fuel2/SPA_0/CR_0 ! fuel
 
   8 * fuel2/SPA_0/CR_0 ! fuel
 
     -TRz1      ! Top reflector
 
     -TRz1      ! Top reflector
Line 176: Line 186:
 
     -BRz1      ! Bottom reflector
 
     -BRz1      ! Bottom reflector
 
     -BRz2      ! Bottom reflector
 
     -BRz2      ! Bottom reflector
       fuel3/SPA_2/CR_0 ! Grid 1
+
       fuel3/SPA_1/CR_0 ! Grid 1
 
   8 * fuel3/SPA_0/CR_0 ! fuel
 
   8 * fuel3/SPA_0/CR_0 ! fuel
       fuel3/SPA_2/CR_0 ! Grid 2
+
       fuel3/SPA_1/CR_0 ! Grid 2
 
   8 * fuel3/SPA_0/CR_0 ! fuel
 
   8 * fuel3/SPA_0/CR_0 ! fuel
 +
    -TRz1      ! Top reflector
 +
    -TRz2      ! Top reflector
 +
 +
! Type A4
 +
[[Ants input manual#fuel_type|fuel type]] "A4"  nodes
 +
    -BRz1      ! Bottom reflector
 +
    -BRz2      ! Bottom reflector
 +
      fuel4/SPA_1/CR_0 ! Grid 1
 +
  8 * fuel4/SPA_0/CR_0 ! fuel
 +
      fuel4/SPA_1/CR_0 ! Grid 2
 +
  8 * fuel4/SPA_0/CR_0 ! fuel
 +
    -TRz1      ! Top reflector
 +
    -TRz2      ! Top reflector
 +
 +
! Type A5
 +
[[Ants input manual#fuel_type|fuel type]] "A5"  nodes
 +
    -BRz1      ! Bottom reflector
 +
    -BRz2      ! Bottom reflector
 +
      fuel5/SPA_1/CR_0 ! Grid 1
 +
  8 * fuel5/SPA_0/CR_0 ! fuel
 +
      fuel5/SPA_1/CR_0 ! Grid 2
 +
  8 * fuel5/SPA_0/CR_0 ! fuel
 +
    -TRz1      ! Top reflector
 +
    -TRz2      ! Top reflector
 +
 +
! Type A6
 +
[[Ants input manual#fuel_type|fuel type]] "A6"  nodes
 +
    -BRz1      ! Bottom reflector
 +
    -BRz2      ! Bottom reflector
 +
      fuel6/SPA_1/CR_0 ! Grid 1
 +
  8 * fuel6/SPA_0/CR_0 ! fuel
 +
      fuel6/SPA_1/CR_0 ! Grid 2
 +
  8 * fuel6/SPA_0/CR_0 ! fuel
 
     -TRz1      ! Top reflector
 
     -TRz1      ! Top reflector
 
     -TRz2      ! Top reflector
 
     -TRz2      ! Top reflector
Line 187: Line 230:
 
==== Control rod structure ====
 
==== 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 [[Ants input manual#controlrod_type|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.
+
We need to define the safety type and regulating type control rods so that they can be inserted into the core as needed. When we define them using the [[Ants input manual#controlrod_type|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.)
 
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.)
Line 197: Line 240:
 
  ! Fuel assembly types (Need to give material in each axial node)
 
  ! 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
 
  ! Material identifier given for node needs to correspond to one in the .xs library
 +
! CR materials 1 == enriched boron carbide, 2 == inconel (from Serpent branch definitions)
 
  !
 
  !
 
   
 
   
Line 209: Line 253:
 
           -BRz1
 
           -BRz1
 
           -BRz2
 
           -BRz2
             fuel1/SPA_2/CR_1
+
             fuel1/SPA_1/CR_1
 
         8 * fuel1/SPA_0/CR_1
 
         8 * fuel1/SPA_0/CR_1
             fuel1/SPA_2/CR_1
+
             fuel1/SPA_1/CR_1
 
         8 * fuel1/SPA_0/CR_1
 
         8 * fuel1/SPA_0/CR_1
 
           -TRz1
 
           -TRz1
Line 218: Line 262:
 
           -BRz1
 
           -BRz1
 
           -BRz2
 
           -BRz2
             fuel1/SPA_2/CR_2
+
             fuel1/SPA_1/CR_2
 
         8 * fuel1/SPA_0/CR_2
 
         8 * fuel1/SPA_0/CR_2
             fuel1/SPA_2/CR_2
+
             fuel1/SPA_1/CR_2
 
         8 * fuel1/SPA_0/CR_2
 
         8 * fuel1/SPA_0/CR_2
 
           -TRz1
 
           -TRz1
Line 230: Line 274:
 
  [[Ants input manual#controlrod_type|controlrod type]] "RA2"
 
  [[Ants input manual#controlrod_type|controlrod type]] "RA2"
 
             parts 2
 
             parts 2
             lengths 50 50
+
             lengths 60 40
 
             nodes
 
             nodes
 
  ! Nodes of the inconel part
 
  ! Nodes of the inconel part
 
           -BRz1
 
           -BRz1
 
           -BRz2
 
           -BRz2
             fuel2/SPA_2/CR_1
+
             fuel2/SPA_1/CR_1
 
         8 * fuel2/SPA_0/CR_1
 
         8 * fuel2/SPA_0/CR_1
             fuel2/SPA_2/CR_1
+
             fuel2/SPA_1/CR_1
 
         8 * fuel2/SPA_0/CR_1
 
         8 * fuel2/SPA_0/CR_1
 
           -TRz1
 
           -TRz1
Line 244: Line 288:
 
           -BRz1
 
           -BRz1
 
           -BRz2
 
           -BRz2
             fuel2/SPA_2/CR_2
+
             fuel2/SPA_1/CR_2
 
         8 * fuel2/SPA_0/CR_2
 
         8 * fuel2/SPA_0/CR_2
             fuel2/SPA_2/CR_2
+
             fuel2/SPA_1/CR_2
 
         8 * fuel2/SPA_0/CR_2
 
         8 * fuel2/SPA_0/CR_2
 
           -TRz1
 
           -TRz1
 
           -TRz2
 
           -TRz2
+
 
 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
  ! Rod type R inserted to fuel type A3 !
 
  ! Rod type R inserted to fuel type A3 !
Line 256: Line 300:
 
  [[Ants input manual#controlrod_type|controlrod type]] "RA3"
 
  [[Ants input manual#controlrod_type|controlrod type]] "RA3"
 
             parts 2
 
             parts 2
             lengths 50 50
+
             lengths 60 40
 
             nodes
 
             nodes
 
  ! Nodes of the inconel part
 
  ! Nodes of the inconel part
 
           -BRz1
 
           -BRz1
 
           -BRz2
 
           -BRz2
             fuel3/SPA_2/CR_1
+
             fuel3/SPA_1/CR_1
 
         8 * fuel3/SPA_0/CR_1
 
         8 * fuel3/SPA_0/CR_1
             fuel3/SPA_2/CR_1
+
             fuel3/SPA_1/CR_1
 
         8 * fuel3/SPA_0/CR_1
 
         8 * fuel3/SPA_0/CR_1
 
           -TRz1
 
           -TRz1
Line 270: Line 314:
 
           -BRz1
 
           -BRz1
 
           -BRz2
 
           -BRz2
             fuel3/SPA_2/CR_2
+
             fuel3/SPA_1/CR_2
 
         8 * fuel3/SPA_0/CR_2
 
         8 * fuel3/SPA_0/CR_2
             fuel3/SPA_2/CR_2
+
             fuel3/SPA_1/CR_2
 
         8 * fuel3/SPA_0/CR_2
 
         8 * fuel3/SPA_0/CR_2
 
           -TRz1
 
           -TRz1
Line 278: Line 322:
 
   
 
   
 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Rod type S inserted to fuel type A2 !
+
  ! Rod type S inserted to fuel type A4 !
 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  [[Ants input manual#controlrod_type|controlrod type]] "SA2"
+
  [[Ants input manual#controlrod_type|controlrod type]] "SA4"
 
             parts 2
 
             parts 2
 
             lengths 5 95
 
             lengths 5 95
Line 287: Line 331:
 
           -BRz1
 
           -BRz1
 
           -BRz2
 
           -BRz2
             fuel2/SPA_2/CR_1
+
             fuel4/SPA_1/CR_1
         8 * fuel2/SPA_0/CR_1
+
         8 * fuel4/SPA_0/CR_1
             fuel2/SPA_2/CR_1
+
             fuel4/SPA_1/CR_1
         8 * fuel2/SPA_0/CR_1
+
         8 * fuel4/SPA_0/CR_1
 +
          -TRz1
 +
          -TRz2
 +
! Nodes of the boron carbide part
 +
          -BRz1
 +
          -BRz2
 +
            fuel4/SPA_1/CR_2
 +
        8 * fuel4/SPA_0/CR_2
 +
            fuel4/SPA_1/CR_2
 +
        8 * fuel4/SPA_0/CR_2
 +
          -TRz1
 +
          -TRz2
 +
 +
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
! Rod type S inserted to fuel type A5 !
 +
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
[[Ants input manual#controlrod_type|controlrod type]] "SA5"
 +
            parts 2
 +
            lengths 5 95
 +
            nodes
 +
! Nodes of the inconel part
 +
          -BRz1
 +
          -BRz2
 +
            fuel5/SPA_1/CR_1
 +
        8 * fuel5/SPA_0/CR_1
 +
            fuel5/SPA_1/CR_1
 +
        8 * fuel5/SPA_0/CR_1
 
           -TRz1
 
           -TRz1
 
           -TRz2
 
           -TRz2
Line 296: Line 366:
 
           -BRz1
 
           -BRz1
 
           -BRz2
 
           -BRz2
             fuel2/SPA_2/CR_2
+
             fuel5/SPA_1/CR_2
         8 * fuel2/SPA_0/CR_2
+
         8 * fuel5/SPA_0/CR_2
             fuel2/SPA_2/CR_2
+
             fuel5/SPA_1/CR_2
         8 * fuel2/SPA_0/CR_2
+
         8 * fuel5/SPA_0/CR_2
 
           -TRz1
 
           -TRz1
 
           -TRz2
 
           -TRz2
 
   
 
   
 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Rod type S inserted to fuel type A3 !
+
  ! Rod type S inserted to fuel type A6 !
 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  [[Ants input manual#controlrod_type|controlrod type]] "SA3"
+
  [[Ants input manual#controlrod_type|controlrod type]] "SA6"
 
             parts 2
 
             parts 2
 
             lengths 5 95
 
             lengths 5 95
Line 313: Line 383:
 
           -BRz1
 
           -BRz1
 
           -BRz2
 
           -BRz2
             fuel3/SPA_2/CR_1
+
             fuel6/SPA_1/CR_1
         8 * fuel3/SPA_0/CR_1
+
         8 * fuel6/SPA_0/CR_1
             fuel3/SPA_2/CR_1
+
             fuel6/SPA_1/CR_1
         8 * fuel3/SPA_0/CR_1
+
         8 * fuel6/SPA_0/CR_1
 
           -TRz1
 
           -TRz1
 
           -TRz2
 
           -TRz2
Line 322: Line 392:
 
           -BRz1
 
           -BRz1
 
           -BRz2
 
           -BRz2
             fuel3/SPA_2/CR_2
+
             fuel6/SPA_1/CR_2
         8 * fuel3/SPA_0/CR_2
+
         8 * fuel6/SPA_0/CR_2
             fuel3/SPA_2/CR_2
+
             fuel6/SPA_1/CR_2
         8 * fuel3/SPA_0/CR_2
+
         8 * fuel6/SPA_0/CR_2
 
           -TRz1
 
           -TRz1
 
           -TRz2
 
           -TRz2
Line 387: Line 457:
 
'''Kharon.inp'''
 
'''Kharon.inp'''
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
 +
# ---
 
   
 
   
  simulationControl
+
  [[Kharon input manual#simulationControl|simulationControl]]
 
  {
 
  {
     nPhases            2
+
     [[Kharon input manual#nPhases|nPhases]]           1
     nIterMax          200
+
     [[Kharon input manual#nIterMax|nIterMax]]           500
     urfU              0.125
+
     [[Kharon input manual#urfU|urfU]]               0.125
     urfP              0.125
+
     [[Kharon input manual#urfP|urfP]]               0.125
     urfH              0.25
+
     [[Kharon input manual#urfH|urfH]]               0.25
     gravity            -9.81
+
     [[Kharon input manual#gravity|gravity]]           -9.81
     materialProperties libTable
+
     [[Kharon input manual#writeFormat|writeFormat]]        ascii
     thermalBC          power
+
    [[Kharon input manual#materialProperties|materialProperties]] libTable
 +
     [[Kharon input manual#thermalBC|thermalBC]]         power
 
  }
 
  }
 
   
 
   
  inlet
+
  # ---
 +
 +
[[Kharon input manual#inlet|inlet]]
 
  {
 
  {
     type              massFlowInlet
+
     [[Kharon input manual#type_3|type]]               massFlowInlet
     massFlowRate      6.36    0.0  
+
     [[Kharon input manual#massFlowRate|massFlowRate]]       6.0.0
     pressure          6.10e5       
+
     [[Kharon input manual#pressure|pressure]]           6.1e5
     temperature        367.6 367.6 
+
     [[Kharon input manual#temperature|temperature]]       367   367
     volumeFraction    1.0     0.0
+
     [[Kharon input manual#volumeFraction|volumeFraction]]     1.0   0.0
 
  }
 
  }
 
   
 
   
  outlet
+
  [[Kharon input manual#outlet|outlet]]
 
  {
 
  {
     pressure          6.20e5
+
     [[Kharon input manual#pressure_2|pressure]]           6.2e5
     temperature        380 380
+
     [[Kharon input manual#temperature_2|temperature]]       380 380
     volumeFraction    1.0 0.0
+
     [[Kharon input manual#volumeFraction_2|volumeFraction]]     1.0 0.0
 
  }
 
  }
 
   
 
   
  fuelType rr
+
  [[Kharon input manual#fuelType|fuelType]] rr
 
  {
 
  {
     nCells            20
+
     [[Kharon input manual#nCells|nCells]]             22
     bottomElevation    -0.05715
+
     cellHeight
+
     ! Align bottom of active core to z = 0.0
         0.05715000                ! Grid 1
+
 +
    [[Kharon input manual#bottomElevation|bottomElevation]]   -0.12
 +
 +
     [[Kharon input manual#cellHeight|cellHeight]]
 +
        0.06                      ! Ants support plate should map to this
 +
         0.06                      ! Ants bottom plugs should map to this
 
         0.05715000                ! Grid 1
 
         0.05715000                ! Grid 1
 
   8 *  0.05535625                ! Fuel
 
   8 *  0.05535625                ! Fuel
 
         0.05715000                ! Grid 2
 
         0.05715000                ! Grid 2
 
   8 *  0.05535625                ! Fuel
 
   8 *  0.05535625                ! Fuel
         0.05535625
+
         0.06                      ! Ants top plenum should map to this
     hydraulicDiameter  20 * 1.153052E-02
+
        0.06                      ! Ants final node should map to this
     thermalDiameter    20 * 1.278587E-02
+
     porosity            20 * 5.446598E-01
+
     [[Kharon input manual#hydraulicDiameter|hydraulicDiameter]]   22 * 1.153052E-02
 +
 +
     [[Kharon input manual#thermalDiameter|thermalDiameter]]     22 * 1.278587E-02
 +
 +
     [[Kharon input manual#porosity|porosity]]           22 * 5.446598E-01
 +
 
  }
 
  }
 
   
 
   
  fuelType f1
+
  [[Kharon input manual#fuelType|fuelType]] f1
 
  {
 
  {
     nCells            20
+
     [[Kharon input manual#nCells|nCells]]             22
     bottomElevation    -0.05715
+
     cellHeight
+
     ! Align bottom of active core to z = 0.0
         0.05715000                ! Grid 1
+
 +
    [[Kharon input manual#bottomElevation|bottomElevation]]   -0.12
 +
 +
     [[Kharon input manual#cellHeight|cellHeight]]
 +
        0.06                      ! Ants support plate should map to this
 +
         0.06                      ! Ants bottom plugs should map to this
 
         0.05715000                ! Grid 1
 
         0.05715000                ! Grid 1
 
   8 *  0.05535625                ! Fuel
 
   8 *  0.05535625                ! Fuel
 
         0.05715000                ! Grid 2
 
         0.05715000                ! Grid 2
 
   8 *  0.05535625                ! Fuel
 
   8 *  0.05535625                ! Fuel
         0.05535625
+
         0.06                      ! Ants top plenum should map to this
     hydraulicDiameter  20 * 1.153052E-02
+
        0.06                      ! Ants final node should map to this
     thermalDiameter    20 * 1.278587E-02
+
     porosity            20 * 5.446598E-01
+
     [[Kharon input manual#hydraulicDiameter|hydraulicDiameter]]   22 * 1.153052E-02
 +
 +
     [[Kharon input manual#thermalDiameter|thermalDiameter]]     22 * 1.278587E-02
 +
 +
     [[Kharon input manual#porosity|porosity]]           22 * 5.446598E-01
 +
 
  }
 
  }
 
   
 
   
  core
+
  [[Kharon input manual#core|core]]
 
  {
 
  {
     coreLattice        square
+
     [[Kharon input manual#coreLattice|coreLattice]]       square
     assemblyPitch      0.2150360
+
     [[Kharon input manual#assemblyPitch|assemblyPitch]]     0.2150360
 
  }
 
  }
 
   
 
   
  loadPattern
+
  !
 +
!
 +
 +
[[Kharon input manual#loadPattern|loadPattern]]
 
  {
 
  {
 
   0  0  rr  rr  rr  rr  rr  0  0
 
   0  0  rr  rr  rr  rr  rr  0  0
Line 471: Line 568:
  
 
In the [[Kharon_input_manual#Simulation_control_parameters|simulationControl]] group general parameters related to the solution flow are defined. In this case, a two phase flow is solved. The required level of under-relaxation depends on the modelled case and here the under-relaxation factors have been reduced to ensure convergence. Material properties are evaluated based on pretabulated set of material properties. For the thermal boundary condition we use power meaning that power in each cell must be given to Kharon with kharon_if_power input field using Cerberus.
 
In the [[Kharon_input_manual#Simulation_control_parameters|simulationControl]] group general parameters related to the solution flow are defined. In this case, a two phase flow is solved. The required level of under-relaxation depends on the modelled case and here the under-relaxation factors have been reduced to ensure convergence. Material properties are evaluated based on pretabulated set of material properties. For the thermal boundary condition we use power meaning that power in each cell must be given to Kharon with kharon_if_power input field using Cerberus.
 +
 +
The [[Kharon_input_manual#Inlet_definition|inlet]] group defines the inlet boundary conditions and there a several inlet boundary condition types. Here, a mass flow boundary condition (massFlowInlet) specifying phase mass flow rates per assembly is used. In this case, we have only liquid phase at 367.6 K  at the inlet and the liquid mass flow rate per assembly is 6.36 kg/s. With massFlowInlet the pressure value is only used for the initialization of the flow.
 +
 +
The [[Kharon_input_manual#Outlet_definition|outlet]] group defines the outlet boundary conditions. Pressure along with the phase temperatures and flow rates for back flow must be defined in every simulation. Here, the outlet temperature has been set to 6.20e5 Pa.
 +
 +
The geometry of the modelled system is defined with [[Kharon_input_manual#List_of_fuel_types|fuelType]], [[Kharon_input_manual#Core_definition|core]] and [[Kharon_input_manual#Load_pattern|loadPattern]] groups. [[Kharon_input_manual#List_of_fuel_types|fuelType]] group are used to define a fuel assembly type and there can be several different types.
  
 
=== SuperFINIX ===
 
=== SuperFINIX ===
 +
 +
SuperFINIX works as a manager of a large number of individual [[FINIX]] solvers, distributing the boundary conditions and work to the FINIX rods, collecting the results from them and communicating the core-level fields with [[Cerberus]]. SuperFINIX input thus consists mostly of information related to:
 +
# What kinds of FINIX solvers to initialize, in the form of options given to the [[SuperFINIX input manual#rodtype|rodtype]] card and the FINIX input files linked with [[SuperFINIX input manual#set_optionsfile|set optionsfile]], [[SuperFINIX input manual#set_rodfile|set rodfile]] and [[SuperFINIX input manual#set_scenariofile|set scenariofile]] "./finix_files/finix.scenario".
 +
# The core geometry, set up by defining a single or multilevel lattice using the [[SuperFINIX input manual#lat|lat]] card and indicating the top lattice with [[SuperFINIX input manual#set_toplattice|set toplattice]].
 +
# The radial and axial meshing used for communicating input (power) and output (temperature) fields defined with [[SuperFINIX input manual#set_inrmesh|set inrmesh]], [[SuperFINIX input manual#set_outrmesh|set outrmesh]] and [[SuperFINIX input manual#set_zmesh|set zmesh]].
 +
 +
[[File:SuperFINIX_tutorial_2024.png|frameless|x500px]]
 +
 +
For these calculations we will use an average fuel rod approach with the same type of fuel rod instance in each of the fuel assemblies. Since we set the multiplicity of the rod type to 264, the assembly level power distributed to SuperFINIX automatically gets divided by 264 (the number of rods in the assembly) before being distributed to the FINIX solver.
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:60em;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:60em;">
 
'''SuperFINIX.inp'''
 
'''SuperFINIX.inp'''
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
  % --- Set library files to use
+
  % --- Set FINIX library files to use
 
   
 
   
  set optionsfile  "./finix_files/finix.options"
+
  [[SuperFINIX input manual#set_optionsfile|set optionsfile]] "./finix_files/finix.options"
  set rodfile      "./finix_files/finix.rods"
+
  [[SuperFINIX input manual#set_rodfile|set rodfile]]     "./finix_files/finix.rods"
  set scenariofile "./finix_files/finix.scenario"
+
  [[SuperFINIX input manual#set_scenariofile|set scenariofile]] "./finix_files/finix.scenario"
 
   
 
   
 
  % --- Rod types
 
  % --- Rod types
 
   
 
   
  rodtype F1 rod_B options_default scenario_default
+
  [[SuperFINIX input manual#rodtype|rodtype]] F1 rod_B options_default scenario_default
 
             rgb 255 150 150
 
             rgb 255 150 150
 
             multiplicity 264
 
             multiplicity 264
Line 491: Line 603:
 
  % --- Radial meshes (input of power, output of temperature)
 
  % --- Radial meshes (input of power, output of temperature)
 
   
 
   
  set inrmesh  1 0.0 0.40950
+
  [[SuperFINIX input manual#set_inrmesh|set inrmesh]] 1 0.0 0.40950
  set outrmesh 1 0.0 0.40950
+
  [[SuperFINIX input manual#set_outrmesh|set outrmesh]] 1 0.0 0.40950
 
   
 
   
 
  % --- Set axial meshing (centimetres)
 
  % --- Set axial meshing (centimetres)
Line 501: Line 613:
 
  %        if <nz> < 0: <zlims> = <z1> <z2> ... <zn>
 
  %        if <nz> < 0: <zlims> = <z1> <z2> ... <zn>
 
   
 
   
  set zmesh -18
+
  [[SuperFINIX input manual#set_zmesh|set zmesh]] -18
 
     0.00000
 
     0.00000
 
     5.71500
 
     5.71500
Line 524: Line 636:
 
  % --- Minicore level case
 
  % --- Minicore level case
 
   
 
   
  lat SMR 1 0.0 0.0 9 9 21.50360
+
  [[SuperFINIX input manual#lat|lat]] SMR 1 0.0 0.0 9 9 21.50360
 
  ..  ..  ..  ..  ..  ..  ..  .. ..
 
  ..  ..  ..  ..  ..  ..  ..  .. ..
 
  ..  ..  ..  F1  F1  F1  ..  .. ..
 
  ..  ..  ..  F1  F1  F1  ..  .. ..
Line 537: Line 649:
 
  % --- Set the minicore lattice as the top level lattice
 
  % --- Set the minicore lattice as the top level lattice
 
   
 
   
  set toplattice SMR
+
  [[SuperFINIX input manual#set_toplattice|set toplattice]] SMR
 
   
 
   
 
  % --- Horizontal plot
 
  % --- Horizontal plot
 
   
 
   
  plot 3 500 500
+
  [[SuperFINIX input manual#plot|plot]] 3 500 500
 
</div>
 
</div>
 
</div>
 
</div>
 +
 +
The FINIX blocks used in the SuperFINIX [[SuperFINIX input manual#rodtype|rodtype]] definition need to be defined in the options, rod and scenario files linked to the SuperFINIX input. See section 8.7 in the [[: File:VTT-R-01103-19_FINIX-1.19.12-manual.pdf|FINIX manual]] for further information on the FINIX input files.
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:60em;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:60em;">
 
'''finix.rods'''
 
'''finix.rods'''
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
 +
USE from_host
 +
 +
begin rod_B
 +
 +
pellet_inner_radius = 0.0
 +
pellet_outer_radius = 0.40950E-02
 +
clad_inner_radius = 0.41790E-02
 +
clad_outer_radius = 0.47500E-02
 +
fuel_length = 1.00
 +
clad_length = 1.00
 +
 +
plenum_length = 0.14656
 +
 +
pellet_roughness = 2.0e-6
 +
fractional_density = 0.951
 +
gadolinia_weight_fraction = 0.0
 +
 +
clad_roughness            = 0.5e-6
 +
coldwork                  = 0.5
 +
clad_oxygen_concentration = 0.0012
 +
fast_neutron_fluence      = 0.0
 +
 +
! Fill gas pressure (Pa)
 +
fill_gas_pressure    = 0.2e6
 +
 +
! initial plenum temperature (K)
 +
fill_gas_temperature = 300.0
 +
 +
! Fill gas fractions
 +
gas_fraction_He  = 1.0
 +
gas_fraction_Ar  = 0.0
 +
gas_fraction_Kr  = 0.0
 +
gas_fraction_Xe  = 0.0
 +
gas_fraction_H2  = 0.0
 +
gas_fraction_N2  = 0.0
 +
gas_fraction_H2O = 0.0
 +
 +
! Rod pitch
 +
pitch = 12.5984e-3
 +
 +
! Number of rods in unit cell (1.0 in square, 0.5 in triangular lattice)
 +
unitcell = 1.0
 +
 +
end rod_B
 
</div>
 
</div>
 
</div>
 
</div>
Line 554: Line 712:
 
'''finix.options'''
 
'''finix.options'''
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
 +
USE from_host
 +
 +
begin options_default
 +
 +
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
! Number of nodes in the thermal/mechanical solution !
 +
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +
! Number of axial nodes needs to match SuperFINIX zmesh
 +
axial_nodes = 18
 +
pellet_radial_nodes = 51
 +
clad_radial_nodes = 21
 +
 +
! Boundary condition is fixed cladding outer temperature
 +
! NB: Values for cladding outer temperature must be given in the scenario
 +
 +
boundary_option = 0
 +
 +
end options_default
 
</div>
 
</div>
 
</div>
 
</div>
Line 560: Line 737:
 
'''finix.scenario'''
 
'''finix.scenario'''
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
 +
USE from_host
 +
 +
! These options get overwritten by ones coming from SuperFINIX
 +
 +
begin scenario_default
 +
 +
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
! Clad temperature history !
 +
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +
! Only one axial zone
 +
clad_temperature_history_zones = 1.0
 +
 +
! Temperature, time pairs for first axial zone
 +
clad_temperature_history(1) = 557.0, 0.0
 +
 +
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
! Coolant pressure history !
 +
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +
! Only one axial zone
 +
coolant_pressure_history_zones = 1.0
 +
 +
! Pressure, time pairs for first axial zone
 +
coolant_pressure_history(1) = 0.5e6, 0.0
 +
 +
end scenario_default
 
</div>
 
</div>
 
</div>
 
</div>

Latest revision as of 15:11, 14 April 2024


General description

In this tutorial, a small modular reactor core consisting of 37 fuel assemblies will be modelled. The active height of the fuel is 100 cm.

Lite loading.png Lite crs.png

The loading consists of six assembly types as shown above and the control rods are divided into safety rods (S) and regulating rods (R).

Lite axial.png

The model is based on the LDR lite benchmark.

Group constant generation

For an overview of generating group constants for Ants using Serpent, see the associated presentation and the group constant generation models in PHYSOR_2024_LDR_lite_GC_inputs.tgz.

Inputs

All inputs are also found in the LDR lite model for PHYSOR 2024 archive along with the Python inputs for running the calculations. See also SMR_modelling_with_Kraken.pdf.

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 rectangular neutronics diffusion

library type polynomial path "./gc/group_constants_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
     nominal_power            50.0e6
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                    50.0e6
          max_outer                10000
          control_variable         keff

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-A6) 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 six assembly types (A1-A6) and two control rod types (R, S), which means that twelve potentially different control rod types could be created (R rod in each 6 assembly types, S rod in each 6 assembly types). However, in the modelled core each assembly type contains just one control rod type (R or S) and therefore, we only have six 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  A4  A6  A4 R04 R05 0
 R03 R04  A5  A3  A2  A3  A5 R04 R03
 R02  A4  A3  A2  A2  A2  A3  A4 R02
 R01  A6  A2  A2  A1  A2  A2  A6 R01
 R02  A4  A3  A2  A2  A2  A3  A4 R02
 R03 R04  A5  A3  A2  A3  A5 R04 R03
   0 R05 R04  A4  A6  A4 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 SA4 SA6 SA4   0   0   0
   0   0 SA5 RA3 RA2 RA3 SA5   0   0
   0 SA4 RA3 RA2 RA2 RA2 RA3 SA4   0
   0 SA6 RA2 RA2 SA1 RA2 RA2 SA6   0
   0 SA4 RA3 RA2 RA2 RA2 RA3 SA4   0
   0   0 SA5 RA3 RA2 RA3 SA5   0   0
   0   0   0 SA4 SA6 SA4   0   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.3 S4.2 S7.2  0    0    0
 0    0   S8.2 R6.3 R3.2 R6.2 S8.1  0    0
 0   S7.4 R6.4 R5.2 R2.2 R5.1 R6.1 S7.1  0
 0   S4.3 R3.3 R2.3 S1.1 R2.1 R3.1 S4.1  0
 0   S7.5 R6.5 R5.3 R2.4 R5.4 R6.8 S7.8  0
 0    0   S8.3 R6.6 R3.4 R6.7 S8.4  0    0
 0    0    0   S7.6 S4.4 S7.7  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-A6) 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_1/CR_0 corresponds to the fuel type FUEL1 in the group constant library, using spacer type 1 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_1/CR_0 ! Grid 1
 8 * fuel1/SPA_0/CR_0 ! fuel
     fuel1/SPA_1/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_1/CR_0 ! Grid 1
 8 * fuel2/SPA_0/CR_0 ! fuel
     fuel2/SPA_1/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_1/CR_0 ! Grid 1
 8 * fuel3/SPA_0/CR_0 ! fuel
     fuel3/SPA_1/CR_0 ! Grid 2
 8 * fuel3/SPA_0/CR_0 ! fuel
    -TRz1       ! Top reflector
    -TRz2       ! Top reflector

! Type A4
fuel type "A4"  nodes
    -BRz1       ! Bottom reflector
    -BRz2       ! Bottom reflector
     fuel4/SPA_1/CR_0 ! Grid 1
 8 * fuel4/SPA_0/CR_0 ! fuel
     fuel4/SPA_1/CR_0 ! Grid 2
 8 * fuel4/SPA_0/CR_0 ! fuel
    -TRz1       ! Top reflector
    -TRz2       ! Top reflector

! Type A5
fuel type "A5"  nodes
    -BRz1       ! Bottom reflector
    -BRz2       ! Bottom reflector
     fuel5/SPA_1/CR_0 ! Grid 1
 8 * fuel5/SPA_0/CR_0 ! fuel
     fuel5/SPA_1/CR_0 ! Grid 2
 8 * fuel5/SPA_0/CR_0 ! fuel
    -TRz1       ! Top reflector
    -TRz2       ! Top reflector

! Type A6
fuel type "A6"  nodes
    -BRz1       ! Bottom reflector
    -BRz2       ! Bottom reflector
     fuel6/SPA_1/CR_0 ! Grid 1
 8 * fuel6/SPA_0/CR_0 ! fuel
     fuel6/SPA_1/CR_0 ! Grid 2
 8 * fuel6/SPA_0/CR_0 ! fuel
    -TRz1       ! Top reflector
    -TRz2       ! Top reflector

Control rod structure

We need to define the safety type and regulating type 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
! CR materials 1 == enriched boron carbide, 2 == inconel (from Serpent branch definitions)
!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! 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_1/CR_1
       8 * fuel1/SPA_0/CR_1
           fuel1/SPA_1/CR_1
       8 * fuel1/SPA_0/CR_1
          -TRz1
          -TRz2
! Nodes of the boron carbide part
          -BRz1
          -BRz2
           fuel1/SPA_1/CR_2
       8 * fuel1/SPA_0/CR_2
           fuel1/SPA_1/CR_2
       8 * fuel1/SPA_0/CR_2
          -TRz1
          -TRz2

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Rod type R inserted to fuel type A2 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
controlrod type "RA2"
           parts 2
           lengths 60 40
           nodes
! Nodes of the inconel part
          -BRz1
          -BRz2
           fuel2/SPA_1/CR_1
       8 * fuel2/SPA_0/CR_1
           fuel2/SPA_1/CR_1
       8 * fuel2/SPA_0/CR_1
          -TRz1
          -TRz2
! Nodes of the boron carbide part
          -BRz1
          -BRz2
           fuel2/SPA_1/CR_2
       8 * fuel2/SPA_0/CR_2
           fuel2/SPA_1/CR_2
       8 * fuel2/SPA_0/CR_2
          -TRz1
          -TRz2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Rod type R inserted to fuel type A3 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
controlrod type "RA3"
           parts 2
           lengths 60 40
           nodes
! Nodes of the inconel part
          -BRz1
          -BRz2
           fuel3/SPA_1/CR_1
       8 * fuel3/SPA_0/CR_1
           fuel3/SPA_1/CR_1
       8 * fuel3/SPA_0/CR_1
          -TRz1
          -TRz2
! Nodes of the boron carbide part
          -BRz1
          -BRz2
           fuel3/SPA_1/CR_2
       8 * fuel3/SPA_0/CR_2
           fuel3/SPA_1/CR_2
       8 * fuel3/SPA_0/CR_2
          -TRz1
          -TRz2

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Rod type S inserted to fuel type A4 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
controlrod type "SA4"
           parts 2
           lengths 5 95
           nodes
! Nodes of the inconel part
          -BRz1
          -BRz2
           fuel4/SPA_1/CR_1
       8 * fuel4/SPA_0/CR_1
           fuel4/SPA_1/CR_1
       8 * fuel4/SPA_0/CR_1
          -TRz1
          -TRz2
! Nodes of the boron carbide part
          -BRz1
          -BRz2
           fuel4/SPA_1/CR_2
       8 * fuel4/SPA_0/CR_2
           fuel4/SPA_1/CR_2
       8 * fuel4/SPA_0/CR_2
          -TRz1
          -TRz2

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Rod type S inserted to fuel type A5 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
controlrod type "SA5"
           parts 2
           lengths 5 95
           nodes
! Nodes of the inconel part
          -BRz1
          -BRz2
           fuel5/SPA_1/CR_1
       8 * fuel5/SPA_0/CR_1
           fuel5/SPA_1/CR_1
       8 * fuel5/SPA_0/CR_1
          -TRz1
          -TRz2
! Nodes of the boron carbide part
          -BRz1
          -BRz2
           fuel5/SPA_1/CR_2
       8 * fuel5/SPA_0/CR_2
           fuel5/SPA_1/CR_2
       8 * fuel5/SPA_0/CR_2
          -TRz1
          -TRz2

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Rod type S inserted to fuel type A6 !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
controlrod type "SA6"
           parts 2
           lengths 5 95
           nodes
! Nodes of the inconel part
          -BRz1
          -BRz2
           fuel6/SPA_1/CR_1
       8 * fuel6/SPA_0/CR_1
           fuel6/SPA_1/CR_1
       8 * fuel6/SPA_0/CR_1
          -TRz1
          -TRz2
! Nodes of the boron carbide part
          -BRz1
          -BRz2
           fuel6/SPA_1/CR_2
       8 * fuel6/SPA_0/CR_2
           fuel6/SPA_1/CR_2
       8 * fuel6/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            1
    nIterMax           500
    urfU               0.125
    urfP               0.125
    urfH               0.25
    gravity            -9.81
    writeFormat        ascii
    materialProperties libTable
    thermalBC          power
}

# ---

inlet
{
    type               massFlowInlet
    massFlowRate       6.6   0.0
    pressure           6.1e5
    temperature        367    367
    volumeFraction     1.0    0.0
}

outlet
{
    pressure           6.2e5
    temperature        380 380
    volumeFraction     1.0 0.0
}

fuelType rr
{
    nCells             22

    ! Align bottom of active core to z = 0.0

    bottomElevation    -0.12

    cellHeight
       0.06                      ! Ants support plate should map to this
       0.06                      ! Ants bottom plugs should map to this
       0.05715000                ! Grid 1
  8 *  0.05535625                ! Fuel
       0.05715000                ! Grid 2
  8 *  0.05535625                ! Fuel
       0.06                      ! Ants top plenum should map to this
       0.06                      ! Ants final node should map to this

    hydraulicDiameter   22 * 1.153052E-02

    thermalDiameter     22 * 1.278587E-02

    porosity            22 * 5.446598E-01

}

fuelType f1
{
    nCells             22

    ! Align bottom of active core to z = 0.0

    bottomElevation    -0.12

    cellHeight
       0.06                      ! Ants support plate should map to this
       0.06                      ! Ants bottom plugs should map to this
       0.05715000                ! Grid 1
  8 *  0.05535625                ! Fuel
       0.05715000                ! Grid 2
  8 *  0.05535625                ! Fuel
       0.06                      ! Ants top plenum should map to this
       0.06                      ! Ants final node should map to this

    hydraulicDiameter   22 * 1.153052E-02

    thermalDiameter     22 * 1.278587E-02

    porosity            22 * 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
}


In the simulationControl group general parameters related to the solution flow are defined. In this case, a two phase flow is solved. The required level of under-relaxation depends on the modelled case and here the under-relaxation factors have been reduced to ensure convergence. Material properties are evaluated based on pretabulated set of material properties. For the thermal boundary condition we use power meaning that power in each cell must be given to Kharon with kharon_if_power input field using Cerberus.

The inlet group defines the inlet boundary conditions and there a several inlet boundary condition types. Here, a mass flow boundary condition (massFlowInlet) specifying phase mass flow rates per assembly is used. In this case, we have only liquid phase at 367.6 K at the inlet and the liquid mass flow rate per assembly is 6.36 kg/s. With massFlowInlet the pressure value is only used for the initialization of the flow.

The outlet group defines the outlet boundary conditions. Pressure along with the phase temperatures and flow rates for back flow must be defined in every simulation. Here, the outlet temperature has been set to 6.20e5 Pa.

The geometry of the modelled system is defined with fuelType, core and loadPattern groups. fuelType group are used to define a fuel assembly type and there can be several different types.

SuperFINIX

SuperFINIX works as a manager of a large number of individual FINIX solvers, distributing the boundary conditions and work to the FINIX rods, collecting the results from them and communicating the core-level fields with Cerberus. SuperFINIX input thus consists mostly of information related to:

  1. What kinds of FINIX solvers to initialize, in the form of options given to the rodtype card and the FINIX input files linked with set optionsfile, set rodfile and set scenariofile "./finix_files/finix.scenario".
  2. The core geometry, set up by defining a single or multilevel lattice using the lat card and indicating the top lattice with set toplattice.
  3. The radial and axial meshing used for communicating input (power) and output (temperature) fields defined with set inrmesh, set outrmesh and set zmesh.
Error creating thumbnail: Unable to save thumbnail to destination

For these calculations we will use an average fuel rod approach with the same type of fuel rod instance in each of the fuel assemblies. Since we set the multiplicity of the rod type to 264, the assembly level power distributed to SuperFINIX automatically gets divided by 264 (the number of rods in the assembly) before being distributed to the FINIX solver.

SuperFINIX.inp

% --- Set FINIX 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

The FINIX blocks used in the SuperFINIX rodtype definition need to be defined in the options, rod and scenario files linked to the SuperFINIX input. See section 8.7 in the FINIX manual for further information on the FINIX input files.

finix.rods

USE from_host

begin rod_B

pellet_inner_radius = 0.0
pellet_outer_radius = 0.40950E-02
clad_inner_radius = 0.41790E-02
clad_outer_radius = 0.47500E-02
fuel_length = 1.00
clad_length = 1.00

plenum_length = 0.14656

pellet_roughness = 2.0e-6
fractional_density = 0.951
gadolinia_weight_fraction = 0.0

clad_roughness            = 0.5e-6
coldwork                  = 0.5
clad_oxygen_concentration = 0.0012
fast_neutron_fluence      = 0.0

! Fill gas pressure (Pa)
fill_gas_pressure    = 0.2e6

! initial plenum temperature (K)
fill_gas_temperature = 300.0

! Fill gas fractions
gas_fraction_He  = 1.0
gas_fraction_Ar  = 0.0
gas_fraction_Kr  = 0.0
gas_fraction_Xe  = 0.0
gas_fraction_H2  = 0.0
gas_fraction_N2  = 0.0
gas_fraction_H2O = 0.0

! Rod pitch
pitch = 12.5984e-3

! Number of rods in unit cell (1.0 in square, 0.5 in triangular lattice)
unitcell = 1.0

end rod_B

finix.options

USE from_host

begin options_default

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Number of nodes in the thermal/mechanical solution !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

! Number of axial nodes needs to match SuperFINIX zmesh
axial_nodes = 18
pellet_radial_nodes = 51
clad_radial_nodes = 21

! Boundary condition is fixed cladding outer temperature
! NB: Values for cladding outer temperature must be given in the scenario

boundary_option = 0

end options_default

finix.scenario

USE from_host

! These options get overwritten by ones coming from SuperFINIX

begin scenario_default

!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Clad temperature history !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

! Only one axial zone
clad_temperature_history_zones = 1.0

! Temperature, time pairs for first axial zone
clad_temperature_history(1) = 557.0, 0.0

!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Coolant pressure history !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

! Only one axial zone
coolant_pressure_history_zones = 1.0

! Pressure, time pairs for first axial zone
coolant_pressure_history(1) = 0.5e6, 0.0

end scenario_default