Sodium Cooled Metal Fuel Reactor Tutorial

[GlobalParams<<<{"href": "../../syntax/GlobalParams/index.html"}>>>]
  density = ${fuel_density}
  order = FIRST
  family = LAGRANGE
  energy_per_fission = 3.2e-11 # J/fission
  volumetric_locking_correction = false
  displacements = 'disp_x disp_y' # RZ-2D
  X_Pu = ${fuel_pu}
  X_Zr = ${fuel_zr}
[]

[Problem<<<{"href": "../../syntax/Problem/index.html"}>>>]
  type = ReferenceResidualProblem
  extra_tag_vectors = 'ref'
  reference_vector = 'ref'
  group_variables = 'disp_x disp_y'
[]

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  coord_type = RZ
  # Pin design parameters from FIPD database
  [gen]
    type = FIPDRodletMeshGenerator<<<{"description": "Creates a 2D-RZ axisymmetric mesh of a fuel rod using an FIPD geometry file.", "href": "../../source/meshgenerators/FIPDRodletMeshGenerator.html"}>>>
    fipd_geom_file<<<{"description": "File containing geometry data of fuel pin from FIPD."}>>> = ${raw '../../../../../../../fipd-bison-integration-data/X447/ ${pin_id} / ${pin_id} _design.csv'}

    gap_bottom_length<<<{"description": "Length of gap between bottom of fuel and inside bottom surface of cladding"}>>> = 0.31e-3 # arbitrary
    cladding_bottom_plug_length<<<{"description": "Length of bottom cladding plug"}>>> = 2.24e-3 # arbitrary
    cladding_top_plug_length<<<{"description": "Length of top cladding plug"}>>> = 2.24e-3 # arbitrary

    cladding_sidewall_radial_elements<<<{"description": "Number of radial elements in the cladding sidewall"}>>> = 10
    cladding_sidewall_axial_element_numbers<<<{"description": "List of number of elements within the intervals in 'cladding_sidewall_axial_element_intervals'. The length of this list must be one less than 'cladding_sidewall_axial_element_intervals'."}>>> = '2 150 150'
    cladding_top_plug_radial_elements<<<{"description": "Number of radial elements in the top cladding plug"}>>> = 10
    cladding_top_plug_axial_elements<<<{"description": "Number of radial elements in the top cladding plug"}>>> = 5
    cladding_bottom_plug_radial_elements<<<{"description": "Number of radial elements in the bottom cladding plug"}>>> = 10
    cladding_bottom_plug_axial_elements<<<{"description": "Number of radial elements in the bottom cladding plug"}>>> = 5
    fuel_radial_elements<<<{"description": "Number of radial elements in the fuel"}>>> = 6
    fuel_axial_element_intervals<<<{"description": "List of relative locations of intervals in the fuel length for which to set a specific number of elements. List must start with 0 and end with 1."}>>> = '0 1'
    fuel_axial_element_numbers<<<{"description": "List of number of elements within the intervals in 'fuel_axial_element_intervals'. The length of this list must be one less than 'fuel_axial_element_intervals'."}>>> = '150'
    use_default_cladding_sidewall_axial_element_intervals<<<{"description": "A Boolean parameter to decide is a a trivial set of cladding sidewall axial element intervals (i.e., hollow cladding bottom, fuel slug bottom, fuel slug top, and hollow cladding top) is used."}>>> = true
    elem_type<<<{"description": "The type of element from libMesh to generate for the regions to be meshed by quadrilateral elements. If applicable, TRI3 elements are used for the regions to be meshed by triangular elements if QUAD4 is selected here, whereas TRI6 elements are used if QUAD8/QUAD9 is selected "}>>> = QUAD4
  []
[]

[Variables<<<{"href": "../../syntax/Variables/index.html"}>>>]
  [temp]
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 298
  []
[]

[AuxVariables<<<{"href": "../../syntax/AuxVariables/index.html"}>>>]
  [creep_strain_mag]
    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
  []
  [gap_cond]
    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
  []
  [coolant_htc]
    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
  []
  [cumulative_damage_index]
    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
  []
  [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
  []
  [solid_swell]
    block = fuel
    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
  []
  [gas_swell]
    block = fuel
    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
  []
  [total_hoop_strain]
    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
  []
  [func_val1] # Just for visualization
  []
  [func_val2] # Just for visualization
  []
  # AuxVariables used for thermal expansion correction
  [fuel_thermal_strain_xx]
    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
    block = fuel
  []
  [fuel_thm_exp]
    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
    block = fuel
  []
  [clad_thermal_eigenstrain_xx]
    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
    block = cladding
  []
  [clad_thm_exp]
    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
    block = cladding
  []
[]

[Functions<<<{"href": "../../syntax/Functions/index.html"}>>>]
  [clad_od_temp] # Time-dependent cladding OD temperature from FIPD database
    type = FIPDAxialProfileFunction<<<{"description": "Interpolates FIPD-based time-dependent axial profile data (e.g., temperature and peaking factor) file to generate a Function that can be used by other BISON objects.", "href": "../../source/functions/FIPDAxialProfileFunction.html"}>>>
    data_file<<<{"description": "CSV file containing csv data for use with FIPDAxialProfileFunction"}>>> = ${raw '../../../../../../../fipd-bison-integration-data/X447/ ${pin_id} /clad_od_temp_history_ ${pin_id} .csv'}
    use_metadata<<<{"description": "Whether to use the pellet radius value from MeshMetaDataInterface."}>>> = true
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = gen
  []
  [power_history] # Time-dependent pin average power from FIPD database
    type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../source/functions/PiecewiseLinear.html"}>>>
    data_file<<<{"description": "File holding CSV data"}>>> = ${raw '../../../../../../../fipd-bison-integration-data/X447/ ${pin_id} /power_history_ ${pin_id} .csv'}
  []
  [pwr_axial_peaking_factors] # Power peaking factor from FIPD database; used for fuel related simulations
    type = FIPDAxialProfileFunction<<<{"description": "Interpolates FIPD-based time-dependent axial profile data (e.g., temperature and peaking factor) file to generate a Function that can be used by other BISON objects.", "href": "../../source/functions/FIPDAxialProfileFunction.html"}>>>
    data_file<<<{"description": "CSV file containing csv data for use with FIPDAxialProfileFunction"}>>> = ${raw '../../../../../../../fipd-bison-integration-data/X447/ ${pin_id} /peakingfactor_power_relative_ ${pin_id} .csv'}
    use_metadata<<<{"description": "Whether to use the pellet radius value from MeshMetaDataInterface."}>>> = true
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = gen
    zero_ends<<<{"description": "Whether the data are set to zero at two ends."}>>> = true
    data_shift_type<<<{"description": "Data type for data shift setup. Options: temperature peaking custom"}>>> = peaking
  []
  [pwr_axial_peaking_factors_elongate] # Power peaking factor from FIPD database; used for cladding related simulations
    type = FIPDAxialProfileFunction<<<{"description": "Interpolates FIPD-based time-dependent axial profile data (e.g., temperature and peaking factor) file to generate a Function that can be used by other BISON objects.", "href": "../../source/functions/FIPDAxialProfileFunction.html"}>>>
    data_file<<<{"description": "CSV file containing csv data for use with FIPDAxialProfileFunction"}>>> = ${raw '../../../../../../../fipd-bison-integration-data/X447/ ${pin_id} /peakingfactor_power_relative_ ${pin_id} .csv'}
    use_metadata<<<{"description": "Whether to use the pellet radius value from MeshMetaDataInterface."}>>> = true
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = gen
    zero_ends<<<{"description": "Whether the data are set to zero at two ends."}>>> = true
    data_shift_type<<<{"description": "Data type for data shift setup. Options: temperature peaking custom"}>>> = peaking
    fuel_elongation_pp<<<{"description": "Name of postprocess that tracks fuel elongation (optional)."}>>> = max_fuel_elongation # pp used to track fuel elongation
  []
  [fflux_axial_peaking_factors] # Fast flux peaking factor from FIPD database; used for fuel related simulations
    type = FIPDAxialProfileFunction<<<{"description": "Interpolates FIPD-based time-dependent axial profile data (e.g., temperature and peaking factor) file to generate a Function that can be used by other BISON objects.", "href": "../../source/functions/FIPDAxialProfileFunction.html"}>>>
    data_file<<<{"description": "CSV file containing csv data for use with FIPDAxialProfileFunction"}>>> = ${raw '../../../../../../../fipd-bison-integration-data/X447/ ${pin_id} /peakingfactor_flux_relative_ ${pin_id} .csv'}
    use_metadata<<<{"description": "Whether to use the pellet radius value from MeshMetaDataInterface."}>>> = true
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = gen
    zero_ends<<<{"description": "Whether the data are set to zero at two ends."}>>> = true
    data_shift_type<<<{"description": "Data type for data shift setup. Options: temperature peaking custom"}>>> = peaking
    extrapolate_to_zero<<<{"description": "Whether the data are extrapolate to zero on both ends. This option must be used when zero_ends option is set as true."}>>> = true
  []
  [fflux_axial_peaking_factors_elongate] # Fast flux peaking factor from FIPD database; used for cladding related simulations
    type = FIPDAxialProfileFunction<<<{"description": "Interpolates FIPD-based time-dependent axial profile data (e.g., temperature and peaking factor) file to generate a Function that can be used by other BISON objects.", "href": "../../source/functions/FIPDAxialProfileFunction.html"}>>>
    data_file<<<{"description": "CSV file containing csv data for use with FIPDAxialProfileFunction"}>>> = ${raw '../../../../../../../fipd-bison-integration-data/X447/ ${pin_id} /peakingfactor_flux_relative_ ${pin_id} .csv'}
    use_metadata<<<{"description": "Whether to use the pellet radius value from MeshMetaDataInterface."}>>> = true
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = gen
    zero_ends<<<{"description": "Whether the data are set to zero at two ends."}>>> = true
    data_shift_type<<<{"description": "Data type for data shift setup. Options: temperature peaking custom"}>>> = peaking
    extrapolate_to_zero<<<{"description": "Whether the data are extrapolate to zero on both ends. This option must be used when zero_ends option is set as true."}>>> = true
    fuel_elongation_pp<<<{"description": "Name of postprocess that tracks fuel elongation (optional)."}>>> = max_fuel_elongation # pp used to track fuel elongation
  []
  [flux_history] # Time-dependent pin average fast flux from FIPD database
    type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../source/functions/PiecewiseLinear.html"}>>>
    data_file<<<{"description": "File holding CSV data"}>>> = ${raw '../../../../../../../fipd-bison-integration-data/X447/ ${pin_id} /flux_history_ ${pin_id} .csv'}
  []
  [flow_rate_history] # Time-dependent flow mass flux from FIPD database; no longer needed if FIPD temperature is used as BC.
    type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../source/functions/PiecewiseLinear.html"}>>>
    data_file<<<{"description": "File holding CSV data"}>>> = ${raw '../../../../../../../fipd-bison-integration-data/X447/ ${pin_id} /flow_history_ ${pin_id} .csv'}
  []
  [coolant_press_ramp]
    type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../source/functions/PiecewiseLinear.html"}>>>
    x<<<{"description": "The abscissa values"}>>> = '0 ${time_last}'
    y<<<{"description": "The ordinate values"}>>> = '0.151e6 0.151e6'
  []
  [id_vpp_func] # vpp_function used to track FCCI-related cladding degradation.
    type = MetallicFuelWastageDegradationFunction<<<{"description": "Generate a cladding degradation factor function based on two columns of a VectorPostprocessor that tracks the axial profile of either FCCI or CCCI wastage thickness.", "href": "../../source/functions/MetallicFuelWastageDegradationFunction.html"}>>>
    vectorpostprocessor_name<<<{"description": "The name of the VectorPostprocessor that you want to use"}>>> = id_wastage
    argument_column<<<{"description": "VectorPostprocessor column tabulating the abscissa of the sampled function."}>>> = y
    wastage_type<<<{"description": "Wastage type to be used. Options: ID OD"}>>> = ID
    value_column<<<{"description": "VectorPostprocessor column tabulating the ordinate (function values) of the sampled function."}>>> = wastage_thickness
    use_metadata<<<{"description": "Whether to use the pellet radius value from MeshMetaDataInterface."}>>> = true
    degradation_factor<<<{"description": "Degradation factor that measures the loss of mechanical strength due to ID wastage."}>>> = 0.001
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = 'gen'
    transition_width<<<{"description": "Transition layer thickness between intact and degraded region."}>>> = 1E-4
  []
  [od_vpp_func] # vpp_function used to track CCCI-related cladding degradation.
    type = MetallicFuelWastageDegradationFunction<<<{"description": "Generate a cladding degradation factor function based on two columns of a VectorPostprocessor that tracks the axial profile of either FCCI or CCCI wastage thickness.", "href": "../../source/functions/MetallicFuelWastageDegradationFunction.html"}>>>
    vectorpostprocessor_name<<<{"description": "The name of the VectorPostprocessor that you want to use"}>>> = od_wastage
    argument_column<<<{"description": "VectorPostprocessor column tabulating the abscissa of the sampled function."}>>> = y
    wastage_type<<<{"description": "Wastage type to be used. Options: ID OD"}>>> = OD
    value_column<<<{"description": "VectorPostprocessor column tabulating the ordinate (function values) of the sampled function."}>>> = cc_wastage_thickness
    use_metadata<<<{"description": "Whether to use the pellet radius value from MeshMetaDataInterface."}>>> = true
    degradation_factor<<<{"description": "Degradation factor that measures the loss of mechanical strength due to ID wastage."}>>> = 0.001
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = 'gen'
    transition_width<<<{"description": "Transition layer thickness between intact and degraded region."}>>> = 1E-4
  []
  [ci_temp] # vpp_function used to track cladding ID temperature.
    type = PiecewiseLinearFromVectorPostprocessor<<<{"description": "Provides piecewise linear interpolation of from two columns of a VectorPostprocessor", "href": "../../source/functions/PiecewiseLinearFromVectorPostprocessor.html"}>>>
    argument_column<<<{"description": "VectorPostprocessor column tabulating the abscissa of the sampled function"}>>> = y
    component<<<{"description": "Component of the function evaluation point used to sample the VectorPostprocessor"}>>> = y
    value_column<<<{"description": "VectorPostprocessor column tabulating the ordinate (function values) of the sampled function"}>>> = temp
    vectorpostprocessor_name<<<{"description": "The name of the VectorPostprocessor that you want to use"}>>> = clad_inn_temp
  []
  [na_vol] # Get sodium volume from mesh generator
    type = MeshPropertyFunction<<<{"description": "Converts a Real type mesh generator metadata into a constant function.", "href": "../../source/functions/MeshPropertyFunction.html"}>>>
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = gen
    mesh_property_name<<<{"description": "The name of the mesh property that needs to be read."}>>> = sodium_volume
    scale_factor<<<{"description": "The constant factor used to scale the mesh property. A common use of this scale factor is to switch the sign of the mesh property."}>>> = -1.0
  []
[]

[Physics<<<{"href": "../../syntax/Physics/index.html"}>>>/SolidMechanics<<<{"href": "../../syntax/Physics/SolidMechanics/index.html"}>>>/QuasiStatic<<<{"href": "../../syntax/Physics/SolidMechanics/QuasiStatic/index.html"}>>>]
  temperature<<<{"description": "The temperature"}>>> = temp
  add_variables<<<{"description": "Add the displacement variables"}>>> = true
  [fuel]
    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 volumetric_strain'
    extra_vector_tags<<<{"description": "The tag names for extra vectors that residual data should be saved into"}>>> = 'ref'
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = fuel
    eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = 'fuel_thermal_strain fuel_volumetric_strain'
  []
  [clad]
    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 hoop_stress hoop_creep_strain hoop_elastic_strain'
    extra_vector_tags<<<{"description": "The tag names for extra vectors that residual data should be saved into"}>>> = 'ref'
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = cladding
    eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = 'clad_thermal_eigenstrain'
  []
[]

[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]
    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"}>>> = temp
    extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = 'ref'
  []
  [heat_ie_f]
    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"}>>> = temp
    extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = 'ref'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [heat_ie_c]
    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"}>>> = temp
    extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = 'ref'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
  []
  [heat_source]
    type = FissionRateHeatSource<<<{"description": "Applies energy deposition as a function of a material fission rate.", "href": "../../source/kernels/FissionRateHeatSource.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temp
    fission_rate<<<{"description": "Fission rate material name"}>>> = fission_rate
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
    extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = 'ref'
  []
[]

[AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
  [conductance]
    type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../source/auxkernels/MaterialRealAux.html"}>>>
    property<<<{"description": "The material property name."}>>> = gap_conductance
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = gap_cond
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = fuel_outer_radial_surface
  []
  [cdf_amount]
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../source/auxkernels/MaterialRealAux.html"}>>>
    property<<<{"description": "The material property name."}>>> = cdf_failure
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = cumulative_damage_index
  []
  [failed_element]
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../source/auxkernels/MaterialRealAux.html"}>>>
    property<<<{"description": "The material property name."}>>> = failed
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = element_failed
  []
  [gas_swell]
    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"}>>> = gas_swell
    property<<<{"description": "The material property name."}>>> = gas_swelling
    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
  []
  [solid_swell]
    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"}>>> = solid_swell
    property<<<{"description": "The material property name."}>>> = solid_swelling
    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
  []
  [total_hoop_strain]
    type = RankTwoAux<<<{"description": "Access a component of a RankTwoTensor", "href": "../../source/auxkernels/RankTwoAux.html"}>>>
    rank_two_tensor<<<{"description": "The rank two material tensor name"}>>> = total_strain
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = total_hoop_strain
    index_j<<<{"description": "The index j of ij for the tensor to output (0, 1, 2)"}>>> = 2
    index_i<<<{"description": "The index i of ij for the tensor to output (0, 1, 2)"}>>> = 2
    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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
  []
  [func_val1]
    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"}>>>
    function<<<{"description": "The function to use as the value"}>>> = id_vpp_func
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = func_val1
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
  []
  [func_val2]
    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"}>>>
    function<<<{"description": "The function to use as the value"}>>> = od_vpp_func
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = func_val2
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
  []
  # AuxKernels used to correct thermal expansion
  [fuel_thermal_strain_xx]
    type = RankTwoAux<<<{"description": "Access a component of a RankTwoTensor", "href": "../../source/auxkernels/RankTwoAux.html"}>>>
    rank_two_tensor<<<{"description": "The rank two material tensor name"}>>> = fuel_thermal_strain
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = fuel_thermal_strain_xx
    index_j<<<{"description": "The index j of ij for the tensor to output (0, 1, 2)"}>>> = 0
    index_i<<<{"description": "The index i of ij for the tensor to output (0, 1, 2)"}>>> = 0
    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'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [fuel_thm_exp]
    type = SpatialUserObjectAux<<<{"description": "Populates an auxiliary variable with a spatial value returned from a UserObject spatialValue method.", "href": "../../source/auxkernels/SpatialUserObjectAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = fuel_thm_exp
    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'
    user_object<<<{"description": "The UserObject UserObject to get values from.  Note that the UserObject _must_ implement the spatialValue() virtual function!"}>>> = fuel_thm_exp
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [clad_thermal_eigenstrain_xx]
    type = RankTwoAux<<<{"description": "Access a component of a RankTwoTensor", "href": "../../source/auxkernels/RankTwoAux.html"}>>>
    rank_two_tensor<<<{"description": "The rank two material tensor name"}>>> = clad_thermal_eigenstrain
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = clad_thermal_eigenstrain_xx
    index_j<<<{"description": "The index j of ij for the tensor to output (0, 1, 2)"}>>> = 0
    index_i<<<{"description": "The index i of ij for the tensor to output (0, 1, 2)"}>>> = 0
    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'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
  []
  [clad_thm_exp]
    type = SpatialUserObjectAux<<<{"description": "Populates an auxiliary variable with a spatial value returned from a UserObject spatialValue method.", "href": "../../source/auxkernels/SpatialUserObjectAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = clad_thm_exp
    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'
    user_object<<<{"description": "The UserObject UserObject to get values from.  Note that the UserObject _must_ implement the spatialValue() virtual function!"}>>> = clad_thm_exp
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
  []
[]

[Contact<<<{"href": "../../syntax/Contact/index.html"}>>>]
  [pellet_clad_mechanical]
    primary<<<{"description": "The list of boundary IDs referring to primary sidesets"}>>> = cladding_inside_right
    secondary<<<{"description": "The list of boundary IDs referring to secondary sidesets"}>>> = fuel_outer_radial_surface
    penalty<<<{"description": "The penalty to apply.  This can vary depending on the stiffness of your materials"}>>> = 1e12
    model<<<{"description": "The contact model to use"}>>> = frictionless
    normalize_penalty<<<{"description": "Whether to normalize the penalty parameter with the nodal area."}>>> = true
    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 = temp
    primary = cladding_inside_right
    secondary = fuel_outer_radial_surface
    quadrature = true
    gap_conductivity = 61.0
    min_gap = 0.5e-03 # Adjustable
  []
[]

[BCs<<<{"href": "../../syntax/NuclearMaterials/BCs/index.html"}>>>]
  [no_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
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = centerline
    value<<<{"description": "Value of the BC"}>>> = 0.0
  []
  [no_y_fuel]
    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
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = fuel_bottom
    value<<<{"description": "Value of the BC"}>>> = 0.0
  []
  [no_y_clad]
    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
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = cladding_outside_bottom
    value<<<{"description": "Value of the BC"}>>> = 0.0
  []
  [fuel_top_temp] # Artificially set fuel top temperature; this could also be a Robin BC. Helps to avoid superhigh fuel top temperature in some extreme cases
    type = FunctionDirichletBC<<<{"description": "Imposes the essential boundary condition $u=g(t,\\vec{x})$, where $g$ is a (possibly) time and space-dependent MOOSE Function.", "href": "../../source/bcs/FunctionDirichletBC.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = fuel_top
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temp
    function<<<{"description": "The forcing function."}>>> = ci_temp
  []
  [surf] # Setting temperature BC base on FIPD data
    type = FunctionDirichletBC<<<{"description": "Imposes the essential boundary condition $u=g(t,\\vec{x})$, where $g$ is a (possibly) time and space-dependent MOOSE Function.", "href": "../../source/bcs/FunctionDirichletBC.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temp
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'cladding_outside_bottom cladding_outside_right cladding_outside_top'
    function<<<{"description": "The forcing function."}>>> = clad_od_temp
  []
  [Pressure<<<{"href": "../../syntax/BCs/Pressure/index.html"}>>>]
    [coolantPressure]
      boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 'cladding_outside_bottom cladding_outside_right cladding_outside_top'
      function<<<{"description": "The function that describes the pressure"}>>> = coolant_press_ramp
    []
  []
  [PlenumPressure<<<{"href": "../../syntax/BCs/PlenumPressure/index.html"}>>>]
    [plenumPressure]
      boundary<<<{"description": "The list of boundary IDs from the mesh where the pressure will be applied"}>>> = 'fuel_outside_all cladding_inside_all'
      initial_pressure<<<{"description": "The initial pressure in the cavity.  If not given, a zero initial pressure will be used."}>>> = 0.084e6 # Pa
      startup_time<<<{"description": "The amount of time during which the pressure will ramp from zero to its true value."}>>> = 0
      R<<<{"description": "The universal gas constant for the units used."}>>> = 8.3143
      temperature<<<{"description": "The name of the average temperature postprocessor value."}>>> = ave_temp_interior
      volume<<<{"description": "The name of the postprocessor(s) that holds the value of the internal volume in the cavity"}>>> = gas_volume
      output<<<{"description": "The name to use for the cavity pressure value"}>>> = plenum_pressure
      material_input<<<{"description": "The name of the postprocessor(s) that holds the amount of material injected into the plenum."}>>> = fis_gas_released
    []
  []
[]

[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
  [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"}>>> = fuel
    rod_linear_power<<<{"description": "Function that describes the linear power as a function of time."}>>> = power_history
    axial_power_profile<<<{"description": "Function that describes the axial power profile as a function of axial position and time."}>>> = pwr_axial_peaking_factors
    use_metadata<<<{"description": "Whether to use the pellet radius value from MeshMetaDataInterface."}>>> = true
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = gen
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [fission_rate_elongate]
    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"}>>> = cladding
    fission_rate_name<<<{"description": "Name of the fission rate material property this object creates"}>>> = fission_rate
    rod_linear_power<<<{"description": "Function that describes the linear power as a function of time."}>>> = power_history
    axial_power_profile<<<{"description": "Function that describes the axial power profile as a function of axial position and time."}>>> = pwr_axial_peaking_factors_elongate
    use_metadata<<<{"description": "Whether to use the pellet radius value from MeshMetaDataInterface."}>>> = true
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = gen
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [burnup]
    type = UPuZrBurnup<<<{"description": "Computes the burnup for UPuZr metallic fuel.", "href": "../../source/materials/UPuZrBurnup.html"}>>>
    initial_X_Pu<<<{"description": "Initial atom fraction of plutonium."}>>> = ${fuel_pu}
    initial_X_Zr<<<{"description": "Initial atom fraction of zirconium."}>>> = ${fuel_zr}
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [burnup_elongate]
    type = UPuZrBurnup<<<{"description": "Computes the burnup for UPuZr metallic fuel.", "href": "../../source/materials/UPuZrBurnup.html"}>>>
    initial_X_Pu<<<{"description": "Initial atom fraction of plutonium."}>>> = ${fuel_pu}
    initial_X_Zr<<<{"description": "Initial atom fraction of zirconium."}>>> = ${fuel_zr}
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    burnup_name<<<{"description": "Name of created burnup material"}>>> = burnup
  []
  [fast_neutron_flux]
    type = FastNeutronFlux<<<{"description": "Computes fast neutron flux.", "href": "../../source/materials/FastNeutronFlux.html"}>>>
    calculate_fluence<<<{"description": "Flag to calculate fluence from the flux."}>>> = true
    rod_ave_lin_pow<<<{"description": "Function that describes the linear power as a function of time."}>>> = flux_history
    axial_power_profile<<<{"description": "Function that describes the axial power profile as a function of axial position and time."}>>> = fflux_axial_peaking_factors
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
    factor<<<{"description": "Constant multiplied against the function, rod average linear power, or q_variable."}>>> = 1.0
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [fast_neutron_flux_elongate]
    type = FastNeutronFlux<<<{"description": "Computes fast neutron flux.", "href": "../../source/materials/FastNeutronFlux.html"}>>>
    calculate_fluence<<<{"description": "Flag to calculate fluence from the flux."}>>> = true
    rod_ave_lin_pow<<<{"description": "Function that describes the linear power as a function of time."}>>> = flux_history
    axial_power_profile<<<{"description": "Function that describes the axial power profile as a function of axial position and time."}>>> = fflux_axial_peaking_factors_elongate
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    factor<<<{"description": "Constant multiplied against the function, rod average linear power, or q_variable."}>>> = 1.0
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [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"}>>> = fuel
    temperature<<<{"description": "Coupled temperature"}>>> = temp
  []
  [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"}>>>
    tangent_operator<<<{"description": "Type of tangent operator to return.  'elastic': return the elasticity tensor.  'nonlinear': return the full, general consistent tangent operator."}>>> = nonlinear
    inelastic_models<<<{"description": "The material objects to use to calculate stress and inelastic strains. Note: specify creep models first and plasticity models second."}>>> = 'fuel_upuzrcreep'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [fuel_upuzrcreep]
    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"}>>> = fuel
    temperature<<<{"description": "Coupled temperature"}>>> = temp
    porosity<<<{"description": "Porosity material property name"}>>> = porosity
    max_inelastic_increment<<<{"description": "The maximum inelastic strain increment allowed in a time step"}>>> = 2e-3
  []
  [fuel_thermal_expansion]
    type = ComputeThermalExpansionEigenstrain<<<{"description": "Computes eigenstrain due to thermal expansion with a constant coefficient", "href": "../../source/materials/ComputeThermalExpansionEigenstrain.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
    thermal_expansion_coeff<<<{"description": "Thermal expansion coefficient"}>>> = 1.18e-5
    temperature<<<{"description": "Coupled temperature"}>>> = temp
    stress_free_temperature<<<{"description": "Reference temperature at which there is no thermal expansion for thermal eigenstrain calculation"}>>> = 295.0
    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
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [fuel_volumetric_swelling] # Use LIFE-METAL Empirical model
    type = UPuZrVolumetricSwellingEigenstrainLM<<<{"description": "Computes and sums the change in fuel pellet volume due to solid and gaseous (adopted LIFE-METAL model) fission product buildup in UPuZr.", "href": "../../source/materials/solid_mechanics/UPuZrVolumetricSwellingEigenstrainLM.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
    use_preset_bubble_size<<<{"description": "Flag to use a preset bubble size instead realtime calculationfor better stability and speed"}>>> = true
    anisotropic_factor<<<{"description": "Anisotropic swelling factor for the fuel"}>>> = 1.26
    temperature<<<{"description": "Coupled temperature variable (K)"}>>> = temp
    fission_rate<<<{"description": "Fission rate material property name"}>>> = fission_rate
    burnup<<<{"description": "burnup material property name"}>>> = burnup
    fis_gas_ret<<<{"description": "retained fission gas material property name"}>>> = fis_gas_ret
    hydrostatic_stress<<<{"description": "Coupled hydrostatic stress variable"}>>> = hydrostatic_stress
    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_volumetric_strain
    gas_swelling_scale_factor<<<{"description": "Scale factor to be applied to the gaseous swelling strain. Used for calibration and sensitivity studies"}>>> = 1.0
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [metal_fuel_thermal]
    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"}>>> = fuel
    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<<<{"description": "Porosity material property name. Required if porosity_model is not 'none'"}>>> = porosity
    temperature<<<{"description": "Coupled temperature."}>>> = temp
  []
  [fuel_density]
    type = StrainAdjustedDensity<<<{"description": "Creates density material property", "href": "../../source/materials/StrainAdjustedDensity.html"}>>>
    displacements<<<{"description": "The displacements appropriate for the simulation geometry and coordinate system. If displacements are not coupled, a different material class such as GenericMaterialProperty or ParsedMaterial should be used."}>>> = 'disp_x disp_y'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
    strain_free_density<<<{"description": "Material property for strain-free density"}>>> = ${fuel_density}
  []
  [fission_gas_behavior]
    type = FgrUPuZrLM<<<{"description": "Fission gas release model for UPuZr metal fuel transplanted from the LIFE-METAL code", "href": "../../source/materials/FgrUPuZrLM.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
    temperature<<<{"description": "The coupled temperature (K)"}>>> = temp
    fission_rate<<<{"description": "Fission rate material property name"}>>> = fission_rate
    epsilon_c<<<{"description": "Gas release threshold strain"}>>> = 0.36
  []
  [clad_elasticity_tensor]
    type = HT9ElasticityTensor<<<{"description": "Computes the Young's modulus and Poisson's ratio for HT9 cladding as a function of temperature and formulates the elasticity tensor.", "href": "../../source/materials/solid_mechanics/HT9ElasticityTensor.html"}>>>
    temperature<<<{"description": "Coupled temperature"}>>> = temp
    id_wastage_degradation_function<<<{"description": "The optional ID wastage degradation function that takes FCCI effect on cladding into consideration."}>>> = id_vpp_func
    od_wastage_degradation_function<<<{"description": "The optional OD wastage degradation function that takes CCCI effect on cladding into consideration."}>>> = od_vpp_func
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
  []
  [clad_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"}>>>
    tangent_operator<<<{"description": "Type of tangent operator to return.  'elastic': return the elasticity tensor.  'nonlinear': return the full, general consistent tangent operator."}>>> = nonlinear
    inelastic_models<<<{"description": "The material objects to use to calculate stress and inelastic strains. Note: specify creep models first and plasticity models second."}>>> = 'clad_ht9creep'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
  []
  [clad_ht9creep]
    type = HT9CreepUpdate<<<{"description": "Computes steady-state thermal and irradiation creep for HT9. Must be used in conjunction with ComputeMultipleInelasticStress.", "href": "../../source/materials/solid_mechanics/HT9CreepUpdate.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    temperature<<<{"description": "The coupled temperature (K)"}>>> = temp
    fast_neutron_flux<<<{"description": "The fast neutron flux (neutrons/m^2-sec)"}>>> = fast_neutron_flux
    id_wastage_degradation_function<<<{"description": "The optional ID wastage degradation function that takes FCCI effect on cladding into consideration."}>>> = id_vpp_func
    od_wastage_degradation_function<<<{"description": "The optional OD wastage degradation function that takes CCCI effect on cladding into consideration."}>>> = od_vpp_func
  []
  [thermal_expansion]
    type = ComputeThermalExpansionEigenstrain<<<{"description": "Computes eigenstrain due to thermal expansion with a constant coefficient", "href": "../../source/materials/ComputeThermalExpansionEigenstrain.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    thermal_expansion_coeff<<<{"description": "Thermal expansion coefficient"}>>> = 1.2e-5
    temperature<<<{"description": "Coupled temperature"}>>> = temp
    stress_free_temperature<<<{"description": "Reference temperature at which there is no thermal expansion for thermal eigenstrain calculation"}>>> = 295.0
    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_eigenstrain
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [clad_thermal]
    type = HT9Thermal<<<{"description": "Computes the thermal conductivity and specific heat for HT9 stainless steel as a function of temperature.", "href": "../../source/materials/HT9Thermal.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    temperature<<<{"description": "Coupled temperature"}>>> = temp
  []
  [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"}>>> = cladding
    strain_free_density<<<{"description": "Material property for strain-free density"}>>> = 7874.0
  []
  [longHT9_failure]
    type = HT9FailureClad<<<{"description": "Failure model for HT-9 cladding. Contains multiple models for steady state (burnup calculations) and transient operations.", "href": "../../source/materials/HT9FailureClad.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    method<<<{"description": "Failure method choice. Options: ccg_dcs cdf_long cdf_short cdf_both cdf_mfh cdf_whc"}>>> = cdf_long
    temperature<<<{"description": "Temperature of cladding"}>>> = temp
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
    hoop_stress<<<{"description": "Hoop stress in cladding"}>>> = stress_zz # Since 2D-RZ
  []
  [wastage_thickness]
    type = MetallicFuelWastage<<<{"description": "Computes wastage thickness on the fuel-cladding interface.", "href": "../../source/materials/MetallicFuelWastage.html"}>>>
    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"}>>> = burnup_ht9_opt
    burnup<<<{"description": "Burnup material name"}>>> = burnup
    temperature<<<{"description": "The coupled temperature (K)"}>>> = temp
    scale_factor<<<{"description": "Scale factor used for fine tuning"}>>> = 1
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = cladding_inside_right
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [cc_wastage_thickness]
    type = MetallicFuelCoolantWastage<<<{"description": "Compute wastage thickness on the cladding-coolant interface.", "href": "../../source/materials/MetallicFuelCoolantWastage.html"}>>>
    clad_material<<<{"description": "Fuel cladding material choice. Options: HT9 SS316 HT9_HEDL custom"}>>> = HT9
    use_effective_method<<<{"description": "Flag to use effective method that gives better consistency with original correlation"}>>> = true
    temperature<<<{"description": "The coupled temperature (K)"}>>> = temp
    scale_factor<<<{"description": "Scale factor used for fine tuning"}>>> = 1
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = cladding_outside_right
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
[]

[Dampers<<<{"href": "../../syntax/Dampers/index.html"}>>>]
  [limitT]
    type = MaxIncrement<<<{"description": "Limits a variable's update by some max fraction", "href": "../../source/dampers/MaxIncrement.html"}>>>
    max_increment<<<{"description": "The maximum newton increment for the variable."}>>> = 50
    variable<<<{"description": "The name of the variable that this damper operates on"}>>> = temp
  []
[]

[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'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
  petsc_options_value = 'lu       superlu_dist                  101' #51
  line_search = 'none'

  l_max_its = 100
  l_tol = 1e-3
  nl_max_its = 50
  nl_rel_tol = 1e-5
  nl_abs_tol = 1e-7

  end_time = ${time_last}
  dtmin = 1
  dtmax = ${max_dt}

  [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
    timestep_limiting_function = power_history
    max_function_change = 300
    timestep_limiting_postprocessor = creep_timestep
    dt = 100
    time_t = '0 9300'
    time_dt = '100 100'
    iteration_window = 2
    optimal_iterations = 10
    force_step_every_function_point = true
  []
[]

[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
  [ave_temp_interior]
    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"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = cladding_inside_top
    variable<<<{"description": "The name of the variable which this postprocessor integrates"}>>> = temp
    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'
  []
  [approx_FCT]
    type = AverageNodalVariableValue<<<{"description": "Computes the average value of a field by sampling all nodal solutions on the domain or within a subdomain", "href": "../../source/postprocessors/AverageNodalVariableValue.html"}>>>
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = centerline
    variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = temp
  []
  [max_approx_FCT]
    type = TimeExtremeValue<<<{"description": "A postprocessor for reporting the extreme value of another postprocessor over time.", "href": "../../source/postprocessors/TimeExtremeValue.html"}>>>
    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
    postprocessor<<<{"description": "The name of the postprocessor used for reporting time extreme values"}>>> = approx_FCT
  []
  [ave_FST]
    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"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = fuel_outer_radial_surface
    variable<<<{"description": "The name of the variable which this postprocessor integrates"}>>> = temp
  []
  [max_ave_FST]
    type = TimeExtremeValue<<<{"description": "A postprocessor for reporting the extreme value of another postprocessor over time.", "href": "../../source/postprocessors/TimeExtremeValue.html"}>>>
    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
    postprocessor<<<{"description": "The name of the postprocessor used for reporting time extreme values"}>>> = ave_FST
  []
  [ave_CIT]
    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"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = cladding_inside_right
    variable<<<{"description": "The name of the variable which this postprocessor integrates"}>>> = temp
  []
  [max_ave_CIT]
    type = TimeExtremeValue<<<{"description": "A postprocessor for reporting the extreme value of another postprocessor over time.", "href": "../../source/postprocessors/TimeExtremeValue.html"}>>>
    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
    postprocessor<<<{"description": "The name of the postprocessor used for reporting time extreme values"}>>> = ave_CIT
  []
  [avg_clad_temp]
    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"}>>> = temp
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
  []
  [peak_clad_temp]
    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"}>>> = temp
    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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
  []
  [peak_fuel_temp]
    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"}>>> = temp
    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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [max_hydro]
    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"}>>> = 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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [min_hydro]
    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"}>>> = 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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [avg_hydro]
    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"}>>> = hydrostatic_stress
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [peak_porosity]
    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"}>>> = porosity
    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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [clad_inner_vol]
    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"}>>> = cladding_inside_all
  []
  [pellet_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"}>>> = fuel_outside_all
  []
  [gas_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"}>>> = 'fuel_outside_all cladding_inside_all'
    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'
    addition<<<{"description": "An additional volume to be included in the internal volume calculation. A time-dependent function is expected."}>>> = na_vol
  []
  [clad_fuel_gap]
    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"}>>> = penetration
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = fuel_outer_radial_surface
  []
  [max_cont_press]
    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"}>>> = fuel_outer_radial_surface
  []
  [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"}>>> = temp
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = cladding_inside_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
  []
  [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"}>>> = temp
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = fuel_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
  []
  [rod_total_power]
    type = ElementIntegralPower<<<{"description": "Computes the power given the fission rate and energy per fission.", "href": "../../source/postprocessors/ElementIntegralPower.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = temp
    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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [LHGR_W_per_cm]
    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."}>>> = power_history
    scale_factor<<<{"description": "A scale factor to be applied to the function"}>>> = 0.01
  []
  [average_burnup]
    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"}>>> = fuel
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = burnup
  []
  [max_cdf]
    type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../source/postprocessors/ElementExtremeValue.html"}>>>
    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
    variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = cumulative_damage_index
  []
  [fis_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"}>>> = fuel
  []
  [fis_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"}>>> = fuel
    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'
  []
  [creep_timestep]
    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"}>>> = fuel
  []
  [hydrostatic_stress]
    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"}>>> = hydrostatic_stress
    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'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [solid_swelling]
    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"}>>> = solid_swell
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [gas_swelling]
    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"}>>> = gas_swell
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [volumetric_strain]
    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"}>>> = volumetric_strain
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [fission_rate]
    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"}>>> = fission_rate
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [porosity]
    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"}>>> = porosity
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [gaseous_porosity]
    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"}>>> = gaseous_porosity
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [fis_gas_percent]
    type = FGRPercent<<<{"description": "Computes the ratio of fission gas released to the fission gas generated in percent.", "href": "../../source/postprocessors/FGRPercent.html"}>>>
    fission_gas_released<<<{"description": "The fission gas released postprocessor"}>>> = fis_gas_released
    fission_gas_generated<<<{"description": "The fission gas generated postprocessor"}>>> = fis_gas_produced
  []
  [max_clad_hoop_creep]
    type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../source/postprocessors/ElementExtremeValue.html"}>>>
    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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = hoop_creep_strain
  []
  [max_clad_creep_strain_mag]
    type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../source/postprocessors/ElementExtremeValue.html"}>>>
    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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = creep_strain_mag
  []
  [max_total_hoop_strain]
    type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../source/postprocessors/ElementExtremeValue.html"}>>>
    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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = cladding
    variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = total_hoop_strain
  []
  [max_fuel_elongation]
    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_y
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = fuel_outside_all
  []
  [max_clad_elongation]
    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_y
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 'cladding_outside_top cladding_outside_right'
  []
  [max_wastagethickness]
    type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "../../source/postprocessors/ElementExtremeValue.html"}>>>
    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
    variable<<<{"description": "The name of the variable that this postprocessor 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"}>>> = 'console'
  []
  [avg_fuel_temp]
    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"}>>> = temp
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
    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'
    allow_duplicate_execution_on_initial<<<{"description": "In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable)."}>>> = true
  []
[]

[VectorPostprocessors<<<{"href": "../../syntax/VectorPostprocessors/index.html"}>>>]
  [clad_x_disp]
    type = NodalValueSampler<<<{"description": "Samples values of nodal variable(s).", "href": "../../source/vectorpostprocessors/NodalValueSampler.html"}>>>
    variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = disp_x
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = cladding_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"}>>> = none
  []
  [fuel_cl_temp]
    type = NodalValueSampler<<<{"description": "Samples values of nodal variable(s).", "href": "../../source/vectorpostprocessors/NodalValueSampler.html"}>>>
    variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = temp
    boundary<<<{"description": "The list of boundaries (ids or names) 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"}>>> = none
  []
  [fuel_surf_temp]
    type = NodalValueSampler<<<{"description": "Samples values of nodal variable(s).", "href": "../../source/vectorpostprocessors/NodalValueSampler.html"}>>>
    variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = temp
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = fuel_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"}>>> = none
  []
  [clad_inn_temp]
    type = NodalValueSampler<<<{"description": "Samples values of nodal variable(s).", "href": "../../source/vectorpostprocessors/NodalValueSampler.html"}>>>
    variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = temp
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = cladding_inside_right
    sort_by<<<{"description": "What to sort the samples by"}>>> = y
    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'
    allow_duplicate_execution_on_initial<<<{"description": "In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable)."}>>> = true
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = none
  []
  [clad_out_temp]
    type = NodalValueSampler<<<{"description": "Samples values of nodal variable(s).", "href": "../../source/vectorpostprocessors/NodalValueSampler.html"}>>>
    variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = temp
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = cladding_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"}>>> = none
  []
  [id_wastage]
    type = FuelRodLineValueSampler<<<{"description": "Creates a custom LineValueSampler VectorPostprocessor to outputquantities of interest within the fuel or cladding materials usingeither horizontal or vertical lines specified by a fraction.", "href": "../../source/vectorpostprocessors/FuelRodLineValueSampler.html"}>>>
    variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = wastage_thickness
    material<<<{"description": "The material on which to generate LineValueSampler output. Options are: fuel clad"}>>> = 'clad'
    fraction<<<{"description": "The fractional distance at which to place the LineValueSampler line."}>>> = 0.0
    num_points<<<{"description": "The number of points to sample along the line"}>>> = 600
    orientation<<<{"description": "The orientation of the line for the LineValueSampler output. Options are: horizontal vertical"}>>> = 'vertical'
    fuel_pin_geometry<<<{"description": "Name of the UserObject that reads the pin geometry from the mesh."}>>> = 'pin_geometry'
    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'
    allow_duplicate_execution_on_initial<<<{"description": "In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable)."}>>> = true
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv_wst_a
  []
  [od_wastage]
    type = FuelRodLineValueSampler<<<{"description": "Creates a custom LineValueSampler VectorPostprocessor to outputquantities of interest within the fuel or cladding materials usingeither horizontal or vertical lines specified by a fraction.", "href": "../../source/vectorpostprocessors/FuelRodLineValueSampler.html"}>>>
    variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = cc_wastage_thickness
    material<<<{"description": "The material on which to generate LineValueSampler output. Options are: fuel clad"}>>> = 'clad'
    fraction<<<{"description": "The fractional distance at which to place the LineValueSampler line."}>>> = 1.0
    num_points<<<{"description": "The number of points to sample along the line"}>>> = 600
    orientation<<<{"description": "The orientation of the line for the LineValueSampler output. Options are: horizontal vertical"}>>> = 'vertical'
    fuel_pin_geometry<<<{"description": "Name of the UserObject that reads the pin geometry from the mesh."}>>> = 'pin_geometry'
    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'
    allow_duplicate_execution_on_initial<<<{"description": "In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable)."}>>> = true
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = none
  []
  [nrad_comparison_a]
    type = FIPDAxialPIEComparison<<<{"description": "Sample variable along a line associated with a boundary.", "href": "../../source/vectorpostprocessors/FIPDAxialPIEComparison.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = cladding_outside_right
    sort_by<<<{"description": "What to sort the samples by"}>>> = y
    csv_file<<<{"description": "The name of the CSV file to read. Currently, with the exception of the header row, only numeric values are supported."}>>> = ${raw '../../../../../../../fipd-bison-integration-data/X447/ ${pin_id} /X447A_ ${pin_id} _PR.csv'}
    variable<<<{"description": "The name of the variable that this VectorPostprocessor operates on"}>>> = disp_x
    thermal_strain_variable<<<{"description": "The names of the variable that contains thermal strain."}>>> = clad_thm_exp
    involved_component<<<{"description": "Component that is involved in this PIE result comparison (default: fuel). Option: fuel cladding"}>>> = cladding
    mesh_generator<<<{"description": "The name of the generator to use as the prefix for mesh meta data properties."}>>> = gen
    series_type_to_read<<<{"description": "The optional customized series type name in the data file to be read."}>>> = 'Cladding O.D. (mils)'
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = csv_vpp_a
    enable<<<{"description": "Set the enabled status of the MooseObject."}>>> = ${enable_a}
  []
[]

[UserObjects<<<{"href": "../../syntax/UserObjects/index.html"}>>>]
  [pin_geometry]
    type = FuelPinGeometry<<<{"description": "Computes LWR fuel pin geometry by reading the input mesh. This object can be coupled to Burnup and other functions as an alternative to having the user supply parameters such as pellet radius and pellet-cladding gap.", "href": "../../source/userobject/FuelPinGeometry.html"}>>>
    clad_bottom<<<{"description": "Sideset for bottom of cladding (bottom of lower end cap)."}>>> = cladding_outside_bottom
    clad_inner_wall<<<{"description": "Sideset for inner wall of cladding, not including end caps."}>>> = cladding_inside_right
    clad_outer_wall<<<{"description": "Sideset for outer wall of cladding."}>>> = cladding_outside_right
    clad_top<<<{"description": "Sideset for top of cladding (top of upper end cap)."}>>> = cladding_outside_top
    pellet_exteriors<<<{"description": "Sideset for all pellet exteriors."}>>> = fuel_outside_all
  []
  [fuel_thm_exp]
    type = LayeredAverage<<<{"description": "Computes averages of variables over layers", "href": "../../source/userobjects/LayeredAverage.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = fuel_thermal_strain_xx
    direction<<<{"description": "The direction of the layers."}>>> = y
    num_layers<<<{"description": "The number of layers."}>>> = 1000
    block<<<{"description": "The list of block ids (SubdomainID) that this object will be applied"}>>> = fuel
  []
  [clad_thm_exp]
    type = LayeredAverage<<<{"description": "Computes averages of variables over layers", "href": "../../source/userobjects/LayeredAverage.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = clad_thermal_eigenstrain_xx
    direction<<<{"description": "The direction of the layers."}>>> = y
    num_layers<<<{"description": "The number of layers."}>>> = 1000
    block<<<{"description": "The list of block ids (SubdomainID) that this object will be applied"}>>> = cladding
  []
[]

[Outputs<<<{"href": "../../syntax/Outputs/index.html"}>>>]
  perf_graph<<<{"description": "Enable printing of the performance graph to the screen (Console)"}>>> = true
  checkpoint<<<{"description": "Create checkpoint files using the default options."}>>> = false
  color<<<{"description": "Set to false to turn off all coloring in all outputs"}>>> = true
  [console]
    type = Console<<<{"description": "Object for screen output.", "href": "../../source/outputs/Console.html"}>>>
    max_rows<<<{"description": "The maximum number of postprocessor/scalar values displayed on screen during a timestep (set to 0 for unlimited)"}>>> = 25
    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."}>>> =  1
    output_linear<<<{"description": "Specifies whether output occurs on each PETSc linear residual evaluation"}>>> = true
    sync_times<<<{"description": "Times at which the output and solution is forced to occur"}>>> = ${time_spots}
  []
  [csv_vpp_a]
    type = CSV<<<{"description": "Output for postprocessors, vector postprocessors, and scalar variables using comma seperated values (CSV).", "href": "../../source/outputs/CSV.html"}>>>
    sync_only<<<{"description": "Only export results at sync times"}>>> = true
    sync_times<<<{"description": "Times at which the output and solution is forced to occur"}>>> = ${time_spots_a}
    enable<<<{"description": "Set the enabled status of the MooseObject."}>>> = ${enable_a}
    execute_postprocessors_on<<<{"description": "Control of when postprocessors are output"}>>> = none
    create_latest_symlink<<<{"description": "Enable/disable the creation of a _LATEST symlink for vector postprocessor data."}>>> = true
  []
  [csv_wst_a]
    type = CSV<<<{"description": "Output for postprocessors, vector postprocessors, and scalar variables using comma seperated values (CSV).", "href": "../../source/outputs/CSV.html"}>>>
    sync_only<<<{"description": "Only export results at sync times"}>>> = true
    sync_times<<<{"description": "Times at which the output and solution is forced to occur"}>>> = ${time_spots_a}
    enable<<<{"description": "Set the enabled status of the MooseObject."}>>> = ${enable_a}
    execute_postprocessors_on<<<{"description": "Control of when postprocessors are output"}>>> = none
    create_latest_symlink<<<{"description": "Enable/disable the creation of a _LATEST symlink for vector postprocessor data."}>>> = true
  []
  [csv_general]
    type = CSV<<<{"description": "Output for postprocessors, vector postprocessors, and scalar variables using comma seperated values (CSV).", "href": "../../source/outputs/CSV.html"}>>>
    sync_only<<<{"description": "Only export results at sync times"}>>> = true
    sync_times<<<{"description": "Times at which the output and solution is forced to occur"}>>> = ${time_spots}
    enable<<<{"description": "Set the enabled status of the MooseObject."}>>> = true
  []
  [exodus]
    type = Exodus<<<{"description": "Object for output data in the Exodus format", "href": "../../source/outputs/Exodus.html"}>>>
    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."}>>> =  20
    sync_times<<<{"description": "Times at which the output and solution is forced to occur"}>>> = ${time_spots}
    enable<<<{"description": "Set the enabled status of the MooseObject."}>>> = false
  []
[]
(assessment/metallic_fuel/EBRII/X447/analysis/legacy/DP04/x447_dp04.i)
# TREAT M7 U-10Zr pin clad in HT9 transient only simulation.
#   Not using transferred initial condition.
# ANL-IFR-124 Test M7 T-427
# Units: m, W, kg, Pa

[Debug<<<{"href": "../../syntax/Debug/index.html"}>>>]
  show_var_residual<<<{"description": "Variables for which residuals will be sent to the output file."}>>> = 'disp_x disp_y temperature'
  show_var_residual_norms<<<{"description": "Print the residual norms of the individual solution variables at each nonlinear iteration"}>>> = true
[]

[GlobalParams<<<{"href": "../../syntax/GlobalParams/index.html"}>>>]
  order = SECOND
  family = LAGRANGE
  energy_per_fission = 3.28451e-11
  displacements = 'disp_x disp_y'
  stress_free_temperature = 586.0
  temperature = temperature
  # Some calculated values, which are nice to know.
  # u_weight = 0.90126
  # pu_weight = 0.00115
  # zr_weight = 0.0976
  # X_U = 0.779
  X_Pu = 0.000969
  X_Zr = 0.22
[]

[Problem<<<{"href": "../../syntax/Problem/index.html"}>>>]
  type = ReferenceResidualProblem
  extra_tag_vectors = 'ref'
  reference_vector = 'ref'
  group_variables = 'disp_x disp_y'
[]

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  coord_type = RZ
  [smeared_pellet_mesh]
    type = FuelPinMeshGenerator<<<{"description": "Creates a 2D-RZ axisymmetric mesh of a fuel rod.", "href": "../../source/meshgenerators/FuelPinMeshGenerator.html"}>>>
    clad_bot_gap_height<<<{"description": "Gap between bottom of pellet and inside bottom surface of cladding"}>>> = 0.38e-3
    clad_gap_width<<<{"description": "Gap between outer radius of pellet and inside surface of cladding"}>>> = 1e-6
    clad_thickness<<<{"description": "Thickness of cladding side wall"}>>> = 0.38e-3
    clad_top_gap_height<<<{"description": "Gap between top of pellet and inside top surface of cladding"}>>> = 252.35e-3
    pellet_height<<<{"description": "Pellet height"}>>> = 37.3e-2
    pellet_outer_radius<<<{"description": "Pellet outer radius"}>>> = 2.54e-3
    pellet_quantity<<<{"description": "Number of pellets in smeared mesh"}>>> = 1
    bottom_clad_height<<<{"description": "Height of bottom cladding wall."}>>> = 1.9e-3
    top_clad_height<<<{"description": "Height of top cladding wall."}>>> = 1.9e-3

    elem_type<<<{"description": "The type of element to generate (QUAD4 QUAD8 QUAD9)."}>>> = QUAD8
    clad_mesh_density<<<{"description": "Sets the mesh density of the cladding (coarse, medium, fine)"}>>> = customize
    pellet_mesh_density<<<{"description": "Sets the mesh density of the pellet (really_coarse coarse medium fine customize)."}>>> = customize
    nx_c<<<{"description": "Number of cladding elements in radial direction."}>>> = 3
    nx_p<<<{"description": "number of fuel elements in radial direction"}>>> = 5
    ny_c<<<{"description": "Number of cladding elements in axial direction."}>>> = 150
    ny_cl<<<{"description": "Number of cladding elements in lower plug in  axial direction."}>>> = 3
    ny_cu<<<{"description": "Number of cladding elements in upper plug in axial direction."}>>> = 3
    ny_p<<<{"description": "Number of fuel elements in axial direction"}>>> = 175
  []
  patch_size = 25
  partitioner = centroid
  patch_update_strategy = auto
  centroid_partitioner_direction = y
[]

[Functions<<<{"href": "../../syntax/Functions/index.html"}>>>]
  [power_history] # Peak power density
    type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../source/functions/PiecewiseLinear.html"}>>>
    data_file<<<{"description": "File holding CSV data"}>>> = 'm7fa_digitized.csv'
    format<<<{"description": "Format of csv data file that is in either in columns or rows"}>>> = columns
    scale_factor<<<{"description": "Scale factor to be applied to the ordinate values"}>>> = 78.8 # g; grams of fuel in pellet for W/g to W
  []
  [axial_peaking_factors] # Peak factor (1 max)
    type = PiecewiseBilinear<<<{"description": "Interpolates values from a csv file", "href": "../../source/functions/PiecewiseBilinear.html"}>>>
    data_file<<<{"description": "File holding csv data for use with PiecewiseBilinear"}>>> = 'm7_axial_tranAlone.csv'
    axis<<<{"description": "The axis used (0, 1, or 2 for x, y, or z)."}>>> = 1
  []
  [q_heat]
    type = CompositeFunction<<<{"description": "Multiplies an arbitrary set of functions together", "href": "../../source/functions/CompositeFunction.html"}>>>
    functions<<<{"description": "The functions to be multiplied together."}>>> = 'power_history axial_peaking_factors'
    scale_factor<<<{"description": "Scale factor to be applied to the ordinate values"}>>> = 132273.8097 # m^-3; volume of fuel slug, 1/V, to make power density
  []
  [dt_fun]
    type = PiecewiseLinear<<<{"description": "Linearly interpolates between pairs of x-y data", "href": "../../source/functions/PiecewiseLinear.html"}>>>
    x<<<{"description": "The abscissa values"}>>> = '0   6   7    9    15   20    25'
    y<<<{"description": "The ordinate values"}>>> = '0.5 0.5 0.01 0.01 0.01 0.001 0.1'
  []
[]

[Variables<<<{"href": "../../syntax/Variables/index.html"}>>>]
  [temperature]
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 586.0
  []
[]

[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 elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz'
  [slug_mech]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = pellet
    additional_generate_output<<<{"description": "Add scalar quantity output for stress and/or strain (will be appended to the list in `generate_output`)"}>>> = 'creep_strain_xx creep_strain_yy creep_strain_zz'
    eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = 'slug_thermal_strain'
    extra_vector_tags<<<{"description": "The tag names for extra vectors that residual data should be saved into"}>>> = 'ref'
  []
  [clad_mech]
    block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = clad
    additional_generate_output<<<{"description": "Add scalar quantity output for stress and/or strain (will be appended to the list in `generate_output`)"}>>> = 'creep_strain_xx creep_strain_yy creep_strain_zz'
    eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = 'clad_thermal_eigenstrain'
    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]
    type = ConstitutiveHeatConduction<<<{"description": "Computes the thermal diffusion component/kernel for $(k \\nabla T, \\nabla \\psi)$ term with Jacobians contributions introduced by the thermal conductivity calculated via optional material properties.", "href": "../../source/kernels/ConstitutiveHeatConduction.html"}>>>
    extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = 'ref'
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
    thermal_conductivity<<<{"description": "Fission rate material name"}>>> = 'thermal_conductivity'
    thermal_conductivity_args<<<{"description": "Thermal conductivity formulation arguments"}>>> = 'temperature'
    thermal_conductivity_derivs<<<{"description": "Material property names of thermal conductivity derivatives with respect to thermal_conductivity_args"}>>> = 'thermal_conductivity_dT'
  []
  [heat_ie]
    type = ConstitutiveHeatConductionTimeDerivative<<<{"description": "Time derivative term $C_p \\frac{\\partial T}{\\partial t}$ of the heat equation with Jacobians contributions introduced by the specific heat calculated via optional material properties.", "href": "../../source/kernels/ConstitutiveHeatConductionTimeDerivative.html"}>>>
    extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = 'ref'
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
    specific_heat<<<{"description": "Name of the volumetric isobaric specific heat material property"}>>> = 'specific_heat'
    specific_heat_args<<<{"description": "Specific heat formulation arguments"}>>> = 'temperature'
    specific_heat_derivs<<<{"description": "Material property names of specific heat derivatives with respect to specific_heat_args"}>>> = 'specific_heat_dT'
  []
  [vol_heat_source]
    type = HeatSource<<<{"description": "Demonstrates the multiple ways that scalar values can be introduced into kernels, e.g. (controllable) constants, functions, and postprocessors. Implements the weak form $(\\psi_i, -f)$.", "href": "../../source/kernels/HeatSource.html"}>>>
    extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = 'ref'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
    function<<<{"description": "Function describing the volumetric heat source"}>>> = q_heat
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
  []
[]

[AuxVariables<<<{"href": "../../syntax/AuxVariables/index.html"}>>>]
  [power_density]
    block = pellet
  []
  [fission_rate]
    block = pellet
  []
  [fast_neutron_flux]
    block = clad
  []
  [fast_neutron_fluence]
    block = clad
  []
  [creep_rate_aux]
    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
  []

  # Aux variables for output
  [energy_density]
    block = pellet
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 0.0
  []
  [gap_cond]
    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
  []
  [coolant_htc]
    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
    block = clad
  []
  [coolant_temperature]
    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
    block = clad
  []
  [cumulative_damage_index]
    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
    block = clad
  []
  [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
  []
  [eutectic_thickness_in]
    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
    block = clad
  []
  [eutectic_thickness_out]
    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
    block = clad
  []
[]

[AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
  [calc_fission_rate]
    type = FissionRateGeneral<<<{"description": "Provides various implementations which allow the user to set the fission rate.", "href": "../../source/auxkernels/FissionRateGeneral.html"}>>>
    fission_rate_formulation<<<{"description": "The active fission rate formulation."}>>> = POWER_DENSITY
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
    power_density_function<<<{"description": "The function that describes the power density in W/m^3."}>>> = q_heat
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = fission_rate
    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'
  []
  [fast_neutron_flux]
    type = FastNeutronFluxAux<<<{"description": "Computes fast neutron flux.", "href": "../../source/auxkernels/FastNeutronFluxAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = fast_neutron_flux
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
    factor<<<{"description": "The fast neutron flux if the function, RALP, and q_variable are not given. A scaling factor if the function, RALP, or q_variable is given.  If RALP or q_variable is given, it is recommended to use a value of 3e13 (n/(m^2s)/(W/m))."}>>> = 0.6e19
    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'
  []
  [fast_neutron_fluence]
    type = FastNeutronFluenceAux<<<{"description": "Computes fast neutron fluence from fast_neutron_flux.", "href": "../../source/auxkernels/FastNeutronFluenceAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = fast_neutron_fluence
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
    fast_neutron_flux<<<{"description": "Coupled Fast Neutron Flux."}>>> = fast_neutron_flux
    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'
  []
  [calc_power_density]
    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
    function<<<{"description": "The function to use as the value"}>>> = q_heat
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = power_density
    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'
  []
  [calc_energy_density]
    type = VariableTimeIntegrationAux<<<{"description": "Integrates a field variable in time.", "href": "../../source/auxkernels/VariableTimeIntegrationAux.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
    order<<<{"description": "The order of global truncation error: midpoint=1, trapezoidal=2, Simpson=3"}>>> = 2
    variable_to_integrate<<<{"description": "The variable to be integrated"}>>> = power_density
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = energy_density
    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
  []
  # Hoop stress_zz.
  [creep_rate_aux]
    type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../source/auxkernels/MaterialRealAux.html"}>>>
    property<<<{"description": "The material property name."}>>> = creep_rate
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = creep_rate_aux
    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
  []
  [conductance]
    type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../source/auxkernels/MaterialRealAux.html"}>>>
    property<<<{"description": "The material property name."}>>> = gap_conductance
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = gap_cond
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 10
  []
  [coolant_temperature]
    type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../source/auxkernels/MaterialRealAux.html"}>>>
    property<<<{"description": "The material property name."}>>> = coolant_temperature
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = coolant_temperature
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 2
  []
  [coolant_htc]
    type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../source/auxkernels/MaterialRealAux.html"}>>>
    property<<<{"description": "The material property name."}>>> = coolant_channel_htc
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = coolant_htc
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 2
  []
  [cdf_amount]
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
    type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../source/auxkernels/MaterialRealAux.html"}>>>
    property<<<{"description": "The material property name."}>>> = cdf_failure
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = cumulative_damage_index
  []
  [failed_element]
    type = MaterialRealAux<<<{"description": "Outputs element volume-averaged material properties", "href": "../../source/auxkernels/MaterialRealAux.html"}>>>
    property<<<{"description": "The material property name."}>>> = failed
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = element_failed
  []
  [fcci_eutectic_in]
    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
    type = EutecticThicknessFCCI<<<{"description": "Computes eutectic penetration thickness based on boundary temperature.", "href": "../../source/auxkernels/EutecticThicknessFCCI.html"}>>>
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 5
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = eutectic_thickness_in
  []
  [fcci_eutectic_out]
    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
    type = EutecticThicknessFCCI<<<{"description": "Computes eutectic penetration thickness based on boundary temperature.", "href": "../../source/auxkernels/EutecticThicknessFCCI.html"}>>>
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 2
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = eutectic_thickness_out
  []
[]

[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
  [_dt]
    type = TimestepSize<<<{"description": "Reports the timestep size", "href": "../../source/postprocessors/TimestepSize.html"}>>>
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [fis_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
    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'
  []
  [ave_temp_interior]
    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"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 9
    variable<<<{"description": "The name of the variable which this postprocessor integrates"}>>> = temperature
    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'
  []
  [avg_clad_temp]
    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"}>>> = temperature
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
  []
  [avg_fuel_temp]
    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"}>>> = temperature
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
  []
  [max_outer_clad_temp]
    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"}>>> = temperature
    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
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 2
  []
  [peak_clad_temp]
    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"}>>> = temperature
    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
    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"}>>> = all
  []
  [peak_fuel_temp]
    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"}>>> = temperature
    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
    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"}>>> = all
  []
  [peak_outer_fuel_temp]
    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"}>>> = temperature
    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
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 10
  []
  [peak_coolant_temperature]
    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"}>>> = coolant_temperature
    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
    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"}>>> = all
  []
  [max_power_density]
    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"}>>> = power_density
    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
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
  []
  [avg_power_density]
    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"}>>> = power_density
    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"}>>> = all
  []
  [total_deposit_pin_energy]
    type = ElementIntegralVariablePostprocessor<<<{"description": "Computes a volume integral of the specified variable", "href": "../../source/postprocessors/ElementIntegralVariablePostprocessor.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = energy_density
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
  []
  [clad_inner_vol]
    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"}>>> = 7
  []
  [pellet_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"}>>> = 8
    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'
  []
  [gas_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"}>>> = 9
    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'
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
    addition<<<{"description": "An additional volume to be included in the internal volume calculation. A time-dependent function is expected."}>>> = -2.0e-6 # m3; assuming all bond sodium displaced by closed gap
  []
  [clad_fuel_gap]
    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"}>>> = penetration
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 10
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [max_eutectic_pen_in]
    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"}>>> = eutectic_thickness_in
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
    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
    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
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
  [max_eutectic_pen_out]
    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"}>>> = eutectic_thickness_out
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
    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
    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
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
[]

[Contact<<<{"href": "../../syntax/Contact/index.html"}>>>]
  [pellet_clad_mechanical]
    primary<<<{"description": "The list of boundary IDs referring to primary sidesets"}>>> = 5
    secondary<<<{"description": "The list of boundary IDs referring to secondary sidesets"}>>> = 10
    penalty<<<{"description": "The penalty to apply.  This can vary depending on the stiffness of your materials"}>>> = 1e12
    model<<<{"description": "The contact model to use"}>>> = frictionless
    normalize_penalty<<<{"description": "Whether to normalize the penalty parameter with the nodal area."}>>> = true
    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 = temperature
    primary = 5
    secondary = 10
    quadrature = true
    gap_conductivity = 73.70
    min_gap = 1e-3
  []
[]

[BCs<<<{"href": "../../syntax/NuclearMaterials/BCs/index.html"}>>>]
  [no_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
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 12
    value<<<{"description": "Value of the BC"}>>> = 0.0
  []
  [no_y_fuel]
    type = PenaltyDirichletBC<<<{"description": "Enforces a Dirichlet boundary condition in a weak sense by penalizing differences between the current solution and the Dirichlet data.", "href": "../../source/bcs/PenaltyDirichletBC.html"}>>>
    penalty<<<{"description": "Penalty scalar"}>>> = 1e10
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = disp_y
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 20
    value<<<{"description": "Boundary value of the variable"}>>> = 0.0
  []
  [no_y_clad]
    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
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 1
    value<<<{"description": "Value of the BC"}>>> = 0.0
  []
  [Pressure<<<{"href": "../../syntax/BCs/Pressure/index.html"}>>>]
    [coolantPressure]
      boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = '1 2 3'
      factor<<<{"description": "The magnitude to use in computing the pressure"}>>> = 455054.0
    []
  []
  [PlenumPressure<<<{"href": "../../syntax/BCs/PlenumPressure/index.html"}>>>]
    [plenumPressure]
      boundary<<<{"description": "The list of boundary IDs from the mesh where the pressure will be applied"}>>> = 9
      initial_pressure<<<{"description": "The initial pressure in the cavity.  If not given, a zero initial pressure will be used."}>>> = 1.41343e6
      initial_temperature<<<{"description": "Initial temperature (optional)"}>>> = 309.0
      startup_time<<<{"description": "The amount of time during which the pressure will ramp from zero to its true value."}>>> = 0.0
      R<<<{"description": "The universal gas constant for the units used."}>>> = 8.3143
      temperature<<<{"description": "The name of the average temperature postprocessor value."}>>> = ave_temp_interior
      volume<<<{"description": "The name of the postprocessor(s) that holds the value of the internal volume in the cavity"}>>> = gas_volume
      output<<<{"description": "The name to use for the cavity pressure value"}>>> = plenum_pressure
      material_input<<<{"description": "The name of the postprocessor(s) that holds the amount of material injected into the plenum."}>>> = fis_gas_released
      output_initial_moles<<<{"description": "The name to use when reporting the initial moles of gas"}>>> = plenum_moles
    []
  []
[]

[CoolantChannel<<<{"href": "../../syntax/CoolantChannel/index.html"}>>>]
  [convective_clad_surface]
    boundary<<<{"description": "The boundary where the coolant channel calculation will run"}>>> = '1 2 3'
    variable<<<{"description": "The name of the variable representing temperature"}>>> = temperature
    inlet_temperature<<<{"description": "Inlet temperature in K "}>>> = 586.0
    inlet_pressure<<<{"description": "Inlet pressure in Pa"}>>> = 455054.0
    inlet_massflux<<<{"description": "Inlet mass flux in kg/m^2-sec"}>>> = 4520.72
    coolant_material<<<{"description": "The name of the user object with fluid properties"}>>> = sodium
    flow_area<<<{"description": "The flow area"}>>> = 2.22e-5
    hydraulic_diameter<<<{"description": "The hydraulic diameter"}>>> = 2.057e-3
    heated_perimeter<<<{"description": "The heated perimeter"}>>> = 1.835e-2
    heated_diameter<<<{"description": "The heated diameter"}>>> = 4.84e-3
    number_axial_zone<<<{"description": "Number of heat flux integration zones"}>>> = 50
    htc_correlation_type<<<{"description": "heat transfer correlation type "}>>> = 3
    compute_enthalpy<<<{"description": "Set false to use inlet temperature as bulk temperature"}>>> = true
  []
[]

[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
  # Fuel Slug Properties
  [set_porosity]
    type = GenericConstantMaterial<<<{"description": "Declares material properties based on names and values prescribed by input parameters.", "href": "../../source/materials/GenericConstantMaterial.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
    prop_names<<<{"description": "The names of the properties this material will have"}>>> = porosity
    prop_values<<<{"description": "The values associated with the named properties"}>>> = 0.31
  []
  [set_mat_fission_rate]
    type = ParsedMaterial<<<{"description": "Parsed expression Material.", "href": "../../source/materials/ParsedMaterial.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
    coupled_variables<<<{"description": "Vector of variables used in the parsed function"}>>> = 'fission_rate'
    expression<<<{"description": "Parsed function (see FParser) expression for the parsed material"}>>> = 'fission_rate * 1.0'
    property_name<<<{"description": "Name of the parsed material property"}>>> = 'fission_rate'
  []
  [melted]
    type = GenericMaterialFailure<<<{"description": "Generic class for use in setting the failed material property.", "href": "../../source/materials/GenericMaterialFailure.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
    compared<<<{"description": "Options for variable _compared_ to criteria: greater_than greater_equal less_equal less_than"}>>> = greater_than
    variable_check<<<{"description": "Variable name which is compared to criteria. Example: Var < 0, true=failed"}>>> = temperature
    constant_criteria<<<{"description": "Numerical value providing criteria value."}>>> = 1600.0
  []
  [for_youngs]
    # Pulled equation from Bison manual and added temperature limit.
    type = ParsedMaterial<<<{"description": "Parsed expression Material.", "href": "../../source/materials/ParsedMaterial.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"}>>> = all
    output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = 'youngs_modulus'
    property_name<<<{"description": "Name of the parsed material property"}>>> = 'youngs_modulus'
    coupled_variables<<<{"description": "Vector of variables used in the parsed function"}>>> = 'temperature'
    material_property_names<<<{"description": "Vector of material properties used in the parsed function"}>>> = 'porosity'
    constant_names<<<{"description": "Vector of constants used in the parsed function (use this for kB etc.)"}>>> = 'T_limit E_U T_meltU W_Zr W_Pu B_E Ta_start Ta_end'
    constant_expressions<<<{"description": "Vector of values for the constants in constant_names (can be an FParser expression)"}>>> = '1550.0 1.6e11 1405.0 0.0976 0.00115 1.2 923.0 973.0'
    expression<<<{"description": "Parsed function (see FParser) expression for the parsed material"}>>> = 'E_p := 1.0 - B_E * porosity; E_W := (1.0 + 0.17 * W_Zr) / (1.0 + 1.34 * W_Zr) - W_Pu; T_act := if(temperature > T_limit, T_limit, temperature); x_smooth := (T_act - Ta_start) / (Ta_end - Ta_start); f_smooth := if(T_act < Ta_start, 0.0, if(T_act > Ta_end, 1.0, 6.0 * pow(x_smooth, 5) - 15.0 * pow(x_smooth, 4) + 10.0 * pow(x_smooth, 3))); E_T := 1.0 - 1.06 * (T_act - 588.0) / T_meltU - f_smooth * 0.3 * (1.0 - 1.06 * (Ta_end - 588.0) / T_meltU); E_U * E_T * E_p * E_W'
  []
  [for_poissons]
    # Pulled equation from Bison manual and added temperature limit.
    type = ParsedMaterial<<<{"description": "Parsed expression Material.", "href": "../../source/materials/ParsedMaterial.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"}>>> = all
    output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = 'poissons_ratio'
    property_name<<<{"description": "Name of the parsed material property"}>>> = 'poissons_ratio'
    coupled_variables<<<{"description": "Vector of variables used in the parsed function"}>>> = 'temperature'
    material_property_names<<<{"description": "Vector of material properties used in the parsed function"}>>> = 'porosity'
    constant_names<<<{"description": "Vector of constants used in the parsed function (use this for kB etc.)"}>>> = 'T_limit nu_U T_meltU W_Zr B_nu'
    constant_expressions<<<{"description": "Vector of values for the constants in constant_names (can be an FParser expression)"}>>> = '1550.0 0.24 1405.0 0.0976 0.8'
    expression<<<{"description": "Parsed function (see FParser) expression for the parsed material"}>>> = 'nu_p := 1.0 - B_nu * porosity; nu_W := (1.0 + 3.4 * W_Zr) / (1.0 + 1.9 * W_Zr); T_act := if(temperature > T_limit, T_limit, temperature); nu_T := 1.0 + 1.2 * (T_act - 588.0) / T_meltU; nu_U *nu_p * nu_W * nu_T'
  []
  [slug_elasticity_tensor]
    type = ComputeVariableIsotropicElasticityTensor<<<{"description": "Compute an isotropic elasticity tensor for elastic constants that change as a function of material properties", "href": "../../source/materials/ComputeVariableIsotropicElasticityTensor.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
    args<<<{"description": "Variable dependence for the Young's Modulus and Poisson's Ratio materials"}>>> = temperature
    youngs_modulus<<<{"description": "Name of material property defining the Young's Modulus"}>>> = youngs_modulus
    poissons_ratio<<<{"description": "Name of material property defining the Poisson's Ratio"}>>> = poissons_ratio
  []
  [slug_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"}>>>
    tangent_operator<<<{"description": "Type of tangent operator to return.  'elastic': return the elasticity tensor.  'nonlinear': return the full, general consistent tangent operator."}>>> = nonlinear
    inelastic_models<<<{"description": "The material objects to use to calculate stress and inelastic strains. Note: specify creep models first and plasticity models second."}>>> = 'slug_creep'
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
  []
  [slug_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"}>>> = 1e-3
  []
  [slug_thermal_expansion]
    type = ComputeThermalExpansionEigenstrain<<<{"description": "Computes eigenstrain due to thermal expansion with a constant coefficient", "href": "../../source/materials/ComputeThermalExpansionEigenstrain.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
    thermal_expansion_coeff<<<{"description": "Thermal expansion coefficient"}>>> = 1.18e-5
    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."}>>> = slug_thermal_strain
  []
  [slug_thermal]
    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
    Na_depth<<<{"description": "Pellet depth sodium has infiltrated as a percentage of fuel radius. Only required if porosity_model = partially_logged."}>>> = 0.0673
    fuel_outer_radius<<<{"description": "The fuel outer radius. Only required if porosity_model = partially_logged."}>>> = 2.54e-3
    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"}>>> = billone
    porosity_model<<<{"description": "Porosity correction factor model. Choices are: none fractional power logged partially_logged"}>>> = partially_logged
    initiating_porosity<<<{"description": "Porosity at which sodium infiltration begins. Only required if porosity_model = partially_logged."}>>> = 0.24
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
    output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = thermal_conductivity
    porosity<<<{"description": "Porosity material property name. Required if porosity_model is not 'none'"}>>> = porosity
  []
  [slug_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"}>>> = 15700.0
  []
  [slug_fission_gas_release]
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = pellet
    type = UPuZrFissionGasRelease<<<{"description": "Computes fission gas release for UPuZr metallic fuel", "href": "../../source/materials/UPuZrFissionGasRelease.html"}>>>
    fission_rate<<<{"description": "Fission rate material property name"}>>> = fission_rate
  []

  # Cladding Properties
  [clad_elasticity_tensor]
    type = ComputeIsotropicElasticityTensor<<<{"description": "Compute a constant isotropic elasticity tensor.", "href": "../../source/materials/ComputeIsotropicElasticityTensor.html"}>>>
    youngs_modulus<<<{"description": "Young's modulus of the material."}>>> = 1.88e11
    poissons_ratio<<<{"description": "Poisson's ratio for the material."}>>> = 0.236
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
  []
  [clad_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
    tangent_operator<<<{"description": "Type of tangent operator to return.  'elastic': return the elasticity tensor.  'nonlinear': return the full, general consistent tangent operator."}>>> = nonlinear
    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'
  []
  [clad_fast_flux]
    type = FastNeutronFlux<<<{"description": "Computes fast neutron flux.", "href": "../../source/materials/FastNeutronFlux.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
    factor<<<{"description": "Constant multiplied against the function, rod average linear power, or q_variable."}>>> = 0.6e19
  []
  [clad_creep]
    type = HT9CreepUpdate<<<{"description": "Computes steady-state thermal and irradiation creep for HT9. Must be used in conjunction with ComputeMultipleInelasticStress.", "href": "../../source/materials/solid_mechanics/HT9CreepUpdate.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
  []
  [clad_thermal_expansion]
    type = ComputeThermalExpansionEigenstrain<<<{"description": "Computes eigenstrain due to thermal expansion with a constant coefficient", "href": "../../source/materials/ComputeThermalExpansionEigenstrain.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
    thermal_expansion_coeff<<<{"description": "Thermal expansion coefficient"}>>> = 1.2e-5
    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_eigenstrain
  []
  [clad_thermal]
    type = HT9Thermal<<<{"description": "Computes the thermal conductivity and specific heat for HT9 stainless steel as a function of temperature.", "href": "../../source/materials/HT9Thermal.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
  []
  [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"}>>> = 7874.0
  []
  [failclad]
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = clad
    type = HT9FailureClad<<<{"description": "Failure model for HT-9 cladding. Contains multiple models for steady state (burnup calculations) and transient operations.", "href": "../../source/materials/HT9FailureClad.html"}>>>
    hoop_stress<<<{"description": "Hoop stress in cladding"}>>> = stress_zz
    method<<<{"description": "Failure method choice. Options: ccg_dcs cdf_long cdf_short cdf_both cdf_mfh cdf_whc"}>>> = cdf_short
  []
[]

[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
    solve_type<<<{"description": "PJFNK: Preconditioned Jacobian-Free Newton Krylov JFNK: Jacobian-Free Newton Krylov NEWTON: Full Newton Solve FD: Use finite differences to compute Jacobian LINEAR: Solving a linear problem"}>>> = 'PJFNK'
    petsc_options<<<{"description": "Singleton PETSc options"}>>> = '-snes_ksp_ew -snes_converged_reason'
    petsc_options_iname<<<{"description": "Names of PETSc name/value pairs"}>>> = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
    petsc_options_value<<<{"description": "Values of PETSc name/value pairs (must correspond with \"petsc_options_iname\""}>>> = 'lu       superlu_dist                  51'
  []
[]

[Executioner<<<{"href": "../../syntax/Executioner/index.html"}>>>]
  type = Transient
  automatic_scaling = true
  compute_scaling_once = true
  line_search = 'none'
  l_max_its = 100
  l_tol = 1e-3
  nl_max_its = 200
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-9
  start_time = 0.0
  end_time = 25.0
  dtmin = 0.0001
  dtmax = 1.0
  [TimeStepper<<<{"href": "../../syntax/Executioner/TimeStepper/index.html"}>>>]
    type = FunctionDT
    function = dt_fun
  []
  [Quadrature<<<{"href": "../../syntax/Executioner/Quadrature/index.html"}>>>]
    order<<<{"description": "Order of the quadrature"}>>> = FIFTH
    side_order<<<{"description": "Order of the quadrature for sides"}>>> = SEVENTH
  []
[]

[PerformanceMetricOutputs<<<{"href": "../../syntax/PerformanceMetricOutputs/index.html"}>>>]
[]

[Outputs<<<{"href": "../../syntax/Outputs/index.html"}>>>]
  perf_graph<<<{"description": "Enable printing of the performance graph to the screen (Console)"}>>> = true
  time_step_interval<<<{"description": "The interval (number of time steps) at which output occurs"}>>> =  1
  exodus<<<{"description": "Output the results using the default settings for Exodus output."}>>> = true
  csv<<<{"description": "Output the scalar variable and postprocessors to a *.csv file using the default CSV output."}>>> = true # Figures comparing to experiment results are based off this csv output.
  [console]
    type = Console<<<{"description": "Object for screen output.", "href": "../../source/outputs/Console.html"}>>>
    output_linear<<<{"description": "Specifies whether output occurs on each PETSc linear residual evaluation"}>>> = true
    output_nonlinear<<<{"description": "Specifies whether output occurs on each PETSc nonlinear residual evaluation"}>>> = true
  []
  [check]
    # Numerical assessment test check at points near important features.
    #  Checking near the feature but not during it hopefully will not affect the feature computation.
    type = CSV<<<{"description": "Output for postprocessors, vector postprocessors, and scalar variables using comma seperated values (CSV).", "href": "../../source/outputs/CSV.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."}>>> = TIMESTEP_END
    sync_only<<<{"description": "Only export results at sync times"}>>> = true
    sync_times<<<{"description": "Times at which the output and solution is forced to occur"}>>> = '10 16.5 20'
  []
[]
(assessment/metallic_fuel/TREAT/M7/analysis/binary_t427.i)