CartesianIDPatternedMeshGenerator

Generate Certesian lattice meshes with reporting ID assignment that indentifies individual components of lattice.

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 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 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 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 "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 "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 reporting IDs (pin_id).

[Mesh]
  [assembly]
    type = CartesianIDPatternedMeshGenerator
    inputs = 'pin1 pin2'
    pattern = ' 1  0  1  0;
                0  1  0  1;
                1  0  1  0;
                0  1  0  1'
    assign_type = 'cell'
    id_name = 'pin_id'
  []
[]
(contrib/moose/modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/assembly_reporting_id.i)

Input Parameters

  • id_nameName of integer ID set

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of integer ID set

  • inputsThe input MeshGenerators.

    C++ Type:std::vector<MeshGeneratorName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The input MeshGenerators.

  • patternA double-indexed array starting with the upper-left corner

    C++ Type:std::vector<std::vector<unsigned int>>

    Unit:(no unit assumed)

    Controllable:No

    Description:A double-indexed array starting with the upper-left corner

Required Parameters

  • assign_typecellType of integer ID assignment

    Default:cell

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:cell, pattern, manual

    Controllable:No

    Description:Type of integer ID assignment

  • bottom_boundarybottomname of the bottom (y) boundary

    Default:bottom

    C++ Type:BoundaryName

    Unit:(no unit assumed)

    Controllable:No

    Description:name of the bottom (y) boundary

  • exclude_idName of input meshes to be excluded in ID generation

    C++ Type:std::vector<MeshGeneratorName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of input meshes to be excluded in ID generation

  • id_patternUser-defined element IDs. A double-indexed array starting with the upper-left corner

    C++ Type:std::vector<std::vector<unsigned long>>

    Unit:(no unit assumed)

    Controllable:No

    Description:User-defined element IDs. A double-indexed array starting with the upper-left corner

  • left_boundaryleftname of the left (x) boundary

    Default:left

    C++ Type:BoundaryName

    Unit:(no unit assumed)

    Controllable:No

    Description:name of the left (x) boundary

  • right_boundaryrightname of the right (x) boundary

    Default:right

    C++ Type:BoundaryName

    Unit:(no unit assumed)

    Controllable:No

    Description:name of the right (x) boundary

  • top_boundarytopname of the top (y) boundary

    Default:top

    C++ Type:BoundaryName

    Unit:(no unit assumed)

    Controllable:No

    Description:name of the top (y) boundary

  • x_width0The tile width in the x direction

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The tile width in the x direction

  • y_width0The tile width in the y direction

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The tile width in the y direction

  • z_width0The tile width in the z direction

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The tile width in the z direction

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    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

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • save_with_nameKeep the mesh from this mesh generator in memory with the name specified

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:Keep the mesh from this mesh generator in memory with the name specified

Advanced Parameters

  • nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)

  • outputFalseWhether or not to output the mesh file after generating the mesh

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to output the mesh file after generating the mesh

  • 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

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

Debugging Parameters