# Fuel Pin Geometry

Calculates 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, and outer diameter 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.

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

note:Verify Sideset Numbering

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

## Example Input Syntax


[UserObjects]
[./pin_geometry]
type = FuelPinGeometry
[../]
[]
(test/tests/example_problem_test/example_problem_test.i)

## Input Parameters

Default:5

C++ Type:BoundaryName

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

Default:2

C++ Type:BoundaryName

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

• pellet_exteriors8Sideset for all pellet exteriors.

Default:8

C++ Type:BoundaryName

Description:Sideset for all pellet exteriors.

• include_fuelTrueWhether to include the fuel block

Default:True

C++ Type:bool

Description:Whether to include the fuel block

Default:2

C++ Type:BoundaryName

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

Default:True

C++ Type:bool

Description:Whether to include the clad block

Default:2

C++ Type:BoundaryName

Description:Sideset for outer wall of cladding.

• execute_onINITIALThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.

Default:INITIAL

C++ Type:ExecFlagEnum

Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.

### Optional Parameters

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

C++ Type:std::vector

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

• enableTrueSet the enabled status of the MooseObject.

Default:True

C++ Type:bool

Description:Set the enabled status of the MooseObject.

• 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

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

• 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

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.

• force_preauxFalseForces the GeneralUserObject to be executed in PREAUX

Default:False

C++ Type:bool

Description:Forces the GeneralUserObject to be executed in PREAUX