- bottom_gap_heightHeight of gap between bottom cladding cap and start of fuel stack.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Height of gap between bottom cladding cap and start of fuel stack.
- cladding_axial_intervalNumber of axial elements in the cladding wall.
C++ Type:unsigned int
Controllable:No
Description:Number of axial elements in the cladding wall.
- cladding_cap_axial_intervalNumber of axial elements through the cladding cap.
C++ Type:unsigned int
Controllable:No
Description:Number of axial elements through the cladding cap.
- cladding_cap_bottom_heightHeight of the bottom cladding cap.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Height of the bottom cladding cap.
- cladding_cap_radial_intervalNumber of radial elements across the inner portion of the cladding cap.
C++ Type:unsigned int
Controllable:No
Description:Number of radial elements across the inner portion of the cladding cap.
- cladding_cap_top_heightHeight of the top cladding cap.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Height of the top cladding cap.
- cladding_inner_heightInner height of cladding.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Inner height of cladding.
- cladding_inner_radiusInner radius of cladding.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Inner radius of cladding.
- cladding_num_sectorsNumber of azimuthal sectors in each quarter circle for the cladding. Must be an even number.
C++ Type:unsigned int
Controllable:No
Description:Number of azimuthal sectors in each quarter circle for the cladding. Must be an even number.
- cladding_radial_intervalNumber of radial elements through the cladding wall.
C++ Type:unsigned int
Controllable:No
Description:Number of radial elements through the cladding wall.
- cladding_thicknessThickness of cladding wall.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Thickness of cladding wall.
- pellet_axial_intervalNumber of axial elements per pellet for each pellet block.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Number of axial elements per pellet for each pellet block.
- pellet_chamfer_intervalNumber of radial elements across the chamfer for each pellet block.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Number of radial elements across the chamfer for each pellet block.
- pellet_dish_intervalNumber of radial elements across the dish for each pellet block.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Number of radial elements across the dish for each pellet block.
- pellet_dish_radiusRadius of dished region for each pellet block. Region between this radius and the chamfer will be a flat surface.
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.
- pellet_flat_intervalNumber of radial elements across the flat portion for each pellet block.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Number of radial elements across the flat portion for each pellet block.
- pellet_heightHeight of each pellet for each pellet block.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Height of each pellet for each pellet block.
- pellet_num_sectorsNumber of azimuthal sectors in each quarter circle for each pellet block. Must be an even number.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Number of azimuthal sectors in each quarter circle for each pellet block. Must be an even number.
- pellet_outer_radiusOuter radius for each pellet block. Typically this is the same value for each pellet block.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Outer radius for each pellet block. Typically this is the same value for each pellet block.
- pellet_quantityNumber of pellets in each pellet block.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Number of pellets in each pellet block.
FuelPin3DMeshGenerator
Creates a 3D fuel pin mesh.
Description
The FuelPin3DMeshGenerator generates a 3D mesh for a fuel rod. The mesh may include either a smeared fuel column or individual fuel pellets. Multiple fuel blocks are supported.
For meshes with individual pellets, the pellets are connected to one another at the line between the dished region and the flat section on the tops and bottoms of the fuel pellets. If using multiple fuel blocks, it is recommended for all fuel blocks to use the same values for pellet_dish_radius and pellet_num_sectors. This will allow the pellets to be connected and avoid problems with rigid body modes.
The mesh block names may be set by the user. If not supplied by the user, the mesh will have the following blocks:
| Block Name | Description |
|---|---|
| liner | Cladding liner (if present). |
| cladding | Cladding. |
| coating | Cladding coating (if present). |
| pellet | Fuel (if only one fuel block). |
| pellet_{i} | Fuel block i (if more than one fuel block). |
The mesh will have the following sidesets:
| Sideset Name | Description |
|---|---|
| xzero | Symmetry plane at x=0. |
| zzero | Symmetry plane at z=0. |
| cladding_exterior_bottom | Exterior, bottom surface of cladding. |
| cladding_exterior_radial | Exterior, radial surface of cladding. |
| cladding_exterior_top | Exterior, top surface of cladding. |
| cladding_exterior | Exterior surfaces of cladding. |
| cladding_interior_bottom | Interior, bottom surface of cladding. |
| cladding_interior_radial | Interior, radial surface of cladding. |
| cladding_interior_top | Interior, top surface of cladding. |
| cladding_interior | Interior surfaces of cladding. |
| fuel_exterior_radial | Exterior, radial surface of fuel. |
| fuel_interior_radial | Interior, radial surface of fuel (for hollow fuel). |
| fuel_exterior | All fuel surfaces. |
| interior | Union of fuel_exterior and cladding_interior. |
| {block_name_i}_{j}_bottom | Bottom surface of pellet j of fuel block i. |
| {block_name_i}_{j}_top | Top surface of pellet j of fuel block i. |
The mesh will have the following nodesets:
| Nodeset Name | Description |
|---|---|
| cladding_centerline_bottom | Bottom node at the cladding centerline. |
| cladding_centerline_top | Top node at the cladding centerline. |
| fuel_centerline_bottom | Bottom node of bottom fuel block at the fuel centerline. |
| fuel_centerline_top | Top node of top fuel block at the fuel centerline. |
| {block_name_i}_centerline_{j}_bottom | Bottom node of pellet j of fuel block i at the fuel centerline. |
| {block_name_i}_centerline_{j}_top | Top node of pellet j of fuel block i at the fuel centerline. |
| {block_name_i}_x_{j}_bottom | Bottom node of pellet j of fuel block i in the positive x direction. |
| {block_name_i}_x_{j}_top | Top node of pellet j of fuel block i in the positive x direction. |
| {block_name_i}_z_{j}_bottom | Bottom node of pellet j of fuel block i in the negative z direction. |
| {block_name_i}_z_{j}_top | Top node of pellet j of fuel block i in the negative z direction. |
Example Input Syntax
[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 20
patch_update_strategy = iteration
[mesh]
type = FuelPin3DMeshGenerator<<<{"description": "Creates a 3D fuel pin mesh.", "href": "FuelPin3DMeshGenerator.html"}>>>
pellet_height<<<{"description": "Height of each pellet for each pellet block."}>>> = '11.86e-3 16e-3'
pellet_inner_radius<<<{"description": "Inner radius for each pellet block. Assumed to be zero if not given."}>>> = '0 0.001'
pellet_outer_radius<<<{"description": "Outer radius for each pellet block. Typically this is the same value for each pellet block."}>>> = '.0041 .0041'
pellet_dish_depth<<<{"description": "Depth of dish for each pellet block. Must be non-negative. Assumed to be zero if not given."}>>> = '3e-4 3e-4'
pellet_dish_radius<<<{"description": "Radius of dished region for each pellet block. Region between this radius and the chamfer will be a flat surface."}>>> = '.0025 .0025'
pellet_chamfer_width<<<{"description": "Width of the chamfer for each pellet block. Must be non-negative. Assumed to be zero if not given."}>>> = '5e-4 5e-4'
pellet_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 1.6e-4'
pellet_num_sectors<<<{"description": "Number of azimuthal sectors in each quarter circle for each pellet block. Must be an even number."}>>> = '4 4'
pellet_dish_interval<<<{"description": "Number of radial elements across the dish for each pellet block."}>>> = '7 9'
pellet_flat_interval<<<{"description": "Number of radial elements across the flat portion for each pellet block."}>>> = '2 2'
pellet_chamfer_interval<<<{"description": "Number of radial elements across the chamfer for each pellet block."}>>> = '1 1'
pellet_axial_interval<<<{"description": "Number of axial elements per pellet for each pellet block."}>>> = '8 8'
pellet_quantity<<<{"description": "Number of pellets in each pellet block."}>>> = '2 1'
pellet_names<<<{"description": "A list of names to be assigned to the pellet blocks."}>>> = 'first second'
cladding_inner_height<<<{"description": "Inner height of cladding."}>>> = 44e-3
cladding_inner_radius<<<{"description": "Inner radius of cladding."}>>> = .00418
cladding_cap_bottom_height<<<{"description": "Height of the bottom cladding cap."}>>> = 1e-3
cladding_cap_top_height<<<{"description": "Height of the top cladding cap."}>>> = 1e-3
cladding_thickness<<<{"description": "Thickness of cladding wall."}>>> = 5.6e-4
cladding_radial_interval<<<{"description": "Number of radial elements through the cladding wall."}>>> = 3
cladding_axial_interval<<<{"description": "Number of axial elements in the cladding wall."}>>> = 10
cladding_cap_radial_interval<<<{"description": "Number of radial elements across the inner portion of the cladding cap."}>>> = 8
cladding_cap_axial_interval<<<{"description": "Number of axial elements through the cladding cap."}>>> = 3
cladding_num_sectors<<<{"description": "Number of azimuthal sectors in each quarter circle for the cladding. Must be an even number."}>>> = 4
cladding_name<<<{"description": "Name to be assigned to the cladding block."}>>> = cladding
bottom_gap_height<<<{"description": "Height of gap between bottom cladding cap and start of fuel stack."}>>> = 1e-3
[]
[](test/tests/FuelPin3DMeshGenerator/quarter.i)Input Parameters
- cladding_coating_interval3Number of radial elements through the coating.
Default:3
C++ Type:unsigned int
Controllable:No
Description:Number of radial elements through the coating.
- cladding_coating_nameName to be assigned to the cladding coating block.
C++ Type:std::string
Controllable:No
Description:Name to be assigned to the cladding coating block.
- cladding_coating_thickness0Coating thickness.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Coating thickness.
- cladding_liner_interval3Number of radial elements through the liner.
Default:3
C++ Type:unsigned int
Controllable:No
Description:Number of radial elements through the liner.
- cladding_liner_nameName to be assigned to the cladding liner block.
C++ Type:std::string
Controllable:No
Description:Name to be assigned to the cladding liner block.
- cladding_liner_thickness0Liner thickness.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Liner thickness.
- cladding_nameName to be assigned to the cladding block.
C++ Type:std::string
Controllable:No
Description:Name to be assigned to the cladding block.
- elem_typeHEX8The type of element from libMesh to generate.
Default:HEX8
C++ Type:MooseEnum
Controllable:No
Description:The type of element from libMesh to generate.
- include_cladTrueWhether to create the clad part of the mesh.
Default:True
C++ Type:bool
Controllable:No
Description:Whether to create the clad part of the mesh.
- include_fuelTrueWhether to create the fuel part of the mesh.
Default:True
C++ Type:bool
Controllable:No
Description:Whether to create the fuel part of the mesh.
- pellet_chamfer_heightHeight 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.
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.
- pellet_chamfer_widthWidth of the chamfer for each pellet block. Must be non-negative. Assumed to be zero if not given.
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.
- pellet_dish_depthDepth of dish for each pellet block. Must be non-negative. Assumed to be zero if not given.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Depth of dish for each pellet block. Must be non-negative. Assumed to be zero if not given.
- pellet_inner_radiusInner radius for each pellet block. Assumed to be zero if not given.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Inner radius for each pellet block. Assumed to be zero if not given.
- pellet_namesA list of names to be assigned to the pellet blocks.
C++ Type:std::vector<std::string>
Controllable:No
Description:A list of names to be assigned to the pellet blocks.
- portionquarterControl which fraction of the fuel pin is meshed.
Default:quarter
C++ Type:MooseEnum
Controllable:No
Description:Control which fraction of the fuel pin is meshed.
- scale_factor1Scale factor applied to mesh coordinates.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Scale factor applied to mesh coordinates.
- translate0 0 0Translation vector to be applied to the mesh.
Default:0 0 0
C++ Type:libMesh::Point
Controllable:No
Description:Translation vector to be applied to the mesh.
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)