FuelPinMeshGenerator

Creates a 2D-RZ axisymmetric mesh of a fuel rod.

Description

The FuelPinMeshGenerator generates a smeared pellet mesh for use in simulating fuel rods with pellet fuel. In a smeared mesh, the fuel stack is treated as a single rectangle of fuel (i.e., dishes and chamfers are not included). The typical mesh is shown in Figure 1.

Figure 1: Diagram of a the most common smeared pellet mesh generated from FuelPinMeshGenerator. Sidesets and nodesets are clearly defined.

A coating and liner may be added to the exterior and interior of the cladding radial surface, respectively. In simulations involving a coating, a new block with an id of 2 is created called liner and sideset id 2 becomes the outside surface of the coating. When including a liner, a new block with an id of 4 is created called liner and sideset id 5 becomes the inside surface of the liner.

FuelPinMeshGenerator is also able to create meshes with discrete pellets. Pellets are connected at the nodes at the boundary of the dishes and flat surfaces of the pellets. A description of important parameters for discrete pellet meshes is in Figure 2 where sections of two pellets, with different values for pellet_inner_radius, and cladding are shown.

Figure 2: Mesh for two pellets in a discrete mesh. Important parameters are shown.

Example Input Syntax

An example of a smeared pellet mesh with a coating is given by:

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  [gen]
    type = FuelPinMeshGenerator<<<{"description": "Creates a 2D-RZ axisymmetric mesh of a fuel rod.", "href": "FuelPinMeshGenerator.html"}>>>
    clad_top_gap_height<<<{"description": "Gap between top of pellet and inside top surface of cladding"}>>> = 6.0413e-4
    coating_thickness<<<{"description": "Thickness of coating on exterior of cladding."}>>> = 1e-4
    nx_coating<<<{"description": "Number of coating elements in the radial direction."}>>> = 2
    clad_mesh_density<<<{"description": "Sets the mesh density of the cladding (coarse, medium, fine)"}>>> = customize
  []
[]
(test/tests/fuel_pin_mesh_generator/fuel_pin_mesh_with_coating.i)

An example of a smeared pellet mesh with a liner is given by:

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  [gen]
    type = FuelPinMeshGenerator<<<{"description": "Creates a 2D-RZ axisymmetric mesh of a fuel rod.", "href": "FuelPinMeshGenerator.html"}>>>
    clad_top_gap_height<<<{"description": "Gap between top of pellet and inside top surface of cladding"}>>> = 6.0413e-4
    liner_thickness<<<{"description": "Thickness of liner on interior of cladding."}>>> = 1e-4
    nx_liner<<<{"description": "Number of liner elements in the radial direction."}>>> = 2
    clad_mesh_density<<<{"description": "Sets the mesh density of the cladding (coarse, medium, fine)"}>>> = customize
  []
[]
(test/tests/fuel_pin_mesh_generator/fuel_pin_mesh_with_liner.i)

An example of a mesh with discrete pellets is given by:

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  [gen]
    type = FuelPinMeshGenerator<<<{"description": "Creates a 2D-RZ axisymmetric mesh of a fuel rod.", "href": "FuelPinMeshGenerator.html"}>>>
    clad_top_gap_height<<<{"description": "Gap between top of pellet and inside top surface of cladding"}>>> = 6.0413e-4
    nx_chamfer<<<{"description": "Number of radial elements across the chamfer for each pellet block."}>>> = 1
    nx_flat<<<{"description": "Number of radial elements across the flat portion for each pellet block."}>>> = 3
    nx_dish<<<{"description": "Number of radial elements across the dish for each pellet block."}>>> = 5
    chamfer_width<<<{"description": "Width of the chamfer for each pellet block.  Must be non-negative.  Assumed to be zero if not given."}>>> = 5e-4
    chamfer_height<<<{"description": "Height of the chamfer for each pellet block.  Must be non-negative.  Ignored if 'pellet_chamfer_width' is zero.  Must be give if 'pellet_chamfer_width' is positive."}>>> = 1.6e-4
    dish_depth<<<{"description": "Depth of the dish for each pellet block.  Must be non-negative.  Assumed to be zero if not given."}>>> = 3e-4
    dish_radius<<<{"description": "Radius of dished region for each pellet block.  Region between this radius and the chamfer will be a flat surface."}>>> = .002
    pellet_mesh_density<<<{"description": "Sets the mesh density of the pellet (really_coarse coarse medium fine customize)."}>>> = customize
    pellet_quantity<<<{"description": "Number of pellets in smeared mesh"}>>> = '3 2'
    use_legacy_block_ids<<<{"description": "Whether to use legacy block id convention.  Must be false if creating multiple fuel blocks."}>>> = false
    fuel_base_name<<<{"description": "The base block name for fuel blocks."}>>> = fuel
    ny_p<<<{"description": "Number of fuel elements in axial direction"}>>> = '15 16'
    nx_c<<<{"description": "Number of cladding elements in radial direction."}>>> = 1
    ny_cu<<<{"description": "Number of cladding elements in upper plug in axial direction."}>>> = 1
    ny_cl<<<{"description": "Number of cladding elements in lower plug in  axial direction."}>>> = 1
    clad_mesh_density<<<{"description": "Sets the mesh density of the cladding (coarse, medium, fine)"}>>> = customize
  []
[]
(test/tests/fuel_pin_mesh_generator/discrete.i)

Input Parameters

  • bottom_clad_height0.00224Height of bottom cladding wall.

    Default:0.00224

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Height of bottom cladding wall.

  • bottom_coordinate0Y coordinate of lowest part of the mesh.

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Y coordinate of lowest part of the mesh.

  • bx_p1The amount to grow (or shrink) the fuel elements in the radial direction.

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The amount to grow (or shrink) the fuel elements in the radial direction.

  • chamfer_height0 Height of the chamfer for each pellet block. Must be non-negative. Ignored if 'pellet_chamfer_width' is zero. Must be give if 'pellet_chamfer_width' is positive.

    Default:0

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Height of the chamfer for each pellet block. Must be non-negative. Ignored if 'pellet_chamfer_width' is zero. Must be give if 'pellet_chamfer_width' is positive.

  • chamfer_width0 Width of the chamfer for each pellet block. Must be non-negative. Assumed to be zero if not given.

    Default:0

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Width of the chamfer for each pellet block. Must be non-negative. Assumed to be zero if not given.

  • clad_bot_gap_height0.00127Gap between bottom of pellet and inside bottom surface of cladding

    Default:0.00127

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Gap between bottom of pellet and inside bottom surface of cladding

  • clad_gap_width2.5e-05Gap between outer radius of pellet and inside surface of cladding

    Default:2.5e-05

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Gap between outer radius of pellet and inside surface of cladding

  • clad_mesh_densitymediumSets the mesh density of the cladding (coarse, medium, fine)

    Default:medium

    C++ Type:MooseEnum

    Options:really_coarse, coarse, medium, fine, customize

    Controllable:No

    Description:Sets the mesh density of the cladding (coarse, medium, fine)

  • clad_thickness0.00041Thickness of cladding side wall

    Default:0.00041

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Thickness of cladding side wall

  • clad_top_gap_heightGap between top of pellet and inside top surface of cladding

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Gap between top of pellet and inside top surface of cladding

  • coating_thickness0Thickness of coating on exterior of cladding.

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Thickness of coating on exterior of cladding.

  • dish_depth0 Depth of the dish for each pellet block. Must be non-negative. Assumed to be zero if not given.

    Default:0

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Depth of the dish for each pellet block. Must be non-negative. Assumed to be zero if not given.

  • dish_radius0 Radius of dished region for each pellet block. Region between this radius and the chamfer will be a flat surface.

    Default:0

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Radius of dished region for each pellet block. Region between this radius and the chamfer will be a flat surface.

  • elem_typeQUAD4The type of element to generate (QUAD4 QUAD8 QUAD9).

    Default:QUAD4

    C++ Type:MooseEnum

    Options:QUAD4, QUAD8, QUAD9

    Controllable:No

    Description:The type of element to generate (QUAD4 QUAD8 QUAD9).

  • fuel_base_namepelletThe base block name for fuel blocks.

    Default:pellet

    C++ Type:std::string

    Controllable:No

    Description:The base block name for fuel blocks.

  • include_cladTrueWhether to include clad block

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to include clad block

  • include_fuelTrueWhether to include fuel block

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to include fuel block

  • intervalsIf specified, this forces element boundaries on the fuel pin region. This specifies a list of interval sizes for each block that taken together must add up to the length of the fuel pin region For example, if set to "intervals='0.2 0.3'" then the fuel pin element block will have an element boundary at 0.2 meters, with the total height being 0.5 meters. Note that this total height must be equal to the sum of pellet_quantity * pellet_height for all quantities/heights.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:If specified, this forces element boundaries on the fuel pin region. This specifies a list of interval sizes for each block that taken together must add up to the length of the fuel pin region For example, if set to "intervals='0.2 0.3'" then the fuel pin element block will have an element boundary at 0.2 meters, with the total height being 0.5 meters. Note that this total height must be equal to the sum of pellet_quantity * pellet_height for all quantities/heights.

  • intervals_nyThe number of axial elements in each of the intervals for the fuel pin and the side clad regions, optionally used if the "intervals" are specified.

    C++ Type:std::vector<std::vector<unsigned int>>

    Controllable:No

    Description:The number of axial elements in each of the intervals for the fuel pin and the side clad regions, optionally used if the "intervals" are specified.

  • liner_thickness0Thickness of liner on interior of cladding.

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Thickness of liner on interior of cladding.

  • nx_c2Number of cladding elements in radial direction.

    Default:2

    C++ Type:unsigned int

    Controllable:No

    Description:Number of cladding elements in radial direction.

  • nx_chamfer0 Number of radial elements across the chamfer for each pellet block.

    Default:0

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:Number of radial elements across the chamfer for each pellet block.

  • nx_coating0Number of coating elements in the radial direction.

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:Number of coating elements in the radial direction.

  • nx_dish0 Number of radial elements across the dish for each pellet block.

    Default:0

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:Number of radial elements across the dish for each pellet block.

  • nx_flat0 Number of radial elements across the flat portion for each pellet block.

    Default:0

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:Number of radial elements across the flat portion for each pellet block.

  • nx_liner0Number of liner elements in the radial direction.

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:Number of liner elements in the radial direction.

  • nx_p8 number of fuel elements in radial direction

    Default:8

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:number of fuel elements in radial direction

  • ny_c24Number of cladding elements in axial direction.

    Default:24

    C++ Type:unsigned int

    Controllable:No

    Description:Number of cladding elements in axial direction.

  • ny_c_bot_gapIf "intervals" are specified, this is the number of axial elements in the clad area between the bottom top surface of bottom clad plug and the bottom of the pellet. If not specified, the number will be computed to be roughly equivalent to the size of elements in the active fuel region.

    C++ Type:unsigned int

    Controllable:No

    Description:If "intervals" are specified, this is the number of axial elements in the clad area between the bottom top surface of bottom clad plug and the bottom of the pellet. If not specified, the number will be computed to be roughly equivalent to the size of elements in the active fuel region.

  • ny_c_plenumIf "intervals" are specified, this is the number of axial elements in the plenum (gap between top of pellet and bottom surface of top clad plug). If not specified, the number will be computed to be roughly equivalent to the size of elements in the active fuel region.

    C++ Type:unsigned int

    Controllable:No

    Description:If "intervals" are specified, this is the number of axial elements in the plenum (gap between top of pellet and bottom surface of top clad plug). If not specified, the number will be computed to be roughly equivalent to the size of elements in the active fuel region.

  • ny_cl1Number of cladding elements in lower plug in axial direction.

    Default:1

    C++ Type:unsigned int

    Controllable:No

    Description:Number of cladding elements in lower plug in axial direction.

  • ny_cu1Number of cladding elements in upper plug in axial direction.

    Default:1

    C++ Type:unsigned int

    Controllable:No

    Description:Number of cladding elements in upper plug in axial direction.

  • ny_p24 Number of fuel elements in axial direction

    Default:24

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:Number of fuel elements in axial direction

  • pellet_height0.01186 Pellet height

    Default:0.01186

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Pellet height

  • pellet_inner_radius0 Pellet inner radius. If more than one value, the number of values must match the number of values in pellet_quantity.

    Default:0

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Pellet inner radius. If more than one value, the number of values must match the number of values in pellet_quantity.

  • pellet_mesh_densitymediumSets the mesh density of the pellet (really_coarse coarse medium fine customize).

    Default:medium

    C++ Type:MooseEnum

    Options:really_coarse, coarse, medium, fine, customize

    Controllable:No

    Description:Sets the mesh density of the pellet (really_coarse coarse medium fine customize).

  • pellet_outer_radius0.0041Pellet outer radius

    Default:0.0041

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Pellet outer radius

  • pellet_quantity2 Number of pellets in smeared mesh

    Default:2

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:Number of pellets in smeared mesh

  • plenum_fuel_ratioRatio of the axial gas height to the fuel height inside the cladding

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Ratio of the axial gas height to the fuel height inside the cladding

  • top_clad_height0.00224Height of top cladding wall.

    Default:0.00224

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Height of top cladding wall.

  • use_legacy_block_idsTrueWhether to use legacy block id convention. Must be false if creating multiple fuel blocks.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to use legacy block id convention. Must be false if creating multiple fuel blocks.

Optional Parameters

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • save_with_nameKeep the mesh from this mesh generator in memory with the name specified

    C++ Type:std::string

    Controllable:No

    Description:Keep the mesh from this mesh generator in memory with the name specified

Advanced Parameters

  • nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)

  • outputFalseWhether or not to output the mesh file after generating the mesh

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to output the mesh file after generating the mesh

  • show_infoFalseWhether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

Debugging Parameters

Input Files

Child Objects

References

No citations exist within this document.