diff --git a/modules/reactor/doc/content/modules/reactor/index.md b/modules/reactor/doc/content/modules/reactor/index.md index 5571b9e9de28..ce8a44d1f1b2 100644 --- a/modules/reactor/doc/content/modules/reactor/index.md +++ b/modules/reactor/doc/content/modules/reactor/index.md @@ -9,7 +9,8 @@ This module consists of a series of new mesh generators to enable meshing of a h - Creating unit hexagon meshes as basic components for the core (other polygon meshes can also be created); - Stitching the unit hexagon meshes and adding appropriate peripheral regions to form hexagon assembly regions; - Creating unit hexagon meshes with adaptive external boundaries that are stitch-able with assembly meshes; -- Stitching the assembly meshes and adaptive-boundary unit hexagon meshes to form a core mesh. +- Stitching the assembly meshes and adaptive-boundary unit hexagon meshes to form a core mesh; +- Add reporting IDs (extra element integers) to mesh elements to identify pins, assemblies, plane regions; ## Objects and Syntax diff --git a/modules/reactor/doc/content/source/meshgenerators/CartesianIDPatternedMeshGenerator.md b/modules/reactor/doc/content/source/meshgenerators/CartesianIDPatternedMeshGenerator.md new file mode 100644 index 000000000000..7fe1706484ef --- /dev/null +++ b/modules/reactor/doc/content/source/meshgenerators/CartesianIDPatternedMeshGenerator.md @@ -0,0 +1,47 @@ +# CartesianIDPatternedMeshGenerator + +!syntax description /Mesh/CartesianIDPatternedMeshGenerator + +## Overview + +The `CartesianIDPatternedMeshGenerator` object generates a 2D Cartesian lattice mesh with `reporting ID` assignments. +This object inherits the functionality of the lattice mesh generator named [`PatternedMeshGenerator`](PatternedMeshGenerator.md) that stitches together Cartesian 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 `CartesianIDPatternedMeshGenerator` object adopts the existing input structures of [`PatternedMeshGenerator`](PatternedMeshGenerator.md) for geometry building and uses additional keywords to control the reporting ID assignment. + +A user can select an ID assignment scheme using [!param](/Mesh/CartesianIDPatternedMeshGenerator/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 [!param](/Mesh/CartesianIDPatternedMeshGenerator/id_pattern). + +The default numbering scheme starts at 0 in the upper left hand corner of the grid and increments by 1 as the grid is traversed left to right, top to bottom. +The name of the reporting ID is provided through [!param](/Mesh/CartesianIDPatternedMeshGenerator/id_name) depending on the hierarchical level of component. +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. +The ID values themselves are stored as extra element integers on the mesh. +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 [!param](/Mesh/CartesianIDPatternedMeshGenerator/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 `CartesianIDPatternedMeshGenerator` is used to generate +a Cartesian assembly with pin reproting IDs (`pin_id`). + +!listing modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/assembly_reporting_id.i block=Mesh/assembly + +!syntax parameters /Mesh/CartesianIDPatternedMeshGenerator + +!syntax inputs /Mesh/CartesianIDPatternedMeshGenerator + +!syntax children /Mesh/CartesianIDPatternedMeshGenerator + diff --git a/modules/reactor/doc/content/source/meshgenerators/HexIDPatternedMeshGenerator.md b/modules/reactor/doc/content/source/meshgenerators/HexIDPatternedMeshGenerator.md new file mode 100644 index 000000000000..95674103adbd --- /dev/null +++ b/modules/reactor/doc/content/source/meshgenerators/HexIDPatternedMeshGenerator.md @@ -0,0 +1,50 @@ +# HexIDPatternedMeshGenerator + +!syntax description /Mesh/HexIDPatternedMeshGenerator + +## 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`](PatternedHexMeshGenerator.md) 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`](PatternedHexMeshGenerator.md) for geometry building and uses additional keywords to control the reporting ID assignment. +A user can select an ID assignment scheme using [!param](/Mesh/HexIDPatternedMeshGenerator/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 [!param](/Mesh/HexIDPatternedMeshGenerator/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 [!param](/Mesh/HexIDPatternedMeshGenerator/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 [!param](/Mesh/HexIDPatternedMeshGenerator/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`). + +!listing modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/assembly_reporting_id.i block=Mesh/assembly + +!syntax parameters /Mesh/HexIDPatternedMeshGenerator + +!syntax inputs /Mesh/HexIDPatternedMeshGenerator + +!syntax children /Mesh/HexIDPatternedMeshGenerator + diff --git a/modules/reactor/doc/content/source/meshgenerators/PlaneIDGenerator.md b/modules/reactor/doc/content/source/meshgenerators/PlaneIDGenerator.md new file mode 100644 index 000000000000..310c53fe59e1 --- /dev/null +++ b/modules/reactor/doc/content/source/meshgenerators/PlaneIDGenerator.md @@ -0,0 +1,28 @@ +# PlaneIDGenerator + +!syntax description /Mesh/PlaneIDGenerator + +## Overview + +The `PlaneIDGenerator` object applies a reporting IDs to aixal planes defined in a 3D extruded mesh. + +## Reporting ID Control + +The `PlaneIDGenerator` takes a 3D mesh object and its axial layer structure as input. +This axial layer structure given in [!param](/Mesh/PlaneIDGenerator/z_layers) contains a list of z-coordinates defining each layer from bottom to top. +If there are N planes, N+1 coordinate points should be defined here. + +If each axial plane is uniformly sub-divided into layers during the 3D extrusion, distinct reporting IDs can be optionally assigned to individual sub-planes. +[!param](/Mesh/PlaneIDGenerator/z_sublayers) defines the number of sub-layers in each plane to be assigned unique IDs. + +Note that this generator only works for 3D extruded geometries where the concept of axial layer is valid. + +## Example Syntax + +!listing modules/reactor/test/tests/meshgenerators/reporting_id/plane_id/plane_reporting_id.i block=Mesh + +!syntax parameters /Mesh/PlaneIDGenerator + +!syntax inputs /Mesh/PlaneIDGenerator + +!syntax children /Mesh/PlaneIDGenerator diff --git a/modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/tests b/modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/tests index b6903d12e363..b15e3dc21628 100644 --- a/modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/tests +++ b/modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/tests @@ -1,5 +1,7 @@ [Tests] - [assembly.cell] + design = 'meshgenerators/CartesianIDPatternedMeshGenerator.md' + issues = '#19217' + [assembly.cell] type = 'Exodiff' input = 'assembly_reporting_id.i' exodiff = 'assembly_reporting_id_cell_out.e' diff --git a/modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/tests b/modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/tests index 2edabee88be5..f7fbede5aee0 100644 --- a/modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/tests +++ b/modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/tests @@ -1,4 +1,6 @@ [Tests] + design = 'meshgenerators/HexIDPatternedMeshGenerator.md' + issues = '#19217' [assembly.cell] type = 'Exodiff' input = 'assembly_reporting_id.i' diff --git a/modules/reactor/test/tests/meshgenerators/reporting_id/plane_id/tests b/modules/reactor/test/tests/meshgenerators/reporting_id/plane_id/tests index 0215c4f0016f..1fc5b7cc0c9c 100644 --- a/modules/reactor/test/tests/meshgenerators/reporting_id/plane_id/tests +++ b/modules/reactor/test/tests/meshgenerators/reporting_id/plane_id/tests @@ -1,4 +1,6 @@ [Tests] + design = 'meshgenerators/PlaneIDGenerator.md' + issues = '#19217' [plane] type = 'Exodiff' input = 'plane_reporting_id.i'