- inputsThe AssemblyMeshGenerators that form the components of the assembly.
C++ Type:std::vector<MeshGeneratorName>
Controllable:No
Description:The AssemblyMeshGenerators that form the components of the assembly.
- patternA double-indexed array starting with the upper-left corner where the indexrepresents the layout of input assemblies in the core lattice.
C++ Type:std::vector<std::vector<unsigned int>>
Controllable:No
Description:A double-indexed array starting with the upper-left corner where the indexrepresents the layout of input assemblies in the core lattice.
CoreMeshGenerator
This CoreMeshGenerator object is designed to generate a core-like structure, with IDs, from a reactor geometry. The core-like structure consists of a pattern of assembly-like structures generated with AssemblyMeshGenerator and is permitted to have "empty" locations. The size and spacing of the assembly-like structures is defined, and enforced by declaration in the ReactorMeshParams.
Overview
This object is designed to be used in the Reactor MeshGenerator workflow, which also consists of ReactorMeshParams
, PinMeshGenerator
, and AssemblyMeshGenerator
.
The CoreMeshGenerator
object generates core-like reactor geometry structures in either square or hexagonal geometries with block ID assignments and reporting (extra integer) IDs, as described in CartesianIDPatternedMeshGenerator
. There is expected to only be a single CoreMeshGenerator
in a Mesh definition.
This object automates the use and functionality of the CartesianIDPatternedMeshGenerator
for cartesian reactor geometry, HexIDPatternedMeshGenerator
for hexagonal reactor geometry and, if extruding to three dimensions, the `FancyExtruderGenerator' through the use of the MeshSubgenerator
functionality and supporting functionality from RenameBoundaryGenerator
and `PlaneIDMeshGenerator'. In addition to the functionality of the MeshGenerators
used, this object also automates boundary ID and name assignment.
In addition to the functionality of CartesianIDPatternedMeshGenerator
or HexIDPatternedMeshGenerator
, this object allows for the definition of "empty" lattice locations using MeshSubgenerators
. This is achieved through the use of creating "dummy" assembly meshes via CartesianMeshGenerator
or HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
respectively. These assemblies are then removed after the core mesh creation via BlockDeletionGenerator
.
The CoreMeshGenerator
object adopts much of the existing input structure of patterned MeshGenerators but also adapts to use parameters that are more accessible for reactor design.
Reporting ID Information
The CoreMeshGenerator
object automatically tags the mesh, if three dimensional, with the axial layers using the extra integer name "plane_id". The assemblies composing the core are also tagged via CartesianIDPatternedMeshGenerator
or HexIDPatternedMeshGenerator
, using the "cell" assignment type, with the extra integer name "assembly_id" and any "dummy" assembly (identified via the "dummy_assembly_name" parameter) locations excluded.
Exterior Boundary ID Information
The CoreMeshGenerator
objects automatically assigns boundary information. The exterior core boundary ID is assigned with the parameter "radial_boundary_id" and will have the name "outer_core".
If the core 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 = 3
geom = "Square"
assembly_pitch = 2.84126
axial_regions = '1.0'
axial_mesh_intervals = '1'
top_boundary_id = 201
bottom_boundary_id = 202
radial_boundary_id = 200
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 1
pitch = 1.42063
num_sectors = 2
ring_radii = '0.2'
duct_halfpitch = '0.68'
mesh_intervals = '1 1 1'
region_ids = '1 2 5'
quad_center_elements = true
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 2
mesh_intervals = '2'
region_ids = '2'
quad_center_elements = true
[]
[pin3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.42063
num_sectors = 2
ring_radii = '0.3818'
mesh_intervals = '1 1'
region_ids = '3 4'
quad_center_elements = true
[]
[amg1]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin2'
pattern = '0 0;
0 0'
[]
[amg2]
type = AssemblyMeshGenerator
assembly_type = 2
inputs = 'pin3 pin1 pin2'
pattern = '0 1;
1 2'
[]
[cmg]
type = CoreMeshGenerator
inputs = 'amg2 amg1 empty'
dummy_assembly_name = empty
pattern = '1 0;
0 1'
extrude = true
[]
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core.i)
Input Parameters
- dummy_assembly_namedummyThe place holder name in "inputs" that indicates an empty position.
Default:dummy
C++ Type:MeshGeneratorName
Controllable:No
Description:The place holder name in "inputs" that indicates an empty position.
- 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
- 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.