FuelPinGeometry

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.

Description

FuelPinGeometry computes the fuel rod outer dimensions, the height, inner diameter, outer diameter, and the fuel volume ratio of the fuel stack, and the pellet-clad gap directly from the mesh so that it can be used by other objects such as Burnup, UO2RelocationEigenstrain, and HydrogenPickup.

commentnote:Fuel Volume Ratio

This ratio is calculated by summing all elements with the fuel blocks (which touch the sideset 8). This is then simply the quotient of the fuel elements volume over the volume of a right cylinder with the maximum radius.

Sideset Conventions

Special attention to the sideset is required when constructing the mesh. Using the BISON standard mesh sideset convention, FuelPinGeometry uses sideset 8 (Default) to compute the dimensions of the rod. In most of the cases that can be found in the BISON repository sideset 8 only calculates the pellet volume, whereas sideset 9 is used to calculate the plenum gas volume and temperature.

Insulator Pellets

The BISON meshing script will assign these sidesets properly if a simple fuel stack configuration is used (ie. solid or annular fuel and cladding only). If insulator pellets are required the current meshing script will include them in sideset 8, thus the pellet volume will be high. The solution is to reassign the sidesets as needed. If a more complex mesh is required, the mesh must be built by the user, and the user must assign the sidesets.

commentnote:Verify Sideset Numbering

Checking the sidesets before running a simulation is a good practice.

Breaking up Fuel blocks

By default, FuelPinGeometry will automatically determine geometry of all fuel pins that share the sideset 10. When different types of fuel, or insulator pellets are included, which also share the sideset 10, these can be subdivided. This will allow for the top and bottom of the fuel to be recalculated based on user input, as well as additional geometric considerations.

[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": "FuelPinGeometry.html"}>>>
    fuel_retain<<<{"description": "The subset of fuel blocks in an extended set to be considered."}>>> = 'pellet_type_2 pellet_type_3'
    fuel_exclude<<<{"description": "The subset of fuel blocks in an extended set to be ignored."}>>> = 'pellet_type_1 pellet_type_4'
  []
[]
(test/tests/standard_lwr_outputs_action/four_pellets.i)

Example Input Syntax

[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": "FuelPinGeometry.html"}>>>
  []
[]
(test/tests/example_problem_test/example_problem_test.i)

Input Parameters

  • blockThe list of blocks (ids or names) that this object will be applied

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • clad_bottom2Sideset for bottom of cladding (bottom of lower end cap).

    Default:2

    C++ Type:BoundaryName

    Controllable:No

    Description:Sideset for bottom of cladding (bottom of lower end cap).

  • clad_inner_wall5Sideset for inner wall of cladding, not including end caps.

    Default:5

    C++ Type:BoundaryName

    Controllable:No

    Description:Sideset for inner wall of cladding, not including end caps.

  • clad_outer_wall2Sideset for outer wall of cladding.

    Default:2

    C++ Type:BoundaryName

    Controllable:No

    Description:Sideset for outer wall of cladding.

  • clad_top2Sideset for top of cladding (top of upper end cap).

    Default:2

    C++ Type:BoundaryName

    Controllable:No

    Description:Sideset for top of cladding (top of upper end cap).

  • fuel_excludeThe subset of fuel blocks in an extended set to be ignored.

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:The subset of fuel blocks in an extended set to be ignored.

  • fuel_retainThe subset of fuel blocks in an extended set to be considered.

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:The subset of fuel blocks in an extended set to be considered.

  • id_offset0This offset is added to the generated boundary IDs

    Default:0

    C++ Type:short

    Controllable:No

    Description:This offset is added to the generated boundary IDs

  • include_cladTrueWhether to include the clad block

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to include the clad block

  • include_fuelTrueWhether to include the fuel block

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to include the fuel block

  • name_prefixIf provided, prefix the built in boundary names with this string

    C++ Type:std::string

    Controllable:No

    Description:If provided, prefix the built in boundary names with this string

  • pellet_exteriors8Sideset for all pellet exteriors.

    Default:8

    C++ Type:BoundaryName

    Controllable:No

    Description:Sideset for all pellet exteriors.

Optional Parameters

  • allow_duplicate_execution_on_initialFalseIn 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).

    Default:False

    C++ Type:bool

    Controllable:No

    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).

  • execute_onINITIALThe 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.

    Default:INITIAL

    C++ Type:ExecFlagEnum

    Options:XFEM_MARK, NONE, INITIAL, LINEAR, NONLINEAR_CONVERGENCE, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM

    Controllable:No

    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.

  • execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

    Default:0

    C++ Type:int

    Controllable:No

    Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

  • force_postauxFalseForces the UserObject to be executed in POSTAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in POSTAUX

  • force_preauxFalseForces the UserObject to be executed in PREAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREAUX

  • force_preicFalseForces the UserObject to be executed in PREIC during initial setup

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREIC during initial setup

Execution Scheduling Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Determines whether this object is calculated using an implicit or explicit form

  • seed0The seed for the master random number generator

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:The seed for the master random number generator

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Material Property Retrieval Parameters

Input Files

Child Objects