FFTF IFR-1 Experiment
Overview
The IFR-1 experiment tested a full-size fuel subassembly for the Integral Fast Reactor (IFR) concept. Unlike most IFR experiments, the subassembly was too large to fit in the EBR-II reactor, so the experiment was performed in the Fast Flux Test Facility (FFTF). It was irradiated between September 1986 and October 1988 to a peak burnup of approximately 10 at%. Researchers were interested in comparing the neutronic and mechanical effects of full-length pins with those seen in EBR-II's shorter test pins.
The FFTF is a loop-type sodium-cooled fast-spectrum test reactor that operated between 1982 and 1992. It is located at the 400 Area of the Hanford Site in Hanford, WA. Compared to reactors such as EBR-II, FFTF boasts a large experimental volume and transient testing capabilities.
The experiment is documented in Porter and Tsai (2011). The BISON problem development is documented in Greenquist et al. (2020) and Greenquist et al. (2021).
Test Description
The IFR-1 experiment consisted of a 169-pin subassembly irradiated in FFTF under steady-state conditions to a target burnup of 10 at%. The main objective of the experiment was to compare the behavior of full sized IFR fuel pins to the smaller test pins irradiated in EBR-II.
18 pins contained U-19Pu-10Zr fuel, 19 pins contained U-8Pu-10Zr fuel, and the remainder contained U-10Zr fuel. All of the pins were clad in 20% cold-worked D9 stainless steel. In order to maximize the available experimental data to compare against while minimizing the number of simulations, this benchmark contains only three generic pins to represent each of the three compositions. Each simulated pin is compared against all available PIE data and legacy calculations for the corresponding composition.
Rod Design Specifications
The pins consisted of three fuel slugs lined with depleted U-10Zr breeder blankets on the top and bottom. The nomiinal dimensions are shown in Figure 1.

Figure 1: IFR-1 simulation cross section (not to scale) and dimensions. Black text indicates values from Porter and Tsai (2011) and blue text indicates values that had to be assumed or inferred.
Operating Conditions and Irradiation History
The LHR profile is separated into two functions: the time-dependent average linear heat rate (ALHR), , and the spatially-dependent axial peaking factor, : where represents time in seconds and represents the axial position in meters. has the additional constraint that the average peaking factor of the length of the fuel must be equal to 1.
The IFR-1 experiment was irradiated over the course of six FFTF operating cycles: 9A, 9B, 9C, 10A-1, 10A-2, and 10B. The equivalent full-power days (EFPDs) of each cycle were recorded in Porter and Tsai (2011). The ALHR was also given at the beginning of cycle (BOC) and end of cycle (EOC) for each cycle except for cycle 10A-1 EOC. For the simulation, the experimental values were used except that cycle 10A-1 had to be assumed to maintain constant power. One-hour transitions were added between cycles to reduce stress on the numerical solver. The ALHR is shown in Figure 2.

Figure 2: ALHR history for the IFR-1 assessment case.
The axial peaking factor is made up of a fourth-order polynomial fit to the power curve calculated in Porter and Tsai (2011) combined with an approximate profile for the blankets derived from isotopic gamma scans of Rh. It is shown in Figure 3 and compared against the profile calculated in Porter and Tsai (2011).

Figure 3: Axial peaking factor function at 5% burnup and an ALHR of 37.2 kW m compared with the power profile calculated in Porter and Tsai (2011)
Model Description
Greenquist et al. (2020) includes several versions of the simulation including a case using friction and a sensitivity analysis. Only the "baseline" case is included here.
Geometry and Mesh
The 2D-RZ mesh is generated using MOOSE's GeneratedMeshGenerator system. It includes separate blocks for cladding, blankets, and the fuel slug.
Materials and Behavioral Models
The same models are used in each simulation, but some constants are varied depending on the composition of each pin.
Input files
The input file and supporting files are located within the directory assessment/metallic_fuel/FFTF/IFR1:
# IFR-1 ASSESSMENT CASE
# BISON recreation of the 169-pin IFR-1 experiment, which was irradiated in the
# FFTF from 9/1986 to 10/1988 to a peak burnup of about 10 at%. The assessment
# consists of three generic pins (U-10Zr, U-8Pu-10Zr, and U-19Pu-10Zr) which
# are compared against all available legacy calculations and PIE measurements
# for all 169 pins in the experiment. Composition-specific values are stored in
# three '.params' files. Units are in standard SI: J, K, kg, m, Pa, s.
# For a more complete description of the experiment, see [Dodds, 1986-1],
# [Dodds, 1986-2], [Porter and Tsai, 2011], and [Tsai et al., 1986]. For a more
# complete description of development and results of this assessment, see
# [Greenquist et al., 2021].
#
# To simulate one of the cases, use the combined input file option
# with one of the '.params' files. For example:
# mpiexec -n 4 ../../../../../bison-opt -i 'IFR1_base.i U-10Zr.params'
initial_fuel_density = 15800
[GlobalParams<<<{"href": "../../../../syntax/GlobalParams/index.html"}>>>]
dim = 2
order = SECOND
family = LAGRANGE
elem_type = QUAD8
energy_per_fission = 3.2e-11 # [Shultis and Faw, 2008]
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
temperature = T
[]
[Problem<<<{"href": "../../../../syntax/Problem/index.html"}>>>]
type = ReferenceResidualProblem
reference_vector = ref
extra_tag_vectors = ref
[]
[Mesh<<<{"href": "../../../../syntax/Mesh/index.html"}>>>]
coord_type = RZ
# Mesh includes a fuel slug, top and bottom blanket slugs, and cladding. All
# dimensions are in meters (m). Nominal dimensions come from [Dodds, 1986-2].
type = MeshGeneratorMesh
patch_size = 30
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
# build cladding
[bottom_plug]
type = GeneratedMeshGenerator<<<{"description": "Create a line, square, or cube mesh with uniformly spaced or biased elements.", "href": "../../../../source/meshgenerators/GeneratedMeshGenerator.html"}>>>
xmin<<<{"description": "Lower X Coordinate of the generated mesh"}>>> = 0.0
xmax<<<{"description": "Upper X Coordinate of the generated mesh"}>>> = 0.00287
nx<<<{"description": "Number of elements in the X direction"}>>> = 3
ymin<<<{"description": "Lower Y Coordinate of the generated mesh"}>>> = 0.0
ymax<<<{"description": "Upper Y Coordinate of the generated mesh"}>>> = 0.015
ny<<<{"description": "Number of elements in the Y direction"}>>> = 5
[]
[bottom_corner]
type = GeneratedMeshGenerator<<<{"description": "Create a line, square, or cube mesh with uniformly spaced or biased elements.", "href": "../../../../source/meshgenerators/GeneratedMeshGenerator.html"}>>>
xmin<<<{"description": "Lower X Coordinate of the generated mesh"}>>> = 0.00287
xmax<<<{"description": "Upper X Coordinate of the generated mesh"}>>> = 0.00343
nx<<<{"description": "Number of elements in the X direction"}>>> = 4
ymin<<<{"description": "Lower Y Coordinate of the generated mesh"}>>> = 0.0
ymax<<<{"description": "Upper Y Coordinate of the generated mesh"}>>> = 0.015
ny<<<{"description": "Number of elements in the Y direction"}>>> = 5
[]
[bottom_corner_rename_side]
type = SideSetsFromNormalsGenerator<<<{"description": "Adds a new named sideset to the mesh for all faces matching the specified normal.", "href": "../../../../source/meshgenerators/SideSetsFromNormalsGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = bottom_corner
normals<<<{"description": "A list of normals for which to start painting sidesets"}>>> = '0 1 0'
new_boundary<<<{"description": "The list of boundary names to create on the supplied subdomain"}>>> = new_side
[]
[combine_bottom_and_bottom_corner]
type = StitchedMeshGenerator<<<{"description": "Allows multiple mesh files to be stitched together to form a single mesh.", "href": "../../../../source/meshgenerators/StitchedMeshGenerator.html"}>>>
inputs<<<{"description": "The input MeshGenerators."}>>> = 'bottom_plug bottom_corner_rename_side'
stitch_boundaries_pairs<<<{"description": "Pairs of boundaries to be stitched together between the 1st mesh in inputs and each consecutive mesh"}>>> = 'right left'
clear_stitched_boundary_ids<<<{"description": "Whether or not to clear the stitched boundary IDs"}>>> = true
prevent_boundary_ids_overlap<<<{"description": "Whether to re-number boundaries in stitched meshes to prevent merging of unrelated boundaries"}>>> = false
[]
[cladding_wall]
type = GeneratedMeshGenerator<<<{"description": "Create a line, square, or cube mesh with uniformly spaced or biased elements.", "href": "../../../../source/meshgenerators/GeneratedMeshGenerator.html"}>>>
xmin<<<{"description": "Lower X Coordinate of the generated mesh"}>>> = 0.00287
xmax<<<{"description": "Upper X Coordinate of the generated mesh"}>>> = 0.00343
nx<<<{"description": "Number of elements in the X direction"}>>> = 4
ymin<<<{"description": "Lower Y Coordinate of the generated mesh"}>>> = 0.015
ymax<<<{"description": "Upper Y Coordinate of the generated mesh"}>>> = 2.239
ny<<<{"description": "Number of elements in the Y direction"}>>> = 400
[]
[cladding_wall_rename_side]
type = SideSetsFromNormalsGenerator<<<{"description": "Adds a new named sideset to the mesh for all faces matching the specified normal.", "href": "../../../../source/meshgenerators/SideSetsFromNormalsGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = cladding_wall
normals<<<{"description": "A list of normals for which to start painting sidesets"}>>> = '0 1 0'
new_boundary<<<{"description": "The list of boundary names to create on the supplied subdomain"}>>> = new_side
[]
[combine_bottom_and_wall]
type = StitchedMeshGenerator<<<{"description": "Allows multiple mesh files to be stitched together to form a single mesh.", "href": "../../../../source/meshgenerators/StitchedMeshGenerator.html"}>>>
inputs<<<{"description": "The input MeshGenerators."}>>> = 'combine_bottom_and_bottom_corner cladding_wall_rename_side'
stitch_boundaries_pairs<<<{"description": "Pairs of boundaries to be stitched together between the 1st mesh in inputs and each consecutive mesh"}>>> = '4 bottom'
clear_stitched_boundary_ids<<<{"description": "Whether or not to clear the stitched boundary IDs"}>>> = true
prevent_boundary_ids_overlap<<<{"description": "Whether to re-number boundaries in stitched meshes to prevent merging of unrelated boundaries"}>>> = false
[]
[top_corner]
type = GeneratedMeshGenerator<<<{"description": "Create a line, square, or cube mesh with uniformly spaced or biased elements.", "href": "../../../../source/meshgenerators/GeneratedMeshGenerator.html"}>>>
xmin<<<{"description": "Lower X Coordinate of the generated mesh"}>>> = 0.00287
xmax<<<{"description": "Upper X Coordinate of the generated mesh"}>>> = 0.00343
nx<<<{"description": "Number of elements in the X direction"}>>> = 4
ymin<<<{"description": "Lower Y Coordinate of the generated mesh"}>>> = 2.239
ymax<<<{"description": "Upper Y Coordinate of the generated mesh"}>>> = 2.254
ny<<<{"description": "Number of elements in the Y direction"}>>> = 5
[]
[top_corner_rename_side]
type = SideSetsFromNormalsGenerator<<<{"description": "Adds a new named sideset to the mesh for all faces matching the specified normal.", "href": "../../../../source/meshgenerators/SideSetsFromNormalsGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = top_corner
normals<<<{"description": "A list of normals for which to start painting sidesets"}>>> = '-1 0 0'
new_boundary<<<{"description": "The list of boundary names to create on the supplied subdomain"}>>> = new_side
[]
[combine_wall_and_top_corner]
type = StitchedMeshGenerator<<<{"description": "Allows multiple mesh files to be stitched together to form a single mesh.", "href": "../../../../source/meshgenerators/StitchedMeshGenerator.html"}>>>
inputs<<<{"description": "The input MeshGenerators."}>>> = 'combine_bottom_and_wall top_corner_rename_side'
stitch_boundaries_pairs<<<{"description": "Pairs of boundaries to be stitched together between the 1st mesh in inputs and each consecutive mesh"}>>> = '4 bottom'
clear_stitched_boundary_ids<<<{"description": "Whether or not to clear the stitched boundary IDs"}>>> = true
prevent_boundary_ids_overlap<<<{"description": "Whether to re-number boundaries in stitched meshes to prevent merging of unrelated boundaries"}>>> = false
[]
[top_plug]
type = GeneratedMeshGenerator<<<{"description": "Create a line, square, or cube mesh with uniformly spaced or biased elements.", "href": "../../../../source/meshgenerators/GeneratedMeshGenerator.html"}>>>
xmin<<<{"description": "Lower X Coordinate of the generated mesh"}>>> = 0.0
xmax<<<{"description": "Upper X Coordinate of the generated mesh"}>>> = 0.00287
nx<<<{"description": "Number of elements in the X direction"}>>> = 3
ymin<<<{"description": "Lower Y Coordinate of the generated mesh"}>>> = 2.239
ymax<<<{"description": "Upper Y Coordinate of the generated mesh"}>>> = 2.254
ny<<<{"description": "Number of elements in the Y direction"}>>> = 5
[]
[cladding_all]
type = StitchedMeshGenerator<<<{"description": "Allows multiple mesh files to be stitched together to form a single mesh.", "href": "../../../../source/meshgenerators/StitchedMeshGenerator.html"}>>>
inputs<<<{"description": "The input MeshGenerators."}>>> = 'combine_wall_and_top_corner top_plug'
stitch_boundaries_pairs<<<{"description": "Pairs of boundaries to be stitched together between the 1st mesh in inputs and each consecutive mesh"}>>> = '4 right'
clear_stitched_boundary_ids<<<{"description": "Whether or not to clear the stitched boundary IDs"}>>> = true
prevent_boundary_ids_overlap<<<{"description": "Whether to re-number boundaries in stitched meshes to prevent merging of unrelated boundaries"}>>> = false
[]
# build fuel and blanket
[bottom_blanket]
type = GeneratedMeshGenerator<<<{"description": "Create a line, square, or cube mesh with uniformly spaced or biased elements.", "href": "../../../../source/meshgenerators/GeneratedMeshGenerator.html"}>>>
xmin<<<{"description": "Lower X Coordinate of the generated mesh"}>>> = 0.0
xmax<<<{"description": "Upper X Coordinate of the generated mesh"}>>> = 0.00249
nx<<<{"description": "Number of elements in the X direction"}>>> = 6
ymin<<<{"description": "Lower Y Coordinate of the generated mesh"}>>> = 0.0162
ymax<<<{"description": "Upper Y Coordinate of the generated mesh"}>>> = 0.1812
ny<<<{"description": "Number of elements in the Y direction"}>>> = 40
[]
[fuel_slug]
type = GeneratedMeshGenerator<<<{"description": "Create a line, square, or cube mesh with uniformly spaced or biased elements.", "href": "../../../../source/meshgenerators/GeneratedMeshGenerator.html"}>>>
xmin<<<{"description": "Lower X Coordinate of the generated mesh"}>>> = 0.0
xmax<<<{"description": "Upper X Coordinate of the generated mesh"}>>> = 0.00249
nx<<<{"description": "Number of elements in the X direction"}>>> = 6
ymin<<<{"description": "Lower Y Coordinate of the generated mesh"}>>> = 0.1812
ymax<<<{"description": "Upper Y Coordinate of the generated mesh"}>>> = 1.0956
ny<<<{"description": "Number of elements in the Y direction"}>>> = 300
[]
[top_blanket]
type = GeneratedMeshGenerator<<<{"description": "Create a line, square, or cube mesh with uniformly spaced or biased elements.", "href": "../../../../source/meshgenerators/GeneratedMeshGenerator.html"}>>>
xmin<<<{"description": "Lower X Coordinate of the generated mesh"}>>> = 0.0
xmax<<<{"description": "Upper X Coordinate of the generated mesh"}>>> = 0.00249
nx<<<{"description": "Number of elements in the X direction"}>>> = 6
ymin<<<{"description": "Lower Y Coordinate of the generated mesh"}>>> = 1.0956
ymax<<<{"description": "Upper Y Coordinate of the generated mesh"}>>> = 1.2606
ny<<<{"description": "Number of elements in the Y direction"}>>> = 40
[]
[fuel_two]
type = StitchedMeshGenerator<<<{"description": "Allows multiple mesh files to be stitched together to form a single mesh.", "href": "../../../../source/meshgenerators/StitchedMeshGenerator.html"}>>>
inputs<<<{"description": "The input MeshGenerators."}>>> = 'bottom_blanket fuel_slug'
stitch_boundaries_pairs<<<{"description": "Pairs of boundaries to be stitched together between the 1st mesh in inputs and each consecutive mesh"}>>> = 'top bottom'
clear_stitched_boundary_ids<<<{"description": "Whether or not to clear the stitched boundary IDs"}>>> = true
prevent_boundary_ids_overlap<<<{"description": "Whether to re-number boundaries in stitched meshes to prevent merging of unrelated boundaries"}>>> = false
[]
[fuel_all]
type = StitchedMeshGenerator<<<{"description": "Allows multiple mesh files to be stitched together to form a single mesh.", "href": "../../../../source/meshgenerators/StitchedMeshGenerator.html"}>>>
inputs<<<{"description": "The input MeshGenerators."}>>> = 'fuel_two top_blanket'
stitch_boundaries_pairs<<<{"description": "Pairs of boundaries to be stitched together between the 1st mesh in inputs and each consecutive mesh"}>>> = 'top bottom'
clear_stitched_boundary_ids<<<{"description": "Whether or not to clear the stitched boundary IDs"}>>> = true
prevent_boundary_ids_overlap<<<{"description": "Whether to re-number boundaries in stitched meshes to prevent merging of unrelated boundaries"}>>> = false
[]
# combine and name subdomains
[combine_fuel_cladding]
type = CombinerGenerator<<<{"description": "Combine multiple meshes (or copies of one mesh) together into one (disjoint) mesh. Can optionally translate those meshes before combining them.", "href": "../../../../source/meshgenerators/CombinerGenerator.html"}>>>
inputs<<<{"description": "The input MeshGenerators. This can either be N generators or 1 generator. If only 1 is given then 'positions' must also be given."}>>> = 'cladding_all fuel_all'
[]
[name_cladding]
type = SubdomainBoundingBoxGenerator<<<{"description": "Changes the subdomain ID of elements either (XOR) inside or outside the specified box to the specified ID.", "href": "../../../../source/meshgenerators/SubdomainBoundingBoxGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = combine_fuel_cladding
bottom_left<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0.0 0.0 0.0'
top_right<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0.00343 2.254 0'
location<<<{"description": "Control of where the subdomain id is to be set"}>>> = INSIDE
block_id<<<{"description": "Subdomain id to set for inside/outside the bounding box"}>>> = 0
block_name<<<{"description": "Subdomain name to set for inside/outside the bounding box (optional)"}>>> = clad
[]
[name_blanket]
type = SubdomainBoundingBoxGenerator<<<{"description": "Changes the subdomain ID of elements either (XOR) inside or outside the specified box to the specified ID.", "href": "../../../../source/meshgenerators/SubdomainBoundingBoxGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = name_cladding
bottom_left<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0.0 0.0162 0.0'
top_right<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0.00249 1.2606 0.0'
location<<<{"description": "Control of where the subdomain id is to be set"}>>> = INSIDE
block_id<<<{"description": "Subdomain id to set for inside/outside the bounding box"}>>> = 1
block_name<<<{"description": "Subdomain name to set for inside/outside the bounding box (optional)"}>>> = blanket
[]
[name_fuel]
type = SubdomainBoundingBoxGenerator<<<{"description": "Changes the subdomain ID of elements either (XOR) inside or outside the specified box to the specified ID.", "href": "../../../../source/meshgenerators/SubdomainBoundingBoxGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = name_blanket
bottom_left<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0.0 0.1812 0.0'
top_right<<<{"description": "The bottom left point (in x,y,z with spaces in-between)."}>>> = '0.00249 1.0956 0.0'
location<<<{"description": "Control of where the subdomain id is to be set"}>>> = INSIDE
block_id<<<{"description": "Subdomain id to set for inside/outside the bounding box"}>>> = 2
block_name<<<{"description": "Subdomain name to set for inside/outside the bounding box (optional)"}>>> = pellet
[]
# name boundaries
[name_centerline]
type = SideSetsFromNormalsGenerator<<<{"description": "Adds a new named sideset to the mesh for all faces matching the specified normal.", "href": "../../../../source/meshgenerators/SideSetsFromNormalsGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = name_fuel
normals<<<{"description": "A list of normals for which to start painting sidesets"}>>> = '-1 0 0'
new_boundary<<<{"description": "The list of boundary names to create on the supplied subdomain"}>>> = centerline
replace<<<{"description": "If true, replace the old sidesets. If false, the current sidesets (if any) will be preserved."}>>> = true
[]
[name_slug_outer_surface]
type = SideSetsFromNormalsGenerator<<<{"description": "Adds a new named sideset to the mesh for all faces matching the specified normal.", "href": "../../../../source/meshgenerators/SideSetsFromNormalsGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = name_centerline
normals<<<{"description": "A list of normals for which to start painting sidesets"}>>> = '1 0 0'
new_boundary<<<{"description": "The list of boundary names to create on the supplied subdomain"}>>> = pellet_outer_radial_surface
replace<<<{"description": "If true, replace the old sidesets. If false, the current sidesets (if any) will be preserved."}>>> = true
[]
[name_slug_ends]
type = SideSetsFromPointsGenerator<<<{"description": "Adds a new sideset starting at the specified point containing all connected element faces with the same normal.", "href": "../../../../source/meshgenerators/SideSetsFromPointsGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = name_slug_outer_surface
points<<<{"description": "A list of points from which to start painting sidesets"}>>> = '0.50e-3 0.0162 0.0
0.50e-3 1.2606 0.0'
new_boundary<<<{"description": "The list of boundary names to create on the supplied subdomain"}>>> = 'bottom_of_bottom_pellet top_of_top_pellet'
replace<<<{"description": "If true, replace the old sidesets. If false, the current sidesets (if any) will be preserved."}>>> = true
[]
[name_cladding_inside]
type = SideSetsFromPointsGenerator<<<{"description": "Adds a new sideset starting at the specified point containing all connected element faces with the same normal.", "href": "../../../../source/meshgenerators/SideSetsFromPointsGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = name_slug_ends
points<<<{"description": "A list of points from which to start painting sidesets"}>>> = '0.50e-3 0.015 0.0
0.00287 1.0956 0.0
0.50e-3 2.239 0.0'
new_boundary<<<{"description": "The list of boundary names to create on the supplied subdomain"}>>> = 'clad_inside_bottom clad_inside_right clad_inside_top'
replace<<<{"description": "If true, replace the old sidesets. If false, the current sidesets (if any) will be preserved."}>>> = true
[]
[name_cladding_outer_surface]
type = SideSetsFromPointsGenerator<<<{"description": "Adds a new sideset starting at the specified point containing all connected element faces with the same normal.", "href": "../../../../source/meshgenerators/SideSetsFromPointsGenerator.html"}>>>
input<<<{"description": "The mesh we want to modify"}>>> = name_cladding_inside
points<<<{"description": "A list of points from which to start painting sidesets"}>>> = '0.00343 1.0956 0.0
0.50e-3 0.0 0.0
0.50e-3 2.254 0.0'
new_boundary<<<{"description": "The list of boundary names to create on the supplied subdomain"}>>> = 'clad_outside_right clad_outside_bottom clad_outside_top'
replace<<<{"description": "If true, replace the old sidesets. If false, the current sidesets (if any) will be preserved."}>>> = true
[]
[]
[Variables<<<{"href": "../../../../syntax/Variables/index.html"}>>>]
[T] # Temperature (K)
initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 298
[]
[]
[AuxVariables<<<{"href": "../../../../syntax/AuxVariables/index.html"}>>>]
[gap_conductance]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[fuel_clad_gap_width]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = LAGRANGE
[]
[element_failed]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[fuel_volumetric_strain]
block = 'pellet blanket'
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[clad_hoop_stress]
block = clad
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[clad_hoop_creep_strain]
block = clad
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[clad_hoop_elastic_strain]
block = clad
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[clad_hoop_total_strain]
block = clad
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[local_power]
block = 'pellet blanket'
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[T_coolant]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[pin_lhr]
block = 'pellet blanket'
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[eutectic_thickness]
block = clad
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[]
[Functions<<<{"href": "../../../../syntax/Functions/index.html"}>>>]
[assembly_lhr_avg_function]
# Subassembly average power as a function of time. x: time (s), y: Average
# LHGR (W/m). See [Greenquist et al., 2021].
type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../../../source/functions/PiecewiseLinear.html"}>>>
x<<<{"description": "The abscissa values"}>>> = '0 3600 11900880 11904480 21097440 21101040 29542320 29545920
35274240 35277840 42665040 42668640 53615520 53619120 53705520 53791920'
y<<<{"description": "The ordinate values"}>>> = '0 38276 36089 33902 31988 33355 31988 30074
29254 27614 25153 26520 26247 26.2 26.2 26.2'
[]
[lhr_peaking_factor_function]
# Axial variation from the average LHGR. See [Porter and Tsai, 2011] and
# [Greenquist et al., 2021].
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'a0 a1 a2 a3 a4 mb bb mt bt
z_bot z_top bu_final bu_now'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = '0.68687 2.6352 -3.20026 1.35e-5 2.69e-5 0.279 0.084 -0.301 0.416
0.1812 1.0956 0.05 burnup_max'
expression<<<{"description": "The user defined function."}>>> = 'bu_frac := bu_now / bu_final;
p_bot := (mb * y + bb) * bu_frac;
p_top := (mt * y + bt) * bu_frac;
z_bbot := 0.0162; p_b := if(y < z_bbot, 0, p_bot);
z_btop := 1.2606; p_t := if(y > z_btop, 0, p_top);
z1 := y - z_bot;
p_mid := a0 + a1 * z1 + a2 * z1^2 + a3 * z1^3 + a4 * z1^4;
if(y < z_bot, p_b, if(y > z_top, p_t, p_mid))'
[]
[pin_lhr_function]
type = CompositeFunction<<<{"description": "Multiplies an arbitrary set of functions together", "href": "../../../../source/functions/CompositeFunction.html"}>>>
functions<<<{"description": "The functions to be multiplied together."}>>> = 'assembly_lhr_avg_function lhr_peaking_factor_function'
[]
[coolant_flux_function]
# Subassembly coolant mass flux. x: time (s), y: flux (kg m^-2 s^-1). See
# [Porter and Tsai, 2011].
type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../../../source/functions/PiecewiseLinear.html"}>>>
x<<<{"description": "The abscissa values"}>>> = '0 3600 11900880 11904480 21097440 21101040 29542320 29545920
42665040 42668640 53615520 53619120 53791920'
y<<<{"description": "The ordinate values"}>>> = '5690 5740 5740 5900 5900 5930 5930 6040
6040 6090 6090 5690 5690'
[]
[coolant_pressure_function]
# Constant coolant inlet pressure (Pa) taken from [Cabell, 1980].
type = ConstantFunction<<<{"description": "A function that returns a constant value as defined by an input parameter.", "href": "../../../../source/functions/ConstantFunction.html"}>>>
value<<<{"description": "The constant value"}>>> = 1018327
[]
[coolant_T_in_function]
# Sodium coolant inlet temperature (K). See [Porter and Tsai, 2011] and
# [Greenquist et al., 2021].
type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../../../source/functions/PiecewiseLinear.html"}>>>
x<<<{"description": "The abscissa values"}>>> = '0 3600 53619120 53705520 53791920'
y<<<{"description": "The ordinate values"}>>> = '298.0 633.15 633.15 305.0 305.0'
[]
[sodium_volume_function]
# The initial sodium height is assumed to be equal to the initial fuel
# height and sodium infiltration is ignored.
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'pellet_outer_radius cladding_gap_width blanket_top blanket_bottom'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = '0.00249 0.00038 1.2606 0.0162'
expression<<<{"description": "The user defined function."}>>> = 'pi * ((pellet_outer_radius + cladding_gap_width)^2 -
pellet_outer_radius^2) * (blanket_top - blanket_bottom)'
[]
[gas_volume_function]
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'clad_internal_volume fuel_volume sodium_volume'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = 'clad_internal_volume fuel_volume sodium_volume'
expression<<<{"description": "The user defined function."}>>> = 'abs(clad_internal_volume) - abs(fuel_volume) - abs(sodium_volume)'
[]
[sodium_conductivity_function]
# Thermal conductivity (W m^-1 K^-1) of the pin gap sodium according to
# [Fink and Leibowitz, 1995]
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'A B C D'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = '124.67 -0.11381 5.5226e-5 -1.1842e-8'
expression<<<{"description": "The user defined function."}>>> = 'A + B * t + C * t^2 + D * t^3'
[]
[creep_timestep_min_function]
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'creep_timestep_fuel creep_timestep_blanket creep_timestep_clad'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = 'creep_timestep_fuel creep_timestep_blanket creep_timestep_clad'
expression<<<{"description": "The user defined function."}>>> = 'min(min(creep_timestep_fuel, creep_timestep_blanket),
creep_timestep_clad)'
[]
[fuel_axial_elongation_max_pct_function]
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'fuel_axial_elongation_min fuel_axial_elongation_max pellet_height'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = 'fuel_axial_elongation_min fuel_axial_elongation_max 0.9144'
expression<<<{"description": "The user defined function."}>>> = '(fuel_axial_elongation_max - fuel_axial_elongation_min) /
pellet_height * 100'
[]
[fuel_radial_dilation_max_pct_function]
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'fuel_radial_dilation_max pellet_outer_radius'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = 'fuel_radial_dilation_max 0.00249'
expression<<<{"description": "The user defined function."}>>> = 'fuel_radial_dilation_max / pellet_outer_radius * 100'
[]
[clad_axial_elongation_max_pct_function]
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'clad_axial_elongation_max plug_height cladding_total_height'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = 'clad_axial_elongation_max 0.015 2.254'
expression<<<{"description": "The user defined function."}>>> = 'clad_axial_elongation_max / (plug_height + cladding_total_height) *
100'
[]
[clad_radial_dilation_max_pct_function]
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'clad_radial_dilation_max cladding_outer_radius'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = 'clad_radial_dilation_max 0.00343'
expression<<<{"description": "The user defined function."}>>> = 'clad_radial_dilation_max / cladding_outer_radius * 100'
[]
[plenum_compressibility_function]
# Accounts for nonideality in fission gas [Hobbs and Charboneau, 2020].
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'plenum_pressure A B C'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = 'plenum_pressure 1.002 -3.4e-8 -1.9e-15'
expression<<<{"description": "The user defined function."}>>> = 'A + B * plenum_pressure + C * plenum_pressure^2'
[]
[compressibility_times_temperature_function]
type = ParsedFunction<<<{"description": "Function created by parsing a string", "href": "../../../../source/functions/MooseParsedFunction.html"}>>>
symbol_names<<<{"description": "Symbols (excluding t,x,y,z) that are bound to the values provided by the corresponding items in the vals vector."}>>> = 'plenum_temperature plenum_compressibility'
symbol_values<<<{"description": "Constant numeric values, postprocessor names, function names, and scalar variables corresponding to the symbols in symbol_names."}>>> = 'plenum_temperature plenum_compressibility'
expression<<<{"description": "The user defined function."}>>> = 'plenum_temperature * plenum_compressibility'
[]
[]
[Physics<<<{"href": "../../../../syntax/Physics/index.html"}>>>/SolidMechanics<<<{"href": "../../../../syntax/Physics/SolidMechanics/index.html"}>>>/QuasiStatic<<<{"href": "../../../../syntax/Physics/SolidMechanics/QuasiStatic/index.html"}>>>]
add_variables<<<{"description": "Add the displacement variables"}>>> = true
strain<<<{"description": "Strain formulation"}>>> = FINITE
generate_output<<<{"description": "Add scalar quantity output for stress and/or strain"}>>> = 'stress_xx stress_yy stress_zz vonmises_stress
hydrostatic_stress creep_strain_xx creep_strain_yy
creep_strain_zz elastic_strain_xx elastic_strain_yy
elastic_strain_zz strain_xx strain_yy strain_zz'
[fuel_mechanics]
block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = 'pellet blanket'
eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = 'fuel_thermal_strain fuel_gaseous_strain
fuel_solid_strain'
extra_vector_tags<<<{"description": "The tag names for extra vectors that residual data should be saved into"}>>> = ref
[]
[clad_mechanics]
block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = clad
eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = 'clad_thermal_strain clad_gaseous_strain'
extra_vector_tags<<<{"description": "The tag names for extra vectors that residual data should be saved into"}>>> = ref
[]
[]
[Kernels<<<{"href": "../../../../syntax/Kernels/index.html"}>>>]
[gravity]
type = Gravity<<<{"description": "Apply gravity. Value is in units of acceleration.", "href": "../../../../source/kernels/Gravity.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_y
value<<<{"description": "Value multiplied against the residual, e.g. gravitational acceleration"}>>> = -9.81
extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = ref
[]
[heat_conduction_time_derivative]
type = HeatConductionTimeDerivative<<<{"description": "Time derivative term $\\rho c_p \\frac{\\partial T}{\\partial t}$ of the thermal energy conservation equation.", "href": "../../../../source/kernels/HeatConductionTimeDerivative.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = T
extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = ref
[]
[heat_conduction]
type = HeatConduction<<<{"description": "Diffusive heat conduction term $-\\nabla\\cdot(k\\nabla T)$ of the thermal energy conservation equation", "href": "../../../../source/kernels/HeatConduction.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = T
extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = ref
[]
[heat_source]
type = FissionRateHeatSource<<<{"description": "Applies energy deposition as a function of a material fission rate.", "href": "../../../../source/kernels/FissionRateHeatSource.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = T
fission_rate<<<{"description": "Fission rate material name"}>>> = fission_rate
extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = ref
[]
[]
[AuxKernels<<<{"href": "../../../../syntax/AuxKernels/index.html"}>>>]
[gap_conductance]
type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../../../source/auxkernels/MaterialRealAux.html"}>>>
variable<<<{"description": "The name of the variable that this object applies to"}>>> = gap_conductance
property<<<{"description": "The material property name."}>>> = gap_conductance
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = pellet_outer_radial_surface
[]
[fuel_clad_gap_width]
type = ParsedAux<<<{"description": "Sets a field variable value to the evaluation of a parsed expression.", "href": "../../../../source/auxkernels/ParsedAux.html"}>>>
variable<<<{"description": "The name of the variable that this object applies to"}>>> = fuel_clad_gap_width
coupled_variables<<<{"description": "Vector of coupled variable names"}>>> = penetration
expression<<<{"description": "Parsed function expression to compute"}>>> = '-penetration'
[]
[failed_element]
type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../../../source/auxkernels/MaterialRealAux.html"}>>>
variable<<<{"description": "The name of the variable that this object applies to"}>>> = element_failed
property<<<{"description": "The material property name."}>>> = failed
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = clad_outside_right
[]
[fuel_volumetric_strain]
type = RankTwoScalarAux<<<{"description": "Compute a scalar property of a RankTwoTensor", "href": "../../../../source/auxkernels/RankTwoScalarAux.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
variable<<<{"description": "The name of the variable that this object applies to"}>>> = fuel_volumetric_strain
rank_two_tensor<<<{"description": "The rank two material tensor name"}>>> = total_strain
scalar_type<<<{"description": "Type of scalar output"}>>> = VolumetricStrain
[]
[clad_hoop_stress]
type = RankTwoAux<<<{"description": "Access a component of a RankTwoTensor", "href": "../../../../source/auxkernels/RankTwoAux.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this object applies to"}>>> = clad_hoop_stress
rank_two_tensor<<<{"description": "The rank two material tensor name"}>>> = stress
index_i<<<{"description": "The index i of ij for the tensor to output (0, 1, 2)"}>>> = 2
index_j<<<{"description": "The index j of ij for the tensor to output (0, 1, 2)"}>>> = 2
[]
[clad_hoop_creep_strain]
type = RankTwoAux<<<{"description": "Access a component of a RankTwoTensor", "href": "../../../../source/auxkernels/RankTwoAux.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this object applies to"}>>> = clad_hoop_creep_strain
rank_two_tensor<<<{"description": "The rank two material tensor name"}>>> = creep_strain
index_i<<<{"description": "The index i of ij for the tensor to output (0, 1, 2)"}>>> = 2
index_j<<<{"description": "The index j of ij for the tensor to output (0, 1, 2)"}>>> = 2
[]
[clad_hoop_elastic_strain]
type = RankTwoAux<<<{"description": "Access a component of a RankTwoTensor", "href": "../../../../source/auxkernels/RankTwoAux.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this object applies to"}>>> = clad_hoop_elastic_strain
rank_two_tensor<<<{"description": "The rank two material tensor name"}>>> = elastic_strain
index_i<<<{"description": "The index i of ij for the tensor to output (0, 1, 2)"}>>> = 2
index_j<<<{"description": "The index j of ij for the tensor to output (0, 1, 2)"}>>> = 2
[]
[clad_hoop_total_strain]
type = RankTwoAux<<<{"description": "Access a component of a RankTwoTensor", "href": "../../../../source/auxkernels/RankTwoAux.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this object applies to"}>>> = clad_hoop_total_strain
rank_two_tensor<<<{"description": "The rank two material tensor name"}>>> = total_strain
index_i<<<{"description": "The index i of ij for the tensor to output (0, 1, 2)"}>>> = 2
index_j<<<{"description": "The index j of ij for the tensor to output (0, 1, 2)"}>>> = 2
[]
[local_power]
type = FunctionAux<<<{"description": "Auxiliary Kernel that creates and updates a field variable by sampling a function through space and time.", "href": "../../../../source/auxkernels/FunctionAux.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
variable<<<{"description": "The name of the variable that this object applies to"}>>> = local_power
function<<<{"description": "The function to use as the value"}>>> = lhr_peaking_factor_function
[]
[T_coolant]
type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../../../source/auxkernels/MaterialRealAux.html"}>>>
variable<<<{"description": "The name of the variable that this object applies to"}>>> = T_coolant
property<<<{"description": "The material property name."}>>> = coolant_temperature
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = clad_outside_right
[]
[pin_lhr]
type = FunctionAux<<<{"description": "Auxiliary Kernel that creates and updates a field variable by sampling a function through space and time.", "href": "../../../../source/auxkernels/FunctionAux.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
variable<<<{"description": "The name of the variable that this object applies to"}>>> = pin_lhr
function<<<{"description": "The function to use as the value"}>>> = pin_lhr_function
[]
[eutectic_thickness]
type = DiffusionalEutecticThicknessFCCI<<<{"description": "Computes diffusion-controlled eutectic penetration thickness with a boundary temperature.", "href": "../../../../source/auxkernels/DiffusionalEutecticThicknessFCCI.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this object applies to"}>>> = eutectic_thickness
temperature<<<{"description": "Coupled temperature of the boundary."}>>> = T
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = clad_inside_right
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = TIMESTEP_END
[]
[]
[Contact<<<{"href": "../../../../syntax/Contact/index.html"}>>>]
# Assessment uses frictionless contact. See [Greenquist et al., 2021] for
# a study comparing the various contact models.
[frictionless_fuel_clad_mechanical]
primary<<<{"description": "The list of boundary IDs referring to primary sidesets"}>>> = clad_inside_right
secondary<<<{"description": "The list of boundary IDs referring to secondary sidesets"}>>> = pellet_outer_radial_surface
model<<<{"description": "The contact model to use"}>>> = frictionless
formulation<<<{"description": "The contact formulation"}>>> = kinematic
tangential_tolerance<<<{"description": "Tangential distance to extend edges of contact surfaces"}>>> = 1e-3
normal_smoothing_distance<<<{"description": "Distance from edge in parametric coordinates over which to smooth contact normal"}>>> = 0.1
[]
[]
[ThermalContact<<<{"href": "../../../../syntax/Modules/HeatTransfer/ThermalContact/index.html"}>>>]
[thermal_contact]
type = GapHeatTransfer
variable = T
primary = clad_inside_right
secondary = pellet_outer_radial_surface
gap_geometry_type = CYLINDER
gap_conductivity_function = sodium_conductivity_function
gap_conductivity_function_variable = T
quadrature = true
min_gap = 0.00038 # Set to the initial gap width.
tangential_tolerance = 1e-4
[]
[]
[BCs<<<{"href": "../../../../syntax/NuclearMaterials/BCs/index.html"}>>>]
[fix_disp_x_all]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_x
value<<<{"description": "Value of the BC"}>>> = 0.0
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = centerline
[]
[fix_disp_y_all]
type = DirichletBC<<<{"description": "Imposes the essential boundary condition $u=g$, where $g$ is a constant, controllable value.", "href": "../../../../source/bcs/DirichletBC.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_y
value<<<{"description": "Value of the BC"}>>> = 0.0
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'clad_outside_bottom bottom_of_bottom_pellet'
[]
[Pressure<<<{"href": "../../../../syntax/BCs/Pressure/index.html"}>>>]
[coolant_pressure]
function<<<{"description": "The function that describes the pressure"}>>> = coolant_pressure_function
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 'clad_outside_bottom clad_outside_right clad_outside_top'
[]
[]
[PlenumPressure<<<{"href": "../../../../syntax/BCs/PlenumPressure/index.html"}>>>]
[plenum_pressure]
boundary<<<{"description": "The list of boundary IDs from the mesh where the pressure will be applied"}>>> = 'clad_inside_bottom clad_inside_right clad_inside_top'
startup_time<<<{"description": "The amount of time during which the pressure will ramp from zero to its true value."}>>> = 0
initial_pressure<<<{"description": "The initial pressure in the cavity. If not given, a zero initial pressure will be used."}>>> = 101325 # 1 atm [Greenquist et al., 2021]
volume<<<{"description": "The name of the postprocessor(s) that holds the value of the internal volume in the cavity"}>>> = gas_volume
material_input<<<{"description": "The name of the postprocessor(s) that holds the amount of material injected into the plenum."}>>> = fission_gas_released
R<<<{"description": "The universal gas constant for the units used."}>>> = 8.3143
temperature<<<{"description": "The name of the average temperature postprocessor value."}>>> = plenum_temperature
output<<<{"description": "The name to use for the cavity pressure value"}>>> = plenum_pressure
[]
[]
[]
[PlenumTemperature<<<{"href": "../../../../syntax/PlenumTemperature/index.html"}>>>]
[plenum_temperature]
temperature<<<{"description": "Coupled temperature (K)"}>>> = T
boundary<<<{"description": "The boundary ID or name over which the plenum temperature should be measured."}>>> = 'bottom_of_bottom_pellet pellet_outer_radial_surface
top_of_top_pellet clad_inside_bottom clad_inside_right
clad_inside_top'
inner_surfaces<<<{"description": "The inner surfaces (e.g. fuel not on inner radius)."}>>> = 'bottom_of_bottom_pellet pellet_outer_radial_surface
top_of_top_pellet'
outer_surfaces<<<{"description": "The outer surfaces (e.g. cladding)."}>>> = 'clad_inside_bottom clad_inside_right clad_inside_top'
[]
[]
[CoolantChannel<<<{"href": "../../../../syntax/CoolantChannel/index.html"}>>>]
[convective_clad_surface]
variable<<<{"description": "The name of the variable representing temperature"}>>> = T
inlet_temperature<<<{"description": "Inlet temperature in K "}>>> = coolant_T_in_function
inlet_pressure<<<{"description": "Inlet pressure in Pa"}>>> = coolant_pressure_function
inlet_massflux<<<{"description": "Inlet mass flux in kg/m^2-sec"}>>> = coolant_flux_function
coolant_material<<<{"description": "The name of the user object with fluid properties"}>>> = sodium
rod_diameter<<<{"description": "Rod diameter in meter"}>>> = 0.00686 # [Dodds, 1986-2]
rod_pitch<<<{"description": "Rod pitch in meter"}>>> = 0.00823 # [Greenquist et al., 2021]
linear_heat_rate<<<{"description": "Linear heat generation rate in W/m"}>>> = assembly_lhr_avg_function
axial_power_profile<<<{"description": "Axial power profile"}>>> = lhr_peaking_factor_function
subchannel_geometry<<<{"description": "Geometry of the pin array:square triangular"}>>> = triangular
boundary<<<{"description": "The boundary where the coolant channel calculation will run"}>>> = 'clad_outside_bottom clad_outside_right clad_outside_top'
[]
[]
[Materials<<<{"href": "../../../../syntax/Materials/index.html"}>>>]
###### FUEL ######
[fuel_fission_rate]
type = UPuZrFissionRate<<<{"description": "Computes fission rate based on linear power, axial power profile, axial plutonium concentration, and local zirconium concentration.", "href": "../../../../source/materials/UPuZrFissionRate.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
rod_linear_power<<<{"description": "Function that describes the linear power as a function of time."}>>> = assembly_lhr_avg_function
axial_power_profile<<<{"description": "Function that describes the axial power profile as a function of axial position and time."}>>> = lhr_peaking_factor_function
pellet_radius<<<{"description": "Fuel pellet radius"}>>> = 0.00249 # [Dodds, 1986-2]
initial_X_Zr<<<{"description": "Initial atom fraction of zirconium. Only required if X_Zr is coupled to a variable"}>>> = 0.224 # [Dodds, 1986-2]
X_Zr<<<{"description": "Zirconium atom fraction variable"}>>> = 0.224
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = fission_rate
[]
[fuel_burnup]
type = UPuZrBurnup<<<{"description": "Computes the burnup for UPuZr metallic fuel.", "href": "../../../../source/materials/UPuZrBurnup.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
density<<<{"description": "Initial fuel density [kg/m3]."}>>> = ${initial_fuel_density} # [Dodds, 1986-2]
initial_X_Pu<<<{"description": "Initial atom fraction of plutonium."}>>> = ${initial_X_Pu} # [Dodds, 1986-2]
initial_X_Zr<<<{"description": "Initial atom fraction of zirconium."}>>> = 0.224 # [Dodds, 1986-2]
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = burnup
[]
[fuel_density]
type = StrainAdjustedDensity<<<{"description": "Creates density material property", "href": "../../../../source/materials/StrainAdjustedDensity.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
strain_free_density<<<{"description": "Material property for strain-free density"}>>> = ${initial_fuel_density} # [Dodds, 1986-2]
[]
[fuel_sodium_logging]
type = UPuZrSodiumLogging<<<{"description": "Computes the local fractional amount of sodium logging.", "href": "../../../../source/materials/UPuZrSodiumLogging.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
porosity<<<{"description": "Porosity material property name"}>>> = porosity
sodium_infiltration_fraction<<<{"description": "Fractional amount of sodium infiltration in interconnected porosity"}>>> = ${Na_infiltration_fraction} # [Bauer and Holland, 1995]
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = sodium_logged_porosity
[]
[fuel_thermal_properties]
type = UPuZrThermal<<<{"description": "Computes the thermal conductivity and specific heat for U-Pu-Zr fuels based on mole fractions, porosity, and temperature.", "href": "../../../../source/materials/UPuZrThermal.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
X_Pu<<<{"description": "Coupled plutonium atom fraction."}>>> = ${initial_X_Pu} # [Dodds, 1986-2]
X_Zr<<<{"description": "Coupled zirconium atom fraction."}>>> = 0.224 # [Dodds, 1986-2]
spheat_model<<<{"description": "Specific heat model. Choices are: karahan savage constant function"}>>> = savage
thcond_model<<<{"description": "Thermal conductivity model. Choices are: billone galloway lanl kim odaria_corrected function constant"}>>> = lanl
porosity_model<<<{"description": "Porosity correction factor model. Choices are: none fractional power logged partially_logged"}>>> = logged
porosity<<<{"description": "Porosity material property name. Required if porosity_model is not 'none'"}>>> = porosity
sodium_logged_porosity<<<{"description": "Sodium logged porosity material property name. Required if porosity_model is 'logged'"}>>> = sodium_logged_porosity
[]
[fuel_elasticity_tensor]
type = UPuZrElasticityTensor<<<{"description": "Computes the Young's modulus and Poisson's ratio for UPuZr fuel based on supplied fractions of Pu and Zr.", "href": "../../../../source/materials/solid_mechanics/UPuZrElasticityTensor.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
X_Pu<<<{"description": "Coupled plutonium atom fraction"}>>> = ${initial_X_Pu} # [Dodds, 1986-2]
X_Zr<<<{"description": "Coupled zirconium atom fraction"}>>> = 0.224 # [Dodds, 1986-2]
porosity<<<{"description": "Porosity material property name"}>>> = porosity
[]
[fuel_creep]
type = UPuZrCreepUpdate<<<{"description": "Computes the secondary thermal and irradiation creep for UPuZr fast metal fuel. This material must be run in conjunction with ComputeMultipleInelasticStress.", "href": "../../../../source/materials/solid_mechanics/UPuZrCreepUpdate.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
porosity<<<{"description": "Porosity material property name"}>>> = porosity
max_inelastic_increment<<<{"description": "The maximum inelastic strain increment allowed in a time step"}>>> = 3e-3
effective_inelastic_strain_name<<<{"description": "Name of the material property that stores the effective inelastic strain"}>>> = fuel_effective_creep_strain
[]
[fuel_gaseous_swelling]
type = UPuZrGaseousEigenstrain<<<{"description": "Computes and sums the change in fuel pellet volume due to gaseous fission product buildup in UPuZr.", "href": "../../../../source/materials/solid_mechanics/UPuZrGaseousEigenstrain.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
fission_rate<<<{"description": "Fission rate material property name"}>>> = fission_rate
anisotropic_factor<<<{"description": "Factor applied to radial strains to estimate macroscopic anisotropic swelling. Axial axis must be along Y-axis."}>>> = 0.5 # [Pahl et al., 1990]
bubble_number_density<<<{"description": "Material property name for the number density of intragranular bubbles, [bubbles/m^3]"}>>> = 5e17 # [Casagranda et al., 2020]
interconnection_initiating_porosity<<<{"description": "Porosity at which fission gas release starts"}>>> = ${interconnection_init_porosity} # [Casagranda et al., 2020]
interconnection_terminating_porosity<<<{"description": "Porosity at which fission gas release finishes"}>>> = ${interconnection_term_porosity} # [Casagranda et al., 2020]
eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = fuel_gaseous_strain
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = 'gas_swelling porosity interconnectivity'
[]
[fuel_solid_swelling]
type = BurnupDependentEigenstrain<<<{"description": "Computes the swelling produced by solid fission products as a function of burnup.", "href": "../../../../source/materials/solid_mechanics/BurnupDependentEigenstrain.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = fuel_solid_strain
swelling_name<<<{"description": "Name of material property calculated here corresponding to burnup dependent swelling"}>>> = solid_swelling
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = solid_swelling
swelling_factor<<<{"description": "Scale factor multiplied by the burnup."}>>> = 0 # Solid swelling is negligible below 10% burnup
[]
[fuel_fission_gas_release]
type = UPuZrFissionGasRelease<<<{"description": "Computes fission gas release for UPuZr metallic fuel", "href": "../../../../source/materials/UPuZrFissionGasRelease.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
fission_rate<<<{"description": "Fission rate material property name"}>>> = fission_rate
porosity<<<{"description": "Porosity material property name"}>>> = porosity
critical_porosity<<<{"description": "Porosity at which fission gas release initiates. This needs to be between the interconnection_initiating_porosity and interconnection_terminating_porosity in UPuZrVolumetricSwellingEigenstrain"}>>> = ${critical_porosity} # [Casagranda et al., 2020]
fractional_fgr_initial<<<{"description": "fraction of fission gas produced that is released once the critical porosity is reached"}>>> = ${fgr_init} # [Casagranda et al., 2020]
fractional_fgr_post<<<{"description": "fraction of fission gas produced that is released after interconnection"}>>> = ${fgr_post} # [Casagranda et al., 2020]
[]
[fuel_thermal_expansion]
type = UPuZrThermalExpansionEigenstrain<<<{"description": "Computes an eigenstrain due to thermal expansion for UPuZr using a function that describes the mean thermal expansion as a function of temperature.", "href": "../../../../source/materials/solid_mechanics/UPuZrThermalExpansionEigenstrain.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
stress_free_temperature<<<{"description": "Reference temperature at which there is no thermal expansion for thermal eigenstrain calculation"}>>> = 298
eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = fuel_thermal_strain
[]
[fuel_elastic_stress]
type = ComputeMultipleInelasticStress<<<{"description": "Compute state (stress and internal parameters such as plastic strains and internal parameters) using an iterative process. Combinations of creep models and plastic models may be used.", "href": "../../../../source/materials/ComputeMultipleInelasticStress.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
inelastic_models<<<{"description": "The material objects to use to calculate stress and inelastic strains. Note: specify creep models first and plasticity models second."}>>> = fuel_creep
[]
###### BLANKET ######
[blanket_fission_rate]
type = UPuZrFissionRate<<<{"description": "Computes fission rate based on linear power, axial power profile, axial plutonium concentration, and local zirconium concentration.", "href": "../../../../source/materials/UPuZrFissionRate.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
rod_linear_power<<<{"description": "Function that describes the linear power as a function of time."}>>> = assembly_lhr_avg_function
axial_power_profile<<<{"description": "Function that describes the axial power profile as a function of axial position and time."}>>> = lhr_peaking_factor_function
pellet_radius<<<{"description": "Fuel pellet radius"}>>> = 0.00249
initial_X_Zr<<<{"description": "Initial atom fraction of zirconium. Only required if X_Zr is coupled to a variable"}>>> = 0.224 # 10 wt% [Dodds, 1986-2]
X_Zr<<<{"description": "Zirconium atom fraction variable"}>>> = 0.224
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = fission_rate
[]
[blanket_burnup]
type = UPuZrBurnup<<<{"description": "Computes the burnup for UPuZr metallic fuel.", "href": "../../../../source/materials/UPuZrBurnup.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
density<<<{"description": "Initial fuel density [kg/m3]."}>>> = 15800 # [Dodds, 1986-2]
initial_X_Pu<<<{"description": "Initial atom fraction of plutonium."}>>> = 0 # [Dodds, 1986-2]
initial_X_Zr<<<{"description": "Initial atom fraction of zirconium."}>>> = 0.224 # [Dodds, 1986-2]
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = burnup
[]
[blanket_density]
type = StrainAdjustedDensity<<<{"description": "Creates density material property", "href": "../../../../source/materials/StrainAdjustedDensity.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
strain_free_density<<<{"description": "Material property for strain-free density"}>>> = 15800 # [Dodds, 1986-2]
[]
[blanket_sodium_logging]
type = UPuZrSodiumLogging<<<{"description": "Computes the local fractional amount of sodium logging.", "href": "../../../../source/materials/UPuZrSodiumLogging.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
porosity<<<{"description": "Porosity material property name"}>>> = porosity
sodium_infiltration_fraction<<<{"description": "Fractional amount of sodium infiltration in interconnected porosity"}>>> = 0.08 # [Bauer and Holland, 1995]
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = sodium_logged_porosity
[]
[blanket_thermal_properties]
type = UPuZrThermal<<<{"description": "Computes the thermal conductivity and specific heat for U-Pu-Zr fuels based on mole fractions, porosity, and temperature.", "href": "../../../../source/materials/UPuZrThermal.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
X_Pu<<<{"description": "Coupled plutonium atom fraction."}>>> = 0 # [Dodds, 1986-2]
X_Zr<<<{"description": "Coupled zirconium atom fraction."}>>> = 0.224 # [Dodds, 1986-2]
spheat_model<<<{"description": "Specific heat model. Choices are: karahan savage constant function"}>>> = savage
thcond_model<<<{"description": "Thermal conductivity model. Choices are: billone galloway lanl kim odaria_corrected function constant"}>>> = lanl
porosity_model<<<{"description": "Porosity correction factor model. Choices are: none fractional power logged partially_logged"}>>> = logged
porosity<<<{"description": "Porosity material property name. Required if porosity_model is not 'none'"}>>> = porosity
sodium_logged_porosity<<<{"description": "Sodium logged porosity material property name. Required if porosity_model is 'logged'"}>>> = sodium_logged_porosity
[]
[blanket_elasticity_tensor]
type = UPuZrElasticityTensor<<<{"description": "Computes the Young's modulus and Poisson's ratio for UPuZr fuel based on supplied fractions of Pu and Zr.", "href": "../../../../source/materials/solid_mechanics/UPuZrElasticityTensor.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
X_Pu<<<{"description": "Coupled plutonium atom fraction"}>>> = 0 # [Dodds, 1986-2]
X_Zr<<<{"description": "Coupled zirconium atom fraction"}>>> = 0.224 # [Dodds, 1986-2]
porosity<<<{"description": "Porosity material property name"}>>> = porosity
[]
[blanket_creep]
type = UPuZrCreepUpdate<<<{"description": "Computes the secondary thermal and irradiation creep for UPuZr fast metal fuel. This material must be run in conjunction with ComputeMultipleInelasticStress.", "href": "../../../../source/materials/solid_mechanics/UPuZrCreepUpdate.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
porosity<<<{"description": "Porosity material property name"}>>> = porosity
max_inelastic_increment<<<{"description": "The maximum inelastic strain increment allowed in a time step"}>>> = 3e-3
effective_inelastic_strain_name<<<{"description": "Name of the material property that stores the effective inelastic strain"}>>> = blanket_effective_creep_strain
[]
[blanket_gaseous_swelling]
type = UPuZrGaseousEigenstrain<<<{"description": "Computes and sums the change in fuel pellet volume due to gaseous fission product buildup in UPuZr.", "href": "../../../../source/materials/solid_mechanics/UPuZrGaseousEigenstrain.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
fission_rate<<<{"description": "Fission rate material property name"}>>> = fission_rate
anisotropic_factor<<<{"description": "Factor applied to radial strains to estimate macroscopic anisotropic swelling. Axial axis must be along Y-axis."}>>> = 0.5 # [Pahl et al., 1990]
bubble_number_density<<<{"description": "Material property name for the number density of intragranular bubbles, [bubbles/m^3]"}>>> = 5e17 # [Casagranda et al., 2020]
interconnection_initiating_porosity<<<{"description": "Porosity at which fission gas release starts"}>>> = 0.25 # [Casagranda et al., 2020]
interconnection_terminating_porosity<<<{"description": "Porosity at which fission gas release finishes"}>>> = 0.27 # [Casagranda et al., 2020]
eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = fuel_gaseous_strain
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = 'gas_swelling porosity interconnectivity'
[]
[blanket_solid_swelling]
type = BurnupDependentEigenstrain<<<{"description": "Computes the swelling produced by solid fission products as a function of burnup.", "href": "../../../../source/materials/solid_mechanics/BurnupDependentEigenstrain.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = fuel_solid_strain
swelling_name<<<{"description": "Name of material property calculated here corresponding to burnup dependent swelling"}>>> = solid_swelling
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = solid_swelling
swelling_factor<<<{"description": "Scale factor multiplied by the burnup."}>>> = 0 # Solid swelling is negligible below 10% burnup
[]
[blanket_fission_gas_release]
type = UPuZrFissionGasRelease<<<{"description": "Computes fission gas release for UPuZr metallic fuel", "href": "../../../../source/materials/UPuZrFissionGasRelease.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
fission_rate<<<{"description": "Fission rate material property name"}>>> = fission_rate
porosity<<<{"description": "Porosity material property name"}>>> = porosity
critical_porosity<<<{"description": "Porosity at which fission gas release initiates. This needs to be between the interconnection_initiating_porosity and interconnection_terminating_porosity in UPuZrVolumetricSwellingEigenstrain"}>>> = 0.26 # [Casagranda et al., 2020]
fractional_fgr_initial<<<{"description": "fraction of fission gas produced that is released once the critical porosity is reached"}>>> = 0.454 # [Casagranda et al., 2020]
fractional_fgr_post<<<{"description": "fraction of fission gas produced that is released after interconnection"}>>> = 0.714 # [Casagranda et al., 2020]
[]
[blanket_thermal_expansion]
type = UPuZrThermalExpansionEigenstrain<<<{"description": "Computes an eigenstrain due to thermal expansion for UPuZr using a function that describes the mean thermal expansion as a function of temperature.", "href": "../../../../source/materials/solid_mechanics/UPuZrThermalExpansionEigenstrain.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
stress_free_temperature<<<{"description": "Reference temperature at which there is no thermal expansion for thermal eigenstrain calculation"}>>> = 298
eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = fuel_thermal_strain
[]
[blanket_elastic_stress]
type = ComputeMultipleInelasticStress<<<{"description": "Compute state (stress and internal parameters such as plastic strains and internal parameters) using an iterative process. Combinations of creep models and plastic models may be used.", "href": "../../../../source/materials/ComputeMultipleInelasticStress.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
inelastic_models<<<{"description": "The material objects to use to calculate stress and inelastic strains. Note: specify creep models first and plasticity models second."}>>> = blanket_creep
[]
###### CLADDING ######
[fast_neutron_flux]
type = UPuZrFastNeutronFlux<<<{"description": "Computes fast neutron flux and fluence for UPuZr.", "href": "../../../../source/materials/UPuZrFastNeutronFlux.html"}>>>
pellet_radius<<<{"description": "Fuel pellet radius"}>>> = 0.00249
axial_power_profile<<<{"description": "Function that describes the axial power profile as a function of axial position and time."}>>> = lhr_peaking_factor_function
rod_linear_power<<<{"description": "Function that describes the linear power as a function of time."}>>> = assembly_lhr_avg_function
initial_density<<<{"description": "Initial density of the fuel"}>>> = 15800 # [Dodds, 1986-2]
initial_X_Pu<<<{"description": "Initial atom fraction of plutonium"}>>> = ${initial_X_Pu} # [Dodds, 1986-2]
initial_X_Zr<<<{"description": "Initial atom fraction of zirconium"}>>> = 0.224 # [Dodds, 1986-2]
enrichment_U235<<<{"description": "Initial ratio of U-235 to total uranium"}>>> = ${enrichment_U235} # [Dodds, 1986-2]
enrichment_Pu240<<<{"description": "Initial ratio of Pu-240 to total plutonium"}>>> = 0.061 # [Dodds, 1986-2]
calculate_fluence<<<{"description": "Flag to calculate total neutron fluence from the fast flux."}>>> = true
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
[]
[clad_density]
type = StrainAdjustedDensity<<<{"description": "Creates density material property", "href": "../../../../source/materials/StrainAdjustedDensity.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
strain_free_density<<<{"description": "Material property for strain-free density"}>>> = 7761 # [Hofman et al., 1989]
[]
[clad_thermal_properties]
type = D9Thermal<<<{"description": "Computes thermal properties of D9 austenitic steel.", "href": "../../../../source/materials/D9Thermal.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
[]
[clad_gaseous_swelling]
type = D9VolumetricSwellingEigenstrain<<<{"description": "Computes the change in D9 cladding volume due to irradiation by fast neutrons. This class applies a volumetric strain correction before adding the strain from this class to the diagonal entries of the eigenstrain tensor.", "href": "../../../../source/materials/solid_mechanics/D9VolumetricSwellingEigenstrain.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
fast_neutron_flux<<<{"description": "Name of fast neutron flux material property"}>>> = fast_neutron_flux
fast_neutron_fluence<<<{"description": "Name of fast neutron fluence material property"}>>> = fast_neutron_fluence
eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = clad_gaseous_strain
[]
[clad_thermal_expansion]
type = D9ThermalExpansionEigenstrain<<<{"description": "Computes an eigenstrain due to thermal expansion for D9 using a function that describes the thermal strain as a function of temperature.", "href": "../../../../source/materials/solid_mechanics/D9ThermalExpansionEigenstrain.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = clad_thermal_strain
stress_free_temperature<<<{"description": "Reference temperature at which there is no thermal expansion for thermal eigenstrain calculation"}>>> = 298
[]
[clad_elasticity_tensor]
type = D9ElasticityTensor<<<{"description": "Computes the Young's modulus and Poisson's ratio for D9 cladding as a function of temperature and formulates the elasticity tensor.", "href": "../../../../source/materials/solid_mechanics/D9ElasticityTensor.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
[]
[clad_creep]
type = D9CreepUpdate<<<{"description": "Steady-state thermal and irradiation creep for D9 stainless steel cladding. Must be used in conjunction with ComputeMultipleInelasticStress.", "href": "../../../../source/materials/solid_mechanics/D9CreepUpdate.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
max_inelastic_increment<<<{"description": "The maximum inelastic strain increment allowed in a time step"}>>> = 3e-3 # 1e-2
effective_inelastic_strain_name<<<{"description": "Name of the material property that stores the effective inelastic strain"}>>> = clad_effective_creep_strain
[]
[clad_failure]
type = D9FailureClad<<<{"description": "Failure model for D9 cladding. Contains multiple models for steady state (burnup calculations) and transient operations.", "href": "../../../../source/materials/D9FailureClad.html"}>>>
method<<<{"description": "Failure method choice. Options: steady_state transient"}>>> = steady_state
hoop_stress<<<{"description": "Hoop stress in cladding"}>>> = stress_zz
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = clad_outside_right
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = cdf_failure
[]
[inner_clad_wastage]
type = MetallicFuelWastage<<<{"description": "Computes wastage thickness on the fuel-cladding interface.", "href": "../../../../source/materials/MetallicFuelWastage.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
method<<<{"description": "Wastage thickness method choice. Options: flux_ht9 flux_ss316 flux_d9 burnup_ht9_legacy burnup_ht9_opt burnup_ht9_gap flux_burnup_ht9"}>>> = flux_d9
burnup<<<{"description": "Burnup material name"}>>> = 0 # not used but must be specified
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = wastage_thickness
[]
[outer_clad_wastage]
type = MetallicFuelCoolantWastage<<<{"description": "Compute wastage thickness on the cladding-coolant interface.", "href": "../../../../source/materials/MetallicFuelCoolantWastage.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
clad_material<<<{"description": "Fuel cladding material choice. Options: HT9 SS316 HT9_HEDL custom"}>>> = SS316 # does not have D9
use_effective_method<<<{"description": "Flag to use effective method that gives better consistency with original correlation"}>>> = true
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
[]
[clad_wastage_fraction]
type = MetallicFuelWastageDamage<<<{"description": "Computes wastage thinning fraction on the fuel-cladding interface.", "href": "../../../../source/materials/MetallicFuelWastageDamage.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
wastage_thickness<<<{"description": "Coupled wastage thickness for FCCI"}>>> = wastage_thickness
pellet_length<<<{"description": "Length of fuel pellet"}>>> = 0.9144
pellet_y_start<<<{"description": "y position of start of fuel pellet"}>>> = 0.1812
cladding_thickness<<<{"description": "thickness of cladding used in FCCI"}>>> = 0.00056
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
[]
[clad_damage_fraction]
type = ScalarMaterialDamage<<<{"description": "Scalar damage model for which the damage is prescribed by another material", "href": "../../../../source/materials/ScalarMaterialDamage.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
damage_index<<<{"description": "Name of the material property containing the damage index, which goes from 0 (undamaged) to 1 (fully damaged)"}>>> = thinning_fraction
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = exodus
[]
[clad_elastic_stress]
type = ComputeMultipleInelasticStress<<<{"description": "Compute state (stress and internal parameters such as plastic strains and internal parameters) using an iterative process. Combinations of creep models and plastic models may be used.", "href": "../../../../source/materials/ComputeMultipleInelasticStress.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
inelastic_models<<<{"description": "The material objects to use to calculate stress and inelastic strains. Note: specify creep models first and plasticity models second."}>>> = clad_creep
[]
[]
[Dampers<<<{"href": "../../../../syntax/Dampers/index.html"}>>>]
[T_damper]
type = MaxIncrement<<<{"description": "Limits a variable's update by some max fraction", "href": "../../../../source/dampers/MaxIncrement.html"}>>>
variable<<<{"description": "The name of the variable that this damper operates on"}>>> = T
max_increment<<<{"description": "The maximum newton increment for the variable."}>>> = 25
[]
[disp_x_damper]
type = MaxIncrement<<<{"description": "Limits a variable's update by some max fraction", "href": "../../../../source/dampers/MaxIncrement.html"}>>>
variable<<<{"description": "The name of the variable that this damper operates on"}>>> = disp_x
max_increment<<<{"description": "The maximum newton increment for the variable."}>>> = 3.00E-04
[]
[disp_y_damper]
type = MaxIncrement<<<{"description": "Limits a variable's update by some max fraction", "href": "../../../../source/dampers/MaxIncrement.html"}>>>
variable<<<{"description": "The name of the variable that this damper operates on"}>>> = disp_y
max_increment<<<{"description": "The maximum newton increment for the variable."}>>> = 3.00E-04
[]
[]
[Preconditioning<<<{"href": "../../../../syntax/Preconditioning/index.html"}>>>]
[SMP]
type = SMP<<<{"description": "Single matrix preconditioner (SMP) builds a preconditioner using user defined off-diagonal parts of the Jacobian.", "href": "../../../../source/preconditioners/SingleMatrixPreconditioner.html"}>>>
full<<<{"description": "Set to true if you want the full set of couplings between variables simply for convenience so you don't have to set every off_diag_row and off_diag_column combination."}>>> = true
[]
[]
[Executioner<<<{"href": "../../../../syntax/Executioner/index.html"}>>>]
type = Transient
solve_type = PJFNK
automatic_scaling = true
compute_scaling_once = false
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package
-ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist
51'
line_search = NONE
l_max_its = 30
l_tol = 1e-3
nl_max_its = 30
nl_rel_tol = 1e-4
nl_abs_tol = 5e-7
start_time = 0
end_time = 53791920
dtmin = 1e-2
dtmax = 1e6
verbose = true
[Quadrature<<<{"href": "../../../../syntax/Executioner/Quadrature/index.html"}>>>]
order<<<{"description": "Order of the quadrature"}>>> = FIFTH
side_order<<<{"description": "Order of the quadrature for sides"}>>> = SEVENTH
[]
[TimeStepper<<<{"href": "../../../../syntax/Executioner/TimeStepper/index.html"}>>>]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 10
iteration_window = 4
growth_factor = 1.25
cutback_factor = 0.512
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = assembly_lhr_avg_function
timestep_limiting_postprocessor = creep_timestep_min
[]
[]
[Postprocessors<<<{"href": "../../../../syntax/Postprocessors/index.html"}>>>]
###### POWER ######
[fission_rate_density_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
variable<<<{"description": "The name of the variable that this object operates on"}>>> = fission_rate
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fast_neutron_fluence_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
variable<<<{"description": "The name of the variable that this object operates on"}>>> = fast_neutron_fluence
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[fast_neutron_fluence_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = fast_neutron_fluence
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[pin_hr_tot]
type = ElementIntegralPower<<<{"description": "Computes the power given the fission rate and energy per fission.", "href": "../../../../source/postprocessors/ElementIntegralPower.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
variable<<<{"description": "The name of the variable that this object operates on"}>>> = T # required but not actually used
use_material_fission_rate<<<{"description": "Flag to use the material 'fission_rate_material' instead of variable fission rate"}>>> = true
fission_rate_material<<<{"description": "Fission rate material property name"}>>> = fission_rate
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[pin_lhr_avg]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = assembly_lhr_avg_function
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
###### HEAT TRANSFER ######
[radial_heat_flux_from_fuel]
type = SideDiffusiveFluxIntegral<<<{"description": "Computes the integral of the diffusive flux over the specified boundary", "href": "../../../../source/postprocessors/SideDiffusiveFluxIntegral.html"}>>>
variable<<<{"description": "The name of the variable which this postprocessor integrates"}>>> = T
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = pellet_outer_radial_surface
diffusivity<<<{"description": "The name of the diffusivity material property that will be used in the flux computation. This must be provided if the variable is of finite element type"}>>> = thermal_conductivity
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[radial_heat_flux_from_clad]
type = SideDiffusiveFluxIntegral<<<{"description": "Computes the integral of the diffusive flux over the specified boundary", "href": "../../../../source/postprocessors/SideDiffusiveFluxIntegral.html"}>>>
variable<<<{"description": "The name of the variable which this postprocessor integrates"}>>> = T
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = clad_outside_right
diffusivity<<<{"description": "The name of the diffusivity material property that will be used in the flux computation. This must be provided if the variable is of finite element type"}>>> = thermal_conductivity
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
###### FISSION GAS ###### (needed for simulation to run)
[fission_gas_produced]
type = ElementIntegralMaterialProperty<<<{"description": "Compute the integral of the material property over the domain", "href": "../../../../source/postprocessors/ElementIntegralMaterialProperty.html"}>>>
mat_prop<<<{"description": "The name of the material property"}>>> = fis_gas_prod
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[fission_gas_released]
type = ElementIntegralMaterialProperty<<<{"description": "Compute the integral of the material property over the domain", "href": "../../../../source/postprocessors/ElementIntegralMaterialProperty.html"}>>>
mat_prop<<<{"description": "The name of the material property"}>>> = fis_gas_rel
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL LINEAR TIMESTEP_END'
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fission_gas_released_pct]
type = FGRPercent<<<{"description": "Computes the ratio of fission gas released to the fission gas generated in percent.", "href": "../../../../source/postprocessors/FGRPercent.html"}>>>
fission_gas_generated<<<{"description": "The fission gas generated postprocessor"}>>> = fission_gas_produced
fission_gas_released<<<{"description": "The fission gas released postprocessor"}>>> = fission_gas_released
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'console csv chkfile'
[]
[clad_internal_volume]
type = InternalVolume<<<{"description": "Computes the volume of an enclosed area by performing an integral over a user-supplied boundary.", "href": "../../../../source/postprocessors/InternalVolume.html"}>>>
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'clad_inside_bottom clad_inside_right clad_inside_top'
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL LINEAR TIMESTEP_END'
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fuel_volume]
type = InternalVolume<<<{"description": "Computes the volume of an enclosed area by performing an integral over a user-supplied boundary.", "href": "../../../../source/postprocessors/InternalVolume.html"}>>>
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'bottom_of_bottom_pellet pellet_outer_radial_surface
top_of_top_pellet'
scale_factor<<<{"description": "A scale factor to be applied to the internal volume calculation"}>>> = -1 # makes the fuel volume positive
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL LINEAR TIMESTEP_END'
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[sodium_volume]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = sodium_volume_function
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL LINEAR TIMESTEP_END'
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[gas_volume]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = gas_volume_function
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL LINEAR TIMESTEP_END'
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[plenum_compressibility]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = plenum_compressibility_function
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL LINEAR TIMESTEP_END'
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[compressibility_times_temperature]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = compressibility_times_temperature_function
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL LINEAR TIMESTEP_END'
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
###### BURNUP ######
[burnup_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = burnup
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[burnup_max_pct]
type = LinearCombinationPostprocessor<<<{"description": "Computes a linear combination between an arbitrary number of post-processors", "href": "../../../../source/postprocessors/LinearCombinationPostprocessor.html"}>>>
pp_names<<<{"description": "List of post-processors"}>>> = burnup_max
pp_coefs<<<{"description": "List of linear combination coefficients for each post-processor"}>>> = 100
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[burnup_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
variable<<<{"description": "The name of the variable that this object operates on"}>>> = burnup
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[burnup_avg_pct]
type = LinearCombinationPostprocessor<<<{"description": "Computes a linear combination between an arbitrary number of post-processors", "href": "../../../../source/postprocessors/LinearCombinationPostprocessor.html"}>>>
pp_names<<<{"description": "List of post-processors"}>>> = burnup_avg
pp_coefs<<<{"description": "List of linear combination coefficients for each post-processor"}>>> = 100
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'console csv chkfile'
[]
###### FUEL TEMPERATURE ######
[fuel_T_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = T
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fuel_T_max_peak]
type = TimeExtremeValue<<<{"description": "A postprocessor for reporting the extreme value of another postprocessor over time.", "href": "../../../../source/postprocessors/TimeExtremeValue.html"}>>>
postprocessor<<<{"description": "The name of the postprocessor used for reporting time extreme values"}>>> = fuel_T_max
value_type<<<{"description": "Type of extreme value to return.'max' returns the maximum value.'min' returns the minimum value.'abs_max' returns the maximum absolute value.'abs_min' returns the minimum absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[fuel_T_surface_max]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = pellet_outer_radial_surface
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = T
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fuel_T_surface_max_peak]
type = TimeExtremeValue<<<{"description": "A postprocessor for reporting the extreme value of another postprocessor over time.", "href": "../../../../source/postprocessors/TimeExtremeValue.html"}>>>
postprocessor<<<{"description": "The name of the postprocessor used for reporting time extreme values"}>>> = fuel_T_surface_max
value_type<<<{"description": "Type of extreme value to return.'max' returns the maximum value.'min' returns the minimum value.'abs_max' returns the maximum absolute value.'abs_min' returns the minimum absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
###### CLADDING TEMPERATURE ######
[clad_T_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = T
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[clad_T_max_peak]
type = TimeExtremeValue<<<{"description": "A postprocessor for reporting the extreme value of another postprocessor over time.", "href": "../../../../source/postprocessors/TimeExtremeValue.html"}>>>
postprocessor<<<{"description": "The name of the postprocessor used for reporting time extreme values"}>>> = clad_T_max
value_type<<<{"description": "Type of extreme value to return.'max' returns the maximum value.'min' returns the minimum value.'abs_max' returns the maximum absolute value.'abs_min' returns the minimum absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[clad_T_inner_surface_max]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = clad_inside_right
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = T
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[clad_T_inner_surface_max_peak]
type = TimeExtremeValue<<<{"description": "A postprocessor for reporting the extreme value of another postprocessor over time.", "href": "../../../../source/postprocessors/TimeExtremeValue.html"}>>>
postprocessor<<<{"description": "The name of the postprocessor used for reporting time extreme values"}>>> = clad_T_inner_surface_max
value_type<<<{"description": "Type of extreme value to return.'max' returns the maximum value.'min' returns the minimum value.'abs_max' returns the maximum absolute value.'abs_min' returns the minimum absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[clad_T_outer_surface_max]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = clad_outside_right
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = T
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[clad_T_outer_surface_max_peak]
type = TimeExtremeValue<<<{"description": "A postprocessor for reporting the extreme value of another postprocessor over time.", "href": "../../../../source/postprocessors/TimeExtremeValue.html"}>>>
postprocessor<<<{"description": "The name of the postprocessor used for reporting time extreme values"}>>> = clad_T_outer_surface_max
value_type<<<{"description": "Type of extreme value to return.'max' returns the maximum value.'min' returns the minimum value.'abs_max' returns the maximum absolute value.'abs_min' returns the minimum absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
###### COOLANT PARAMETERS ######
[T_coolant_in]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = coolant_T_in_function
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[T_coolant_out]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = T_coolant
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[coolant_flux]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = coolant_flux_function
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
###### FUEL DEFORMATION ######
[fuel_axial_elongation_min]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = disp_y
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = min
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fuel_axial_elongation_max]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = disp_y
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fuel_axial_elongation_max_pct]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = fuel_axial_elongation_max_pct_function
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'console csv chkfile'
[]
[fuel_radial_dilation_max]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = disp_x
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = pellet_outer_radial_surface
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fuel_radial_dilation_max_pct]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = fuel_radial_dilation_max_pct_function
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
###### CLADDING DEFORMATION ######
[clad_axial_elongation_max]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = disp_y
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[clad_axial_elongation_max_pct]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = clad_axial_elongation_max_pct_function
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[clad_radial_dilation_max]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = disp_x
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = clad_outside_right
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[clad_radial_dilation_max_pct]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = clad_radial_dilation_max_pct_function
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'console csv chkfile'
[]
###### GAP DEFORMATION AND MECHANICS ######
[gap_width_min]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = fuel_clad_gap_width
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = pellet_outer_radial_surface
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = min
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[gap_width_max]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = fuel_clad_gap_width
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = pellet_outer_radial_surface
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[gap_width_avg]
type = SideAverageValue<<<{"description": "Computes the average value of a variable on a sideset. Note that this cannot be used on the centerline of an axisymmetric model.", "href": "../../../../source/postprocessors/SideAverageValue.html"}>>>
variable<<<{"description": "The name of the variable which this postprocessor integrates"}>>> = fuel_clad_gap_width
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = pellet_outer_radial_surface
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[contact_pressure_max]
type = NodalExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/NodalExtremeValue.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = contact_pressure
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = pellet_outer_radial_surface
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
###### FUEL MECHANICS ######
[fuel_hydrostatic_stress_min]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = hydrostatic_stress
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = min
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fuel_hydrostatic_stress_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = hydrostatic_stress
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fuel_hydrostatic_stress_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
variable<<<{"description": "The name of the variable that this object operates on"}>>> = hydrostatic_stress
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fuel_volumetric_strain_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 'pellet blanket'
variable<<<{"description": "The name of the variable that this object operates on"}>>> = fuel_volumetric_strain
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
###### CLADDING MECHANICS ######
[clad_hoop_stress_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = clad_hoop_stress
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[clad_hoop_creep_strain_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = clad_hoop_creep_strain
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[clad_hoop_elastic_strain_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = clad_hoop_elastic_strain
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[clad_hoop_total_strain_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = clad_hoop_total_strain
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[cdf_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = cdf_failure
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'console csv'
[]
###### PERFORMANCE ######
[creep_timestep_fuel]
type = MaterialTimeStepPostprocessor<<<{"description": "This postprocessor estimates a timestep that reduces the increment change in a material property below a given threshold.", "href": "../../../../source/postprocessors/MaterialTimeStepPostprocessor.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[creep_timestep_blanket]
type = MaterialTimeStepPostprocessor<<<{"description": "This postprocessor estimates a timestep that reduces the increment change in a material property below a given threshold.", "href": "../../../../source/postprocessors/MaterialTimeStepPostprocessor.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = blanket
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[creep_timestep_clad]
type = MaterialTimeStepPostprocessor<<<{"description": "This postprocessor estimates a timestep that reduces the increment change in a material property below a given threshold.", "href": "../../../../source/postprocessors/MaterialTimeStepPostprocessor.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[creep_timestep_min]
type = FunctionValuePostprocessor<<<{"description": "Computes the value of a supplied function at a single point (scalable)", "href": "../../../../source/postprocessors/FunctionValuePostprocessor.html"}>>>
function<<<{"description": "The function which supplies the postprocessor value."}>>> = creep_timestep_min_function
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
###### SWELLING ######
[solid_swelling_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
variable<<<{"description": "The name of the variable that this object operates on"}>>> = solid_swelling
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[gas_swelling_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
variable<<<{"description": "The name of the variable that this object operates on"}>>> = gas_swelling
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[porosity_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
variable<<<{"description": "The name of the variable that this object operates on"}>>> = porosity
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[sodium_logged_porosity_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
variable<<<{"description": "The name of the variable that this object operates on"}>>> = sodium_logged_porosity
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
###### CLADDING WASTAGE ######
[wastage_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = wastage_thickness
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = 'csv chkfile'
[]
[wastage_min]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = wastage_thickness
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = min
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[wastage_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this object operates on"}>>> = wastage_thickness
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[eutectic_max]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = eutectic_thickness
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = max
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[eutectic_min]
type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../../../source/postprocessors/ElementExtremeValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = eutectic_thickness
value_type<<<{"description": "Type of extreme value to return. 'max' returns the maximum value. 'min' returns the minimum value. 'max_abs' returns the maximum of the absolute value."}>>> = min
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[eutectic_avg]
type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../../../../source/postprocessors/ElementAverageValue.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
variable<<<{"description": "The name of the variable that this object operates on"}>>> = eutectic_thickness
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[]
[VectorPostprocessors<<<{"href": "../../../../syntax/VectorPostprocessors/index.html"}>>>]
[fuel_centerline]
type = SideValueSampler<<<{"description": "Sample variable(s) along a sideset, internal or external.", "href": "../../../../source/vectorpostprocessors/SideValueSampler.html"}>>>
variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = 'T disp_x disp_y'
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = centerline
sort_by<<<{"description": "What to sort the samples by"}>>> = y
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[fuel_surface]
type = SideValueSampler<<<{"description": "Sample variable(s) along a sideset, internal or external.", "href": "../../../../source/vectorpostprocessors/SideValueSampler.html"}>>>
variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = 'T disp_x disp_y'
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = pellet_outer_radial_surface
sort_by<<<{"description": "What to sort the samples by"}>>> = y
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[clad_inner_surface]
type = SideValueSampler<<<{"description": "Sample variable(s) along a sideset, internal or external.", "href": "../../../../source/vectorpostprocessors/SideValueSampler.html"}>>>
variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = 'T disp_x disp_y'
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = clad_inside_right
sort_by<<<{"description": "What to sort the samples by"}>>> = y
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[clad_outer_surface]
type = SideValueSampler<<<{"description": "Sample variable(s) along a sideset, internal or external.", "href": "../../../../source/vectorpostprocessors/SideValueSampler.html"}>>>
variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = 'T disp_x disp_y'
boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = clad_outside_right
sort_by<<<{"description": "What to sort the samples by"}>>> = y
outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv
[]
[]
[PerformanceMetricOutputs<<<{"href": "../../../../syntax/PerformanceMetricOutputs/index.html"}>>>]
outputs<<<{"description": "Vector of output names to which you would like to restrict the output of the postprocessors generated by this action."}>>> = 'csv performance'
[]
[Outputs<<<{"href": "../../../../syntax/Outputs/index.html"}>>>]
color<<<{"description": "Set to false to turn off all coloring in all outputs"}>>> = true
perf_graph<<<{"description": "Enable printing of the performance graph to the screen (Console)"}>>> = true
file_base<<<{"description": "Common file base name to be utilized with all output objects"}>>> = '${composition}'
[console]
type = Console<<<{"description": "Object for screen output.", "href": "../../../../source/outputs/Console.html"}>>>
output_screen<<<{"description": "Output to the screen"}>>> = true
[]
[exodus]
type = Exodus<<<{"description": "Object for output data in the Exodus format", "href": "../../../../source/outputs/Exodus.html"}>>>
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL TIMESTEP_END FINAL'
time_step_interval<<<{"description": "The interval (number of time steps) at which output occurs. Unless explicitly set, the default value of this parameter is set to infinity if the wall_time_interval is explicitly set."}>>> = 50
file_base<<<{"description": "The desired solution output name without an extension. If not provided, MOOSE sets it with Outputs/file_base when available. Otherwise, MOOSE uses input file name and this object name for a master input or uses master file_base, the subapp name and this object name for a subapp input to set it."}>>> = '${composition}_exodus'
[]
[csv]
type = CSV<<<{"description": "Output for postprocessors, vector postprocessors, and scalar variables using comma seperated values (CSV).", "href": "../../../../source/outputs/CSV.html"}>>>
execute_postprocessors_on<<<{"description": "Control of when postprocessors are output"}>>> = 'INITIAL TIMESTEP_END'
execute_vector_postprocessors_on<<<{"description": "Enable/disable the output of VectorPostprocessors"}>>> = FINAL
file_base<<<{"description": "The desired solution output name without an extension. If not provided, MOOSE sets it with Outputs/file_base when available. Otherwise, MOOSE uses input file name and this object name for a master input or uses master file_base, the subapp name and this object name for a subapp input to set it."}>>> = '${composition}_csv'
[]
[chkfile]
type = CSV<<<{"description": "Output for postprocessors, vector postprocessors, and scalar variables using comma seperated values (CSV).", "href": "../../../../source/outputs/CSV.html"}>>>
execute_postprocessors_on<<<{"description": "Control of when postprocessors are output"}>>> = FINAL
file_base<<<{"description": "The desired solution output name without an extension. If not provided, MOOSE sets it with Outputs/file_base when available. Otherwise, MOOSE uses input file name and this object name for a master input or uses master file_base, the subapp name and this object name for a subapp input to set it."}>>> = '${composition}_chkfile'
[]
[performance]
type = CSV<<<{"description": "Output for postprocessors, vector postprocessors, and scalar variables using comma seperated values (CSV).", "href": "../../../../source/outputs/CSV.html"}>>>
hide<<<{"description": "A list of the variables and postprocessors that should NOT be output to the Exodus file (may include Variables, ScalarVariables, and Postprocessor names)."}>>> = 'plenum_pressure plenum_temperature'
execute_postprocessors_on<<<{"description": "Control of when postprocessors are output"}>>> = FINAL
file_base<<<{"description": "The desired solution output name without an extension. If not provided, MOOSE sets it with Outputs/file_base when available. Otherwise, MOOSE uses input file name and this object name for a master input or uses master file_base, the subapp name and this object name for a subapp input to set it."}>>> = '${composition}_performance'
[]
[]
# REFERENCES
# [Bauer and Holland, 1995]
# T.H. Bauer, J.W. Holland "In-Pile Measurement of the Thermal Conductivity
# of Irradiated Metallic Fuel" Nuclear Technology Vol 110 Issue 3, 407-421,
# (1995)
# [Cabell, 1980]
# C.P. Cabell "A Summary Description of the Fast Flux Test Facility"
# Westinghouse Hanford Company HEDL-400, Hanford, Washington (1980)
# [Casagranda et al., 2020]
# A. Casagranda, S. Novascone, L. Aagesen, W. Jiang, J.H. Ke, D. Stafford,
# C. Matthews, A. Toptan, K. Gamble, J. Hales, "Summary of BISON Milestones:
# NEAMS FY-20 Report" Idaho National Laboratory INL/EXT-20-60002-Rev000,
# 1768565, Idaho Falls, Idaho (2020)
# [Dodds, 1986-1]
# N.E. Dodds, "Test design description. Volumne 1B. IFR-1 metal fuel
# irradiation (AK-181)" Argonne National Laboratory ANL-iFR-43, Argonne,
# Illinois, (1986)
# [Dodds, 1986-2]
# N.E. Dodds, "Test design description Volume 2, Part 1. IFR-1 metal fuel
# irradiation test (AK-181) element as-built data" Argonne National
# Laboratory ANL-IFR-44, Argonne, Illinois (1986)
# [Fink and Leibowitz, 1995]
# J. K. Fink and L. Leibowitz, "Thermodynamic and transport properties of
# sodium liquid and vapor", Argonne National Laboratory ANL/RE--95/2, 94649,
# Argonne, Illinois (1995)
# [Greenquist et al., 2021]
# I. Greenquist, K.M. Cunningham, J. Hu, J.J. Powers, D.C. Crawford,
# "Development of a U-19Pu-10Zr fuel performance benchmark case based on the
# IFR-1 experiment" Journal of Nuclear Materials Vol. 553, 152997 (2021)
# [Hirschhorn and Powers, 2021]
# J. Hirschhorn, J. Powers "Assessment of the BISON Metallic Fuel
# Performance Models", Oak Ridge National Laboratory ORNLTM-2020/1824,
# 1763469, Oak Ridge, Tennessee (2021)
# [Hobbs and Charboneau, 2020]
# I.M. Hobbs, J.A. Charboneau "Compressibility of gas mixtures pertaining to
# nuclear fuel rods" Journal of Physics Comminications Vol. 4, Iss. 9,
# 095008 (2020)
# [Hofman et al., 1989]
# G. L. Hofman, M. C. Billone, J. F. Koenig, J. M. Kramer, J. D. B. Lambert,
# L. Leibowitz, Y. Orechwa, D. R. Pedersen, D. L. Porter, H. Tsai, A. E.
# Wright, "Metallic Fuels Handbook", Argonne National Laboratory ANL-NSE-3,
# Argonne, Illinois (1989)
# [Janney, 2018]
# Dawn E. Janney, "Metallic Fuels Handbook, Part 1: Alloys Based on U-Zr,
# Pu-Zr, U-Pu, or U-Pu-Zr, Including Those with Minor Actinides (Np, Am,
# Cm), Rare-earth Elements (La, Ce, Pr, Nd, Gd), and Y", Idaho National
# Laboratory INL/EXT-15-36520, Idaho Falls, Idaho (2018)
# [Pahl et al., 1990]
# R.G. Pahl, D.L. Porter, C.E. Lahm, G.L. Hofman "Experimental studies of
# U-Pu-Zr fast reactor fuel pins in the Experimental Breeder Reactor-II"
# Metallurgic Transactions A Vol 21A, 1863-1870, (1990)
# [Porter and Tsai, 2011]
# D. L. Porter and H. Tsai, "Full-Length Metallic Fast Reactor Fuel Pin Test
# in FFTF (IFR-1)"", Idaho National Laboratory INL/LTD-11-21062, Idaho
# Falls, Idaho (2011)
# [Shultis and Faw, 2008]
# J.K. Shultis, R.E. Faw "Fundamentals of Nuclear Science and Engineering
# Second Edition" CRC Press, Boca Raton, Florida (2008)
# [Tsai et al., 1986]
# H. Tsai, L.A. Neimark, M.C. Billone, R.M. Fryer, J.F. Koenig, W.K. Lehto,
# D.J. Malloy, "Test Design Description (TDD). Volume 1A. Design description
# and safety analysis for IFR-1 metal fuels irradiation test in FFTF"
# Argonne National Laboratory ANL-IFR-33, Argonne, Illinois (1986)(assessment/metallic_fuel/FFTF/IFR1/analysis/IFR1_base.i)The composition-dependent inputs are stored separately in .params files:
composition=U-10Zr
critical_porosity=0.26
enrichment_U235=0.254
fgr_init=0.454
fgr_post=0.714
initial_X_Pu=0
interconnection_init_porosity=0.25
interconnection_term_porosity=0.27
Na_infiltration_fraction=0.08
(assessment/metallic_fuel/FFTF/IFR1/analysis/U-10Zr.params)composition=U-8Pu-10Zr
critical_porosity=0.29
enrichment_U235=0.182
fgr_init=0.608
fgr_post=0.784
initial_X_Pu=0.069
interconnection_init_porosity=0.28
interconnection_term_porosity=0.30
Na_infiltration_fraction=0.13
(assessment/metallic_fuel/FFTF/IFR1/analysis/U-8Pu-10Zr.params)composition=U-19Pu-10Zr
critical_porosity=0.29
enrichment_U235=0.055
fgr_init=0.608
fgr_post=0.784
initial_X_Pu=0.163
interconnection_init_porosity=0.28
interconnection_term_porosity=0.30
Na_infiltration_fraction=0.13
(assessment/metallic_fuel/FFTF/IFR1/analysis/U-19Pu-10Zr.params)To run a simulation with a specific composition, use the combined input option like so:
mpiexec -n 8 path/to/bison-opt -i 'IFR1_base.i U-10Zr.params'
Results Comparison
There are 10 experimental measurements/calculations that can be compared against BISON results: peak and average burnups, coolant outlet and peak cladding temperatures, cladding radial dilation, cladding and fuel axial elongations, fission gas release, plenum pressure, and cladding wastage. Figure 4, Figure 5, and Figure 6 show these results for the U-10Zr, U-8Pu-10Zr, and U-19Pu-10Zr cases, respectively.

Figure 4: BISON simulation (red) and legacy (black) results for U-10Zr pins.

Figure 5: BISON simulation (red) and legacy (black) results for U-8Pu-10Zr pins.

Figure 6: BISON simulation (red) and legacy (black) results for U-19Pu-10Zr pins.
Discussion
The burnup, temperature, fission gas release, and plenum predictions are all reasonably accurate. BISON under-predicted fuel axial elongation in the U-10Zr and U-8Pu-10Zr cases, but was reasonably accurate in the U-19Pu-10Zr case. BISON over-predicted cladding dilation, cladding elongation, and cladding wastage to the extent that PIE data were available for comparison.
The differences in fuel elongation predictions may be because UPuZrGaseousEigenstrain does not account for fuel composition. Since different compositions are known to swell differently, this may be a source of some of the error.
References
- Ian Greenquist, Kaylee M. Cunningham, Jianwei Hu, and Jeffrey J. Powers.
A Metallic Fuel Performance Benchmark Problem Based on the IFR-1 Experiment.
Technical Report ORNL/TM-2020/1534, Oak Ridge National Laboratory (ORNL), Oak Ridge, TN, June 2020.[BibTeX]
- Ian Greenquist, Kaylee M. Cunningham, Jianwei Hu, Jeffrey J. Powers, and Douglas C. Crawford.
Development of a U-19Pu-10Zr fuel performance benchmark case based on the IFR-1 experiment.
Journal of Nuclear Materials, 553:152997, September 2021.
URL: https://linkinghub.elsevier.com/retrieve/pii/S0022311521002208 (visited on 2021-08-06), doi:10.1016/j.jnucmat.2021.152997.[BibTeX]
- D L Porter and H Tsai.
Full-length Metallic Fast Reactor Fuel Pin Test in FFTF (IFR-1).
Technical Report INL/LTD-11-21062, Idaho National Laboratory (INL), Idaho Falls, ID, March 2011.[BibTeX]