Skip to content

Commit

Permalink
adding moosedoc for reporting ID functions, refs idaholab#19217
Browse files Browse the repository at this point in the history
  • Loading branch information
yjung-anl committed Nov 6, 2021
1 parent 1994bba commit 344f20c
Show file tree
Hide file tree
Showing 7 changed files with 134 additions and 2 deletions.
3 changes: 2 additions & 1 deletion modules/reactor/doc/content/modules/reactor/index.md
Expand Up @@ -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

Expand Down
@@ -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

@@ -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

@@ -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
@@ -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'
Expand Down
@@ -1,4 +1,6 @@
[Tests]
design = 'meshgenerators/HexIDPatternedMeshGenerator.md'
issues = '#19217'
[assembly.cell]
type = 'Exodiff'
input = 'assembly_reporting_id.i'
Expand Down
@@ -1,4 +1,6 @@
[Tests]
design = 'meshgenerators/PlaneIDGenerator.md'
issues = '#19217'
[plane]
type = 'Exodiff'
input = 'plane_reporting_id.i'
Expand Down

0 comments on commit 344f20c

Please sign in to comment.