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

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

Required Parameters

  • assign_typecellType of integer ID assignment

    Default:cell

    C++ Type:MooseEnum

    Options:cell, pattern, manual

    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

    Options:apothem, radius

    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

    Options:apothem, radius

    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

    Options:none, hexagon

    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