- pitchThe pitch for the outermost boundary polygon
C++ Type:double
Controllable:No
Description:The pitch for the outermost boundary polygon
- reactor_paramsThe ReactorMeshParams MeshGenerator that is the basis for this component conformal mesh.
C++ Type:MeshGeneratorName
Controllable:No
Description:The ReactorMeshParams MeshGenerator that is the basis for this component conformal mesh.
PinMeshGenerator
This PinMeshGenerator object is designed to generate pin-like structures, with IDs, from a reactor geometry. Whether it be a square or hexagonal pin, they are divided into three substructures - the innermost radial pin regions, the single bridging background region, and the square or hexagonal ducts regions.
Overview
This object is designed to be used in the Reactor MeshGenerator workflow, which also consists of ReactorMeshParams
, AssemblyMeshGenerator
, and CoreMeshGenerator
.
The PinMeshGenerator
object generates square or hexagonal reactor geometry pin cell structures which may be combined into larger assembly structures using AssemblyMeshGenerator
. The block IDs, external boundary ID, region IDs (e.g., materials), and reporting IDs (extra element integers identifying unique planes and pins, as described in CartesianIDPatternedMeshGenerator
and HexIDPatternedMeshGenerator
are automatically assigned once the user provides some basic information.
This pin may be extruded to three dimensions by setting "extrude" to 'true', however such extruded pins cannot be used as input to AssemblyMeshGenerator
. Instead, 2-D pins must be inputted to AssemblyMeshGenerator
and "extrude" should be set to 'true' at the AssemblyMeshGenerator
definition to extrude the assembly to 3-D.
The PinMeshGenerator
object automates the use and functionality of the PolygonConcentricCircleMeshGenerator
and, if extruding to three dimensions, the `FancyExtruderGenerator' through the use of the MeshSubgenerator
functionality and supporting functionality from TransformGenerator
, RenameBoundaryGenerator
, and PlaneIDMeshGenerator
. In addition to the functionality of the MeshGenerators
used, this object also automates block ID assignment and boundary ID and name assignment.
The PinMeshGenerator
object adopts much of the existing input structure of PolygonConcentricCircleMeshGenerator
](PolygonConcentricCircleMeshGenerator.md) but uses parameters that are more typical for reactor design.
Block ID Information
The "region_ids" parameter provides a map of subdomain_id and region_id values to assign to zones in the pin mesh. Each row in this map corresponds to a single axial layer of the pin and contains individual entries corresponding to the radial zones within the pin, starting from the centermost region and extending radially outward. The number of columns (entries in the row) should be identical to the number of rings + 1 (background region) + number of ducts. The required number of rows is dependent on the number of axial layers in the pin. For 2D pins, a single row of entries should be provided. For 3D pins, multiple rows must be provided (one for each axial layer). For 3D pins, the top row corresponds to the bottom of the pin cell.
It should be noted here that both the extra integer "region_id" and the block ID of the resultant pin elements will be modified to match the same value as specified by "region_ids".
The region_ids parameter entries can conveniently be selected to match material ids to be assigned to each region of the problem. Using the same value in multiple entries of the region_id parameter will effectively assign elements in multiple zones to the same subdomain_id and the same region_id. For meshes with all quadrilateral elements, this approach does not present any conflicts. However, if "quad_center_elements" is set to false, the innermost radial zone of the pin is discretized into triangular elements, and therefore only one radial meshing interval may be defined for this radial zone using the "mesh_intervals" parameter. This ensures that a single region id does not correspond to a mesh discretization with both triangle and quadrilateral mesh elements, which will occur if more than one meshing interval is applied to the centermost pin zone with triangular elements. Moreover, the subdomain ID associated with any zone of triangular elements should not be shared with another zone containing quadrilateral elements, otherwise MOOSE will error out.
Reporting ID Information
The PinMeshGenerator
object also tags the mesh elements with the extra integer reporting ID named "region_id".
The PinMeshGenerator
object also automatically tags the mesh with the "pin_type" using the extra integer name "pin_type_id" and, if extruded, the axial layers using the extra integer name "plane_id".
Exterior Boundary ID Information
The PinMeshGenerator
object automatically assigns boundary information derived from the "pin_type" parameter. The exterior pin boundary is assigned the ID equal to 20000 + the pin type ID and is named "outer_pin_<pin_type_id>" (for example a pin with a pin type ID of 1 will have a boundary ID of 20001 and boundary name of "outer_pin_1").
If the pin is extruded to three dimensions the top-most boundary ID must be assigned using "top_boundary_id" and will have the name "top", while the bottom-most boundary must be assigned using "bottom_boundary_id" and will have the name "bottom".
Example Syntax
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Square"
assembly_pitch = 7.10315
#axial_regions = '1.0 1.0'
axial_mesh_intervals = '1'
top_boundary_id = 201
bottom_boundary_id = 202
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 4
region_ids = '1 2 3 4'
ring_radii = '0.3385 0.3705 0.4665'
mesh_intervals = '1 1 1 1'
quad_center_elements = false
#extrude = true
[]
[]
(modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_only.i)
Input Parameters
- extrudeFalseDetermines if this is the final step in the geometry construction and extrudes the 2D geometry to 3D. If this is true then this mesh cannot be used in further mesh building in the Reactor workflow
Default:False
C++ Type:bool
Controllable:No
Description:Determines if this is the final step in the geometry construction and extrudes the 2D geometry to 3D. If this is true then this mesh cannot be used in further mesh building in the Reactor workflow
- quad_center_elementsTrueWhether the center elements are quad or triangular.
Default:True
C++ Type:bool
Controllable:No
Description:Whether the center elements are quad or triangular.
- 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
- 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
- duct_halfpitchApothem of the ducts. If unspecified, no duct is present.
C++ Type:std::vector<double>
Controllable:No
Description:Apothem of the ducts. If unspecified, no duct is present.
- mesh_intervals1 The number of meshing intervals for each region starting at the center. Parameter should be size:((length(ring_radii) + length(duct_halfpitch) + 1
Default:1
C++ Type:std::vector<unsigned int>
Controllable:No
Description:The number of meshing intervals for each region starting at the center. Parameter should be size:((length(ring_radii) + length(duct_halfpitch) + 1
- num_sectorsNumber of azimuthal sectors in each quadrant
C++ Type:unsigned int
Controllable:No
Description:Number of azimuthal sectors in each quadrant
Duct Specifications Parameters
- pin_typeThe integer ID for this pin type definition
C++ Type:unsigned short
Controllable:No
Description:The integer ID for this pin type definition
- ring_radiiRadii of major concentric circles of the pin. If unspecified, no pin is present.
C++ Type:std::vector<double>
Controllable:No
Description:Radii of major concentric circles of the pin. If unspecified, no pin is present.
Pin Specifications Parameters
- region_idsIDs for each radial and axial zone for assignment of block id and region_id extra element id. Inner indexing is radial zones (pin/background/duct), outer indexing is axial
C++ Type:std::vector<std::vector<unsigned short>>
Controllable:No
Description:IDs for each radial and axial zone for assignment of block id and region_id extra element id. Inner indexing is radial zones (pin/background/duct), outer indexing is axial