From 031e6d1ac30368e100641f652e24314dd7f969d6 Mon Sep 17 00:00:00 2001 From: Yeon Sang Jung Date: Wed, 15 Sep 2021 01:27:30 -0500 Subject: [PATCH] adding moosedoc for reporting ID functions, refs idaholab#19217 --- .../doc/content/modules/reactor/index.md | 3 +- .../CartesianIDPatternedMeshGenerator.md | 47 +++++++++++++++++ .../HexIDPatternedMeshGenerator.md | 50 +++++++++++++++++++ .../meshgenerators/PlaneIDMeshGenerator.md | 29 +++++++++++ .../reporting_id/cartesian_id/tests | 2 + .../reporting_id/hexagonal_id/tests | 2 + .../reporting_id/plane_id/tests | 2 + 7 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 modules/reactor/doc/content/source/meshgenerators/CartesianIDPatternedMeshGenerator.md create mode 100644 modules/reactor/doc/content/source/meshgenerators/HexIDPatternedMeshGenerator.md create mode 100644 modules/reactor/doc/content/source/meshgenerators/PlaneIDMeshGenerator.md diff --git a/modules/reactor/doc/content/modules/reactor/index.md b/modules/reactor/doc/content/modules/reactor/index.md index 71ba8d9f71de..039aac2cf8cd 100644 --- a/modules/reactor/doc/content/modules/reactor/index.md +++ b/modules/reactor/doc/content/modules/reactor/index.md @@ -10,7 +10,8 @@ This module consists of a series of new mesh generators to enable meshing of a h - 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; -- Modifying unit hexagon meshes to create azimuthal section blocks to enable static simulation of rotational control drums. +- Modifying unit hexagon meshes to create azimuthal section blocks to enable static simulation of rotational control drum; +- Adding reporting IDs (extra element integers) to mesh elements to identify pins, assemblies, plane regions. Aside from the mesh generators, this `reactor` module also includes a Function object to enable dynamic simulation of rotational control drums in a reactor core mesh. 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/PlaneIDMeshGenerator.md b/modules/reactor/doc/content/source/meshgenerators/PlaneIDMeshGenerator.md new file mode 100644 index 000000000000..d260523a870c --- /dev/null +++ b/modules/reactor/doc/content/source/meshgenerators/PlaneIDMeshGenerator.md @@ -0,0 +1,29 @@ +# PlaneIDMeshGenerator + +!syntax description /Mesh/PlaneIDMeshGenerator + +## Overview + +The `PlaneIDMeshGenerator` object applies an extra IDs to axial planes defined in a extruded mesh. + +## Extra ID Control + +The `PlaneIDMeshGenerator` takes a mesh object and its axial layer structure as input. +This axial plane structure given in [!param](/Mesh/PlaneIDMeshGenerator/plane_coordinates) contains a list of coordinates defining each plane 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 mutiple layers during the extrusion, distinct extra IDs can be optionally assigned to individual layers in each plane. +[!param](/Mesh/PlaneIDMeshGenerator/num_ids_per_plane) defines the number of unique IDs in each plane defined in [!param](/Mesh/PlaneIDMeshGenerator/plane_coordinates). + +Note that this generator only works for extruded geometries where the concept of axial layer is valid. +The axis of plane can be specfied using [!param](/Mesh/PlaneIDMeshGenerator/plane_axis). + +## Example Syntax + +!listing modules/reactor/test/tests/meshgenerators/reporting_id/plane_id/plane_id_pin3d.i block=Mesh + +!syntax parameters /Mesh/PlaneIDMeshGenerator + +!syntax inputs /Mesh/PlaneIDMeshGenerator + +!syntax children /Mesh/PlaneIDMeshGenerator 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 0b56310cbe19..7a826e280f1f 100644 --- a/modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/tests +++ b/modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/tests @@ -1,4 +1,6 @@ [Tests] + design = 'meshgenerators/CartesianIDPatternedMeshGenerator.md' + issues = '#19217' [assembly] requirement = 'The system shall support the generation of reporting IDs for Cartesian assemblies' [cell] 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 a6d4ce296a79..cdb75c657c3c 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] requirement = 'The system shall support the generation of reporting IDs for hexagonal assemblies' [cell] 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 e2a3ac374e1b..4460c4ed8bb1 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/PlaneIDMeshGenerator.md' + issues = '#19217' [2d_cartesian_grid] requirement = 'The system shall support the generation of plane IDs for 2D Cartesian grid' [x_dir]