- id_nameName of extra integer ID set
C++ Type:std::string
Controllable:No
Description:Name of extra integer ID set
- inputsThe input MeshGenerators.
C++ Type:std::vector<MeshGeneratorName>
Controllable:No
Description:The input MeshGenerators.
- patternA double-indexed hexagonal-shaped array starting with the upper-left corner.
C++ Type:std::vector<std::vector<unsigned int>>
Controllable:No
Description:A double-indexed hexagonal-shaped array starting with the upper-left corner.
HexIDPatternedMeshGenerator
Generate hexagonal lattice meshes with reporting (extra integer) ID assignments that indentifies individual components of lattice.
Overview
The HexIDPatternedMeshGenerator
object generates a 2D Hexagonal lattice mesh with reporting ID
assignments. This object inherits the functionality of the lattice mesh generator named PatternedHexMeshGenerator
that stitches together Hexagonal cells, and adds additional functionality to assign reporting IDs to lattice cells. The object can be used successively on its own output mesh to add IDs on the pin and assembly levels, for example.
Reporting ID Information
The HexIDPatternedMeshGenerator
object adopts the existing input structures of PatternedHexMeshGenerator
for geometry building and uses additional keywords to control the reporting ID assignment. A user can select an ID assignment scheme using "assign_type", and the following schemes are currently available:
cell
(default): Assign unique IDs for each component in the lattice in sequential order.pattern
: Assign IDs based on the ID of the input tiles.manual
: Assign IDs based on user-defined mapping defined in "id_pattern".
The default numbering scheme starts at 0 in the upper left hand corner of the hexagon grid (not including duct region) and increments by 1 as the grid is traversed left to right, top to bottom. In presence of duct regions, separate reporting IDs are automatically generated for the elements on duct regions. The duct regions will be assigned reporting IDs starting from the next integer higher than the highest one used inside of the ducts.
The name of the reporting ID variable is provided through "id_name" depending on the hierarchical level of component. The ID values themselves are stored as extra element integers on the mesh. For example, the reporting IDs for individual pins (pin_id
) can be assigned when assemblies are built because the IDs for pin level are uniquely determined from the pin arrangement within each assembly type. Similarly, the assembly reporting IDs (assembly_id
) are assigned in the core construction process.
Certain regions can be excluded from being labeled with an ID, for example dummy regions that will later be deleted. This can be accommodated by listing mesh objects in the "exclude_id" input parameter. IDs will not be assigned to these mesh objects.
Usage of this parameter is helpful to retain sequential numbering when dummy region are later deleted, or to only label areas of interest.
Example Syntax
In this example, the HexIDPatternedMeshGenerator
is used to generate an hexagonal assembly with pin reproting IDs (pin_id
).
[assembly]
type = HexIDPatternedMeshGenerator
inputs = 'pin1 pin2'
pattern_boundary = hexagon
pattern = ' 1 0 1;
0 0 0 0;
1 0 1 0 1;
0 0 0 0;
1 0 1'
hexagon_size = 2.6
duct_sizes = '2.4 2.5'
duct_intervals = '1 1'
assign_type = 'cell'
id_name = 'pin_id'
[]
(modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/assembly_reporting_id.i)Input Parameters
- assign_typecellType of integer ID assignment
Default:cell
C++ Type:MooseEnum
Controllable:No
Description:Type of integer ID assignment
- duct_sizesDistance(s) from center to duct(s) inner boundaries.
C++ Type:std::vector<double>
Controllable:No
Description:Distance(s) from center to duct(s) inner boundaries.
- duct_sizes_styleapothemStyle in which hexagon center to duct distance(s) is given (apothem = center-to-face, radius = center-to-vertex).
Default:apothem
C++ Type:MooseEnum
Controllable:No
Description:Style in which hexagon center to duct distance(s) is given (apothem = center-to-face, radius = center-to-vertex).
- exclude_idName of input meshes to be excluded in ID generation
C++ Type:std::vector<MeshGeneratorName>
Controllable:No
Description:Name of input meshes to be excluded in ID generation
- generate_core_metadataFalseA Boolean parameter that controls whether the core related metadata is generated for other MOOSE objects or not.
Default:False
C++ Type:bool
Controllable:No
Description:A Boolean parameter that controls whether the core related metadata is generated for other MOOSE objects or not.
- hexagon_sizeSize of the outmost hexagon boundary to be generated; this is required only when pattern type is 'hexagon'.
C++ Type:double
Controllable:No
Description:Size of the outmost hexagon boundary to be generated; this is required only when pattern type is 'hexagon'.
- hexagon_size_styleapothemStyle in which the hexagon size is given (default: apothem i.e. half-pitch).
Default:apothem
C++ Type:MooseEnum
Controllable:No
Description:Style in which the hexagon size is given (default: apothem i.e. half-pitch).
- id_patternUser-defined element IDs. A double-indexed array starting with the upper-left corner
C++ Type:std::vector<std::vector<unsigned long>>
Controllable:No
Description:User-defined element IDs. A double-indexed array starting with the upper-left corner
- pattern_boundaryhexagonThe boundary shape of the patterned mesh.
Default:hexagon
C++ Type:MooseEnum
Controllable:No
Description:The boundary shape of the patterned mesh.
- rotate_angle90Rotate the entire patterned mesh by a certain degrees that is defined here.
Default:90
C++ Type:double
Controllable:No
Description:Rotate the entire patterned mesh by a certain degrees that is defined here.
- 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)
Optional Parameters
- assign_control_drum_idTrueWhether control drum id is assigned to the mesh as an extra integer.
Default:True
C++ Type:bool
Controllable:No
Description:Whether control drum id is assigned to the mesh as an extra integer.
- generate_control_drum_positions_fileFalseWhether a positions file is generated in the core mesh mode.
Default:False
C++ Type:bool
Controllable:No
Description:Whether a positions file is generated in the core mesh mode.
- position_filepositions_meta.dataData file name to store control drum positions.
Default:positions_meta.data
C++ Type:std::string
Controllable:No
Description:Data file name to store control drum positions.
Control Drum Parameters
- background_block_idOptional customized block id for the background block in 'assembly' mode; must be provided along with 'duct_block_ids' if 'duct_sizes' is provided.
C++ Type:unsigned short
Controllable:No
Description:Optional customized block id for the background block in 'assembly' mode; must be provided along with 'duct_block_ids' if 'duct_sizes' is provided.
- background_block_nameOptional customized block name for the background block in 'assembly' mode; must be provided along with 'duct_block_names' if 'duct_sizes' is provided.
C++ Type:SubdomainName
Controllable:No
Description:Optional customized block name for the background block in 'assembly' mode; must be provided along with 'duct_block_names' if 'duct_sizes' is provided.
- duct_block_idsOptional customized block ids for each duct geometry block in 'assembly' mode; must be provided along with 'background_block_id'.
C++ Type:std::vector<unsigned short>
Controllable:No
Description:Optional customized block ids for each duct geometry block in 'assembly' mode; must be provided along with 'background_block_id'.
- duct_block_namesOptional customized block names for each duct geometry block in 'assembly' mode; must be provided along with 'background_block_name'.
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:Optional customized block names for each duct geometry block in 'assembly' mode; must be provided along with 'background_block_name'.
- external_boundary_idOptional customized external boundary id.
C++ Type:short
Controllable:No
Description:Optional customized external boundary id.
- external_boundary_nameOptional customized external boundary name.
C++ Type:std::string
Controllable:No
Description:Optional customized external boundary name.
Customized Subdomain/Boundary Parameters
- background_intervals3Radial intervals in the assembly peripheral region.
Default:3
C++ Type:unsigned int
Controllable:No
Description:Radial intervals in the assembly peripheral region.
- duct_intervalsNumber of meshing intervals in each enclosing duct.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Number of meshing intervals in each enclosing duct.
- uniform_mesh_on_sidesFalseWhether the side elements are reorganized to have a uniform size.
Default:False
C++ Type:bool
Controllable:No
Description:Whether the side elements are reorganized to have a uniform size.
Mesh Density 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:No
Description:Set the enabled status of the MooseObject.
Advanced Parameters
Input Files
- (modules/reactor/test/tests/meshgenerators/tri_pin_hex_assemby_generator/dummy_core.i)
- (modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/core_reporting_id.i)
- (modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/core_reporting_id_exclude.i)
- (modules/reactor/test/tests/meshgenerators/patterned_hex_peripheral_modifier/single_hex_pin_id.i)
- (modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/assembly_reporting_id.i)