- assembly_pitchCenter to center distance of assemblies
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Center to center distance of assemblies
- dim2The dimension of the mesh to be generated
Default:2
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The dimension of the mesh to be generated
- geomSquareThe geometry type of the reactor mesh
Default:Square
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The geometry type of the reactor mesh
ReactorMeshParams
This ReactorMeshParams object acts as storage for persistent information about the reactor geometry.
Overview
The ReactorMeshParams
object stores persistent mesh information about a reactor's geometry for use with PinMeshGenerator, AssemblyMeshGenerator, and CoreMeshGenerator. This is where the geometry type ("geom" as 'Square' or 'Hex' for cartesian and hexagonal definitions respectively) and the number of dimensions of the mesh ("dim" either 2 for 2D or 3 for 3D) is declared and persistently enforced for the rest of the mesh definition. If the mesh is to be 3-dimensional, this is also where the axial information is declared ("axial_regions" and "axial_mesh_intervals"). In addition, the global option to automatically set block names for the output mesh based on the region IDs of the mesh can be selected in this mesh generator, by setting ("region_id_as_block_name" to true
. More information about this parameter can be found in the block naming sections of PinMeshGenerator, AssemblyMeshGenerator, and CoreMeshGenerator. In order to enable flexible assembly stitching between AssemblyMeshGenerator objects that do not share the same number of nodes at the outer assembly interface, "flexible_assembly_stitching" can be set to true
, and the number of sectors that are created at the flexible assembly boundary interface is controlled by ("num_sectors_at_flexible_boundary". More information about flexible assembly stitching can be found in CoreMeshGenerator.
Metadata Information
The ReactorMeshParams
object stores certain global mesh information as metadata, which can be queried from subsequent RGMB-based mesh generators. A list of metadata that is generated at the pin, assembly, and core levels can be found at PinMeshGenerator, AssemblyMeshGenerator, and CoreMeshGenerator, respectively, while the following metadata can be queried by passing in the name of the ReactorMeshParams
mesh generator, which is stored at each RGMB mesh generation level with the metadata name reactor_params_name
:
mesh_dimensions
: Number of dimensions in pin mesh, equivalent to ReactorMeshParams/"dim"mesh_geometry
: Whether pin geometry is hexagonal ("Hex") or Cartesian ("Square"), equivalent to ReactorMeshParams/"geom"axial_mesh_sizes
: Length of each axial region, equivalent to ReactorMeshParams/"axial_regions". Only relevant for 3-D meshes.axial_mesh_intervals
: Number of elements in the axial dimension for each axial region, equivalent to ReactorMeshParams/"axial_mesh_intervals". Only relevant for 3-D meshes.
Example Syntax
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Square"
assembly_pitch = 7.10315
[]
[]
(modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_square.i)Input Parameters
- axial_mesh_intervalsNumber of elements in the Z direction for each axial region
C++ Type:std::vector<unsigned int>
Unit:(no unit assumed)
Controllable:No
Description:Number of elements in the Z direction for each axial region
- axial_regionsLength of each axial region
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Length of each axial region
- bottom_boundary_idThe boundary ID to set on bottom boundary of the extruded mesh
C++ Type:short
Unit:(no unit assumed)
Controllable:No
Description:The boundary ID to set on bottom boundary of the extruded mesh
- flexible_assembly_stitchingFalseUse FlexiblePatternGenerator for stitching dissimilar assemblies together
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Use FlexiblePatternGenerator for stitching dissimilar assemblies together
- num_sectors_at_flexible_boundary6Number of sectors to use at assembly boundary interface when flexible patterning is used (Defaults to 6)
Default:6
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Number of sectors to use at assembly boundary interface when flexible patterning is used (Defaults to 6)
- radial_boundary_idThe boundary ID to set on the outer radial boundary of a CoreMeshGenerator object
C++ Type:short
Unit:(no unit assumed)
Controllable:No
Description:The boundary ID to set on the outer radial boundary of a CoreMeshGenerator object
- region_id_as_block_nameFalseSet block names based on region id
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Set block names based on region id
- top_boundary_idThe boundary ID to set on top boundary of the extruded mesh
C++ Type:short
Unit:(no unit assumed)
Controllable:No
Description:The boundary ID to set on top boundary of the extruded mesh
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
Input Files
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_2d_datadriven.i)
- (modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_square.i)
- (modules/reactor/test/tests/meshgenerators/assembly_mesh_generator/assembly_hex.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_flexible_assembly_stitching_hex.i)
- (tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_hexagonal_periphery.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_periphery_ptmg_vol.i)
- (modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_homogenized.i)
- (modules/reactor/test/tests/meshgenerators/assembly_mesh_generator/assembly_hex_2d.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_square.i)
- (modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_hex.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_extra_assemblies.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_periphery_prmg.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_single_assembly.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_2d.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_flexible_assembly_stitching_cart.i)
- (tutorials/tutorial04_meshing/app/test/tests/reactor_examples/rgmb_lfr/rgmb_lfr_assembly.i)
- (modules/reactor/test/tests/meshgenerators/assembly_mesh_generator/assembly_square.i)
- (tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_cartesian.i)
- (tutorials/tutorial04_meshing/app/test/tests/reactor_examples/rgmb_abtr/rgmb_abtr.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_datadriven.i)
- (tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_hexagonal.i)
- (modules/reactor/test/tests/meshgenerators/pin_mesh_generator/single_pin_assembly.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_square_datadriven.i)
geom
Default:Square
C++ Type:MooseEnum
Unit:(no unit assumed)
Options:Square, Hex
Controllable:No
Description:The geometry type of the reactor mesh
dim
Default:2
C++ Type:MooseEnum
Unit:(no unit assumed)
Options:2, 3
Controllable:No
Description:The dimension of the mesh to be generated
axial_regions
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Length of each axial region
axial_mesh_intervals
C++ Type:std::vector<unsigned int>
Unit:(no unit assumed)
Controllable:No
Description:Number of elements in the Z direction for each axial region
region_id_as_block_name
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Set block names based on region id
flexible_assembly_stitching
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Use FlexiblePatternGenerator for stitching dissimilar assemblies together
num_sectors_at_flexible_boundary
Default:6
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Number of sectors to use at assembly boundary interface when flexible patterning is used (Defaults to 6)
dim
Default:2
C++ Type:MooseEnum
Unit:(no unit assumed)
Options:2, 3
Controllable:No
Description:The dimension of the mesh to be generated
geom
Default:Square
C++ Type:MooseEnum
Unit:(no unit assumed)
Options:Square, Hex
Controllable:No
Description:The geometry type of the reactor mesh
axial_regions
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Length of each axial region
axial_mesh_intervals
C++ Type:std::vector<unsigned int>
Unit:(no unit assumed)
Controllable:No
Description:Number of elements in the Z direction for each axial region
(modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_square.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Square"
assembly_pitch = 7.10315
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
region_ids='3'
quad_center_elements = false
num_sectors = 2
mesh_intervals = '2'
[]
[]
[Problem]
solve = false
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'region_id'
[]
[]
[Executioner]
type = Steady
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_2d_datadriven.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Hex"
assembly_pitch = 3.7884
radial_boundary_id = 200
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 1
pitch = 1.3425
region_ids = '1 2'
quad_center_elements = false
num_sectors = 2
ring_radii = 0.5404
mesh_intervals = '1 1'
[]
[amg1]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin1'
pattern = '0 0;
0 0 0;
0 0'
background_intervals = 1
background_region_id = 3
duct_halfpitch = 1.7703
duct_intervals = 1
duct_region_ids = 4
[]
[cmg]
type = CoreMeshGenerator
inputs = 'amg1'
dummy_assembly_name = empty
pattern = '0 0;
0 0 0;
0 0'
extrude = false
mesh_periphery = true
periphery_generator = quad_ring
periphery_region_id = 5
outer_circle_radius = 7
periphery_num_layers = 1
desired_area = 5.0
[]
[test_rgmb]
type = TestReactorGeometryMeshBuilderMeshGenerator
input = cmg
[]
data_driven_generator = test_rgmb
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Reporters/metadata]
type = MeshMetaDataReporter
[]
[Outputs]
[out]
type = JSON
execute_on = FINAL
execute_system_information_on = none
[]
[]
(modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_square.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Square"
assembly_pitch = 7.10315
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
region_ids='3'
quad_center_elements = false
num_sectors = 2
mesh_intervals = '2'
[]
[]
[Problem]
solve = false
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'region_id'
[]
[]
[Executioner]
type = Steady
[]
(modules/reactor/test/tests/meshgenerators/assembly_mesh_generator/assembly_hex.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Hex"
assembly_pitch = 7.10315
axial_regions = '1.0 1.0'
axial_mesh_intervals = '1 1'
top_boundary_id = 201
bottom_boundary_id = 202
[]
[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'
quad_center_elements = true
region_ids='1 2 5; 11 12 15'
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 2
mesh_intervals = '2'
region_ids='3; 13'
quad_center_elements = true
[]
[amg]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin1 pin2'
pattern = '1 1;
1 0 1;
1 1;'
background_intervals = 1
background_region_id = '6 16'
duct_halfpitch = '3.5'
duct_region_ids = '7; 17'
duct_intervals = '1'
extrude = true
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'region_id'
[]
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_flexible_assembly_stitching_hex.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Hex"
assembly_pitch = 20
flexible_assembly_stitching = true
radial_boundary_id = 200
top_boundary_id = 201
bottom_boundary_id = 202
axial_regions = 1.0
axial_mesh_intervals = 1
region_id_as_block_name = true
[]
[het_pin_1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 1
pitch = 1.0
num_sectors = 2
ring_radii = '0.4'
mesh_intervals = '1 1' # Fuel, background
region_ids = '1 2'
quad_center_elements = false
[]
[het_assembly_1]
type = AssemblyMeshGenerator
assembly_type = 1
background_intervals = 1
background_region_id = '3'
duct_halfpitch = '9'
duct_intervals = '1'
duct_region_ids = '4'
inputs = 'het_pin_1'
pattern = '0 0;
0 0 0;
0 0'
[]
[het_pin_2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.0
num_sectors = 2
ring_radii = '0.4'
mesh_intervals = '1 1' # Fuel, background
region_ids = '5 6'
quad_center_elements = false
[]
[het_assembly_2]
type = AssemblyMeshGenerator
assembly_type = 2
background_intervals = 1
background_region_id = '7'
duct_halfpitch = '9'
duct_intervals = '1'
duct_region_ids = '8'
inputs = 'het_pin_2'
pattern = '0 0 0;
0 0 0 0;
0 0 0 0 0;
0 0 0 0;
0 0 0'
[]
[het_pin_3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.0
num_sectors = 4
ring_radii = '0.4'
mesh_intervals = '1 1' # Fuel, background
region_ids = '9 10'
quad_center_elements = false
[]
[het_assembly_3]
type = AssemblyMeshGenerator
assembly_type = 3
background_intervals = 1
background_region_id = '11'
duct_halfpitch = '9'
duct_intervals = '1'
duct_region_ids = '12'
inputs = 'het_pin_3'
pattern = '0 0;
0 0 0;
0 0'
[]
[hom_assembly]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 4
pitch = 20
region_ids = '13'
homogenized = true
use_as_assembly = true
quad_center_elements = false
[]
[hom_assembly_single_pin]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 5
pitch = 20
num_sectors = 2
ring_radii = '2'
mesh_intervals = '1 1' # Fuel, background
region_ids = '14 15'
use_as_assembly = true
quad_center_elements = false
[]
[core]
type = CoreMeshGenerator
inputs = 'het_assembly_1 het_assembly_2 het_assembly_3 hom_assembly hom_assembly_single_pin dummy'
dummy_assembly_name = dummy
pattern = '
1 2;
5 0 3;
5 4'
extrude = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Postprocessors]
[area_reg4]
type = VolumePostprocessor
block = "RGMB_CORE_REG4_TRI"
[]
[area_reg9]
type = VolumePostprocessor
block = "RGMB_CORE_REG9_TRI"
[]
[area_reg12]
type = VolumePostprocessor
block = "RGMB_CORE_REG12_TRI"
[]
[area_reg13]
type = VolumePostprocessor
block = "RGMB_CORE_REG13_TRI"
[]
[area_reg15]
type = VolumePostprocessor
block = "RGMB_CORE_REG15_TRI"
[]
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
(tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_hexagonal_periphery.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Hex"
assembly_pitch = 4.80315
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.58
mesh_intervals = '1 1 1'
region_ids='1 2 3'
quad_center_elements = false
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 2
mesh_intervals = 1
region_ids='4'
quad_center_elements = false
[]
[pin3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.42063
num_sectors = 2
mesh_intervals = '1 1'
ring_radii = 0.3818
region_ids='5 6'
quad_center_elements = false
[]
[assembly1]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin1 pin2 pin3'
pattern = '1 2;
2 0 1;
1 2'
background_intervals = 1
background_region_id = 7
duct_intervals = 1
duct_halfpitch = 2.2
duct_region_ids = 8
[]
[assembly2]
type = AssemblyMeshGenerator
assembly_type = 2
inputs = 'pin2'
pattern = '0 0;
0 0 0;
0 0'
background_intervals = 1
background_region_id = 9
[]
[rgmb_core]
type = CoreMeshGenerator
inputs = 'assembly1 assembly2 empty'
dummy_assembly_name = empty
pattern = '2 1;
1 0 2;
2 1'
extrude = false
mesh_periphery = true
periphery_generator = triangle
periphery_region_id = 100
outer_circle_radius = 8
outer_circle_num_segments = 100
desired_area = 0.5
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
[]
file_base = core_in
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_periphery_ptmg_vol.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Hex"
assembly_pitch = 7.10315
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
background_intervals = 1
inputs = 'pin2'
pattern = '0 0;
0 0 0;
0 0'
background_region_id = 10
[]
[amg2]
type = AssemblyMeshGenerator
assembly_type = 2
background_intervals = 1
inputs = 'pin1 pin3'
pattern = '0 0;
0 1 0;
1 0'
background_region_id = 20
[]
[cmg]
type = CoreMeshGenerator
inputs = 'amg1 amg2 empty'
dummy_assembly_name = empty
pattern = '1 1;
1 0 1;
1 1'
extrude = false
mesh_periphery=true
periphery_generator=triangle
periphery_region_id=30
outer_circle_radius=15
outer_circle_num_segments=100
desired_area = 0.5
periphery_block_name=PERIPHERY_PTMG
[]
[rotate90]
type = TransformGenerator
input = cmg
transform = ROTATE
vector_value = '0 0 90'
[]
[]
[AuxVariables]
[assembly_id]
family = MONOMIAL
order = CONSTANT
[]
[assembly_type_id]
family = MONOMIAL
order = CONSTANT
[]
[pin_id]
family = MONOMIAL
order = CONSTANT
[]
[pin_type_id]
family = MONOMIAL
order = CONSTANT
[]
[region_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[assembly_id]
type = ExtraElementIDAux
variable = assembly_id
extra_id_name = assembly_id
[]
[assembly_type_id]
type = ExtraElementIDAux
variable = assembly_type_id
extra_id_name = assembly_type_id
[]
[pin_id]
type = ExtraElementIDAux
variable = pin_id
extra_id_name = pin_id
[]
[pin_type_id]
type = ExtraElementIDAux
variable = pin_type_id
extra_id_name = pin_type_id
[]
[region_id]
type = ExtraElementIDAux
variable = region_id
extra_id_name = region_id
[]
[]
[Postprocessors]
[periphery_area]
type = VolumePostprocessor
block = PERIPHERY_PTMG_TRI
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
file_base = core_periphery_ptmg_in
[]
(modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_homogenized.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Hex"
assembly_pitch = 7.10315
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
region_ids='1'
quad_center_elements = true
homogenized = true
[]
[]
[Problem]
solve = false
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'region_id pin_type_id'
[]
[]
[Executioner]
type = Steady
[]
(modules/reactor/test/tests/meshgenerators/assembly_mesh_generator/assembly_hex_2d.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Hex"
assembly_pitch = 3.7884
radial_boundary_id = 200
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 1
pitch = 1.3425
num_sectors = 2
ring_radii = '0.4404'
duct_halfpitch = '0.5404'
mesh_intervals = '1 1 1'
quad_center_elements = false
region_ids='1 2 3'
[]
[amg]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin1'
pattern = '0 0;
0 0 0;
0 0;'
background_intervals = 1
background_region_id = 4
duct_halfpitch = 1.7703
duct_intervals = 1
duct_region_ids = 5
extrude = false
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'region_id'
[]
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_square.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Square"
assembly_pitch = 2.84126
radial_boundary_id = 200
axial_regions = '1.0'
axial_mesh_intervals = '1'
top_boundary_id = 201
bottom_boundary_id = 202
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 1
pitch = 1.42063
region_ids='1 2 5'
quad_center_elements = true
num_sectors = 2
ring_radii = 0.2
duct_halfpitch = 0.68
mesh_intervals = '1 1 1'
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
region_ids='2'
quad_center_elements = true
num_sectors = 2
mesh_intervals = '2'
[]
[pin3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.42063
region_ids='3 4'
quad_center_elements = true
num_sectors = 2
ring_radii = 0.3818
mesh_intervals = '1 1'
[]
[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
[]
[translate]
type = TransformGenerator
input = cmg
transform = TRANSLATE
vector_value = '2.130945 -2.130945 0'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'assembly_id assembly_type_id plane_id pin_id pin_type_id region_id'
[]
file_base = core_in
[]
(modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_hex.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Hex"
assembly_pitch = 7.10315
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
region_ids='1 2'
quad_center_elements = false
num_sectors = 2
ring_radii = 0.4665
mesh_intervals = '1 1'
[]
[]
[Problem]
solve = false
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'region_id'
[]
[]
[Executioner]
type = Steady
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_extra_assemblies.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Hex"
assembly_pitch = 7.10315
radial_boundary_id = 200
top_boundary_id = 201
bottom_boundary_id = 202
axial_regions = '1.0 1.0'
axial_mesh_intervals = '1 1'
[]
[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'
quad_center_elements = false
region_ids = '11 12 13; 111 112 113'
block_names = 'P1_R11 P1_R12 P1_R13; P1_R111 P1_R112 P1_R113'
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 2
quad_center_elements = false
mesh_intervals = 1
region_ids = '21; 121'
block_names = 'P2_R21; P2_R121'
[]
[pin3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.42063
num_sectors = 2
ring_radii = '0.3818'
mesh_intervals = '1 1'
quad_center_elements = false
region_ids = '31 32; 131 132'
block_names = 'P3_R31 P3_R32; P3_R131 P3_R132'
[]
[amg1]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin2'
pattern=' 0 0;
0 0 0;
0 0'
background_intervals = 1
background_region_id = '41 141'
background_block_name = 'A1_R41 A1_R141'
[]
[amg2]
type = AssemblyMeshGenerator
assembly_type = 2
inputs = 'pin1 pin3'
pattern = '0 0;
0 1 0;
0 0'
background_region_id = '51 151'
background_block_name = 'A2_R51 A2_R151'
background_intervals = 1
duct_region_ids = '52; 152'
duct_block_names = 'A2_R52; A2_R152'
duct_halfpitch = '3.5'
duct_intervals = '1'
[]
[amg3]
type = AssemblyMeshGenerator
assembly_type = 3
inputs = 'pin1 pin3'
pattern = '0 0;
0 1 0;
0 0'
background_region_id = '51 151'
background_block_name = 'A2_R51 A2_R151'
background_intervals = 1
duct_region_ids = '52; 152'
duct_block_names = 'A2_R52; A2_R152'
duct_halfpitch = '3.5'
duct_intervals = '1'
[]
[cmg]
type = CoreMeshGenerator
inputs = 'amg1 amg2 empty amg3'
dummy_assembly_name = empty
pattern = '2 1;
1 0 2;
2 1'
show_rgmb_metadata = true
extrude = true
[]
[rotate90]
type = TransformGenerator
input = cmg
transform = ROTATE
vector_value = '0 0 90'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'assembly_id assembly_type_id plane_id pin_id pin_type_id region_id'
[]
file_base = core_in
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_periphery_prmg.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Hex"
assembly_pitch = 7.10315
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
background_intervals = 1
inputs = 'pin2'
pattern = '0 0;
0 0 0;
0 0'
background_region_id = 10
[]
[amg2]
type = AssemblyMeshGenerator
assembly_type = 2
background_intervals = 1
inputs = 'pin1 pin3'
pattern = '0 0;
0 1 0;
1 0'
background_region_id = 20
[]
[cmg]
type = CoreMeshGenerator
inputs = 'amg1 amg2 empty'
dummy_assembly_name = empty
pattern = '1 1;
1 0 1;
1 1'
extrude = false
mesh_periphery=true
periphery_generator=quad_ring
periphery_region_id=30
outer_circle_radius=15
periphery_num_layers=3
[]
[rotate90]
type = TransformGenerator
input = cmg
transform = ROTATE
vector_value = '0 0 90'
[]
[]
[AuxVariables]
[assembly_id]
family = MONOMIAL
order = CONSTANT
[]
[assembly_type_id]
family = MONOMIAL
order = CONSTANT
[]
[pin_id]
family = MONOMIAL
order = CONSTANT
[]
[pin_type_id]
family = MONOMIAL
order = CONSTANT
[]
[region_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[assembly_id]
type = ExtraElementIDAux
variable = assembly_id
extra_id_name = assembly_id
[]
[assembly_type_id]
type = ExtraElementIDAux
variable = assembly_type_id
extra_id_name = assembly_type_id
[]
[pin_id]
type = ExtraElementIDAux
variable = pin_id
extra_id_name = pin_id
[]
[pin_type_id]
type = ExtraElementIDAux
variable = pin_type_id
extra_id_name = pin_type_id
[]
[region_id]
type = ExtraElementIDAux
variable = region_id
extra_id_name = region_id
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = Exodus
output_extra_element_ids = false
[]
file_base = core_periphery_prmg_in
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_single_assembly.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Hex"
assembly_pitch = 1.42063
radial_boundary_id = 200
top_boundary_id = 201
bottom_boundary_id = 202
axial_regions = '1.0'
axial_mesh_intervals = '1'
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 1
pitch = 1.42063
region_ids='2'
quad_center_elements = true
use_as_assembly = true
homogenized = true
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
region_ids = '2'
quad_center_elements = false
use_as_assembly = true
homogenized = true
[]
[cmg]
type = CoreMeshGenerator
inputs = 'pin1 pin2 empty'
dummy_assembly_name = empty
pattern = '2 1;
1 0 2;
2 1'
extrude = true
[]
[rotate90]
type = TransformGenerator
input = cmg
transform = ROTATE
vector_value = '0 0 90'
[]
[translate]
type = TransformGenerator
input = rotate90
transform = TRANSLATE
vector_value = '0.710315 -0.710315 0'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'assembly_id assembly_type_id plane_id pin_type_id region_id'
[]
file_base = core_in
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Hex"
assembly_pitch = 7.10315
radial_boundary_id = 200
top_boundary_id = 201
bottom_boundary_id = 202
axial_regions = '1.0 1.0'
axial_mesh_intervals = '1 1'
[]
[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'
quad_center_elements = false
region_ids = '11 12 13; 111 112 113'
block_names = 'P1_R11 P1_R12 P1_R13; P1_R111 P1_R112 P1_R113'
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 2
quad_center_elements = false
mesh_intervals = 1
region_ids = '21; 121'
block_names = 'P2_R21; P2_R121'
[]
[pin3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.42063
num_sectors = 2
ring_radii = '0.3818'
mesh_intervals = '1 1'
quad_center_elements = false
region_ids = '31 32; 131 132'
block_names = 'P3_R31 P3_R32; P3_R131 P3_R132'
[]
[amg1]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin2'
pattern=' 0 0;
0 0 0;
0 0'
background_intervals = 1
background_region_id = '41 141'
background_block_name = 'A1_R41 A1_R141'
[]
[amg2]
type = AssemblyMeshGenerator
assembly_type = 2
inputs = 'pin1 pin3'
pattern = '0 0;
0 1 0;
0 0'
background_region_id = '51 151'
background_block_name = 'A2_R51 A2_R151'
background_intervals = 1
duct_region_ids = '52; 152'
duct_block_names = 'A2_R52; A2_R152'
duct_halfpitch = '3.5'
duct_intervals = '1'
[]
[cmg]
type = CoreMeshGenerator
inputs = 'amg1 amg2 empty'
dummy_assembly_name = empty
pattern = '2 1;
1 0 2;
2 1'
extrude = true
[]
[rotate90]
type = TransformGenerator
input = cmg
transform = ROTATE
vector_value = '0 0 90'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'assembly_id assembly_type_id plane_id pin_id pin_type_id region_id'
[]
file_base = core_in
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_2d.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Hex"
assembly_pitch = 3.7884
radial_boundary_id = 200
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 1
pitch = 1.3425
region_ids = '1 2'
quad_center_elements = false
num_sectors = 2
ring_radii = 0.5404
mesh_intervals = '1 1'
[]
[amg1]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin1'
pattern = '0 0;
0 0 0;
0 0'
background_intervals = 1
background_region_id = 3
duct_halfpitch = 1.7703
duct_intervals = 1
duct_region_ids = 4
[]
[cmg]
type = CoreMeshGenerator
inputs = 'amg1'
dummy_assembly_name = empty
pattern = '0 0;
0 0 0;
0 0'
extrude = false
mesh_periphery = true
periphery_generator = quad_ring
periphery_region_id = 5
outer_circle_radius = 7
periphery_num_layers = 1
desired_area = 5.0
[]
[rotate90]
type = TransformGenerator
input = cmg
transform = ROTATE
vector_value = '0 0 90'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'assembly_id assembly_type_id pin_id pin_type_id region_id'
[]
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_flexible_assembly_stitching_cart.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Square"
assembly_pitch = 20
flexible_assembly_stitching = true
radial_boundary_id = 200
top_boundary_id = 201
bottom_boundary_id = 202
axial_regions = 1.0
axial_mesh_intervals = 1
region_id_as_block_name = true
[]
[het_pin_1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 1
pitch = 1.0
num_sectors = 2
ring_radii = '0.4'
mesh_intervals = '1 1' # Fuel, background
region_ids = '1 2'
quad_center_elements = false
[]
[het_assembly_1]
type = AssemblyMeshGenerator
assembly_type = 1
background_intervals = 1
background_region_id = '3'
inputs = 'het_pin_1'
pattern = '0 0;
0 0'
[]
[het_pin_2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.0
num_sectors = 2
ring_radii = '0.4'
mesh_intervals = '1 1' # Fuel, background
region_ids = '5 6'
quad_center_elements = false
[]
[het_assembly_2]
type = AssemblyMeshGenerator
assembly_type = 2
background_intervals = 1
background_region_id = '7'
inputs = 'het_pin_2'
pattern = '0 0 0;
0 0 0;
0 0 0'
[]
[het_pin_3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.0
num_sectors = 4
ring_radii = '0.4'
mesh_intervals = '1 1' # Fuel, background
region_ids = '9 10'
quad_center_elements = false
[]
[het_assembly_3]
type = AssemblyMeshGenerator
assembly_type = 3
background_intervals = 1
background_region_id = '11'
inputs = 'het_pin_3'
pattern = '0 0;
0 0'
[]
[hom_assembly]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 4
pitch = 20
num_sectors = 2
mesh_intervals = '1'
region_ids = '13'
use_as_assembly = true
quad_center_elements = false
[]
[hom_assembly_single_pin]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 5
pitch = 20
num_sectors = 2
ring_radii = '2'
mesh_intervals = '1 1' # Fuel, background
region_ids = '14 15'
use_as_assembly = true
quad_center_elements = false
[]
[core]
type = CoreMeshGenerator
inputs = 'het_assembly_1 het_assembly_2 het_assembly_3 hom_assembly hom_assembly_single_pin dummy'
dummy_assembly_name = dummy
pattern = '5 1 5;
3 0 2;
5 4 5'
extrude = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Postprocessors]
[area_reg3]
type = VolumePostprocessor
block = "RGMB_CORE_REG3_TRI"
[]
[area_reg7]
type = VolumePostprocessor
block = "RGMB_CORE_REG7_TRI"
[]
[area_reg11]
type = VolumePostprocessor
block = "RGMB_CORE_REG11_TRI"
[]
[area_reg13]
type = VolumePostprocessor
block = "RGMB_CORE_REG13_TRI"
[]
[area_reg15]
type = VolumePostprocessor
block = "RGMB_CORE_REG15_TRI"
[]
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
(tutorials/tutorial04_meshing/app/test/tests/reactor_examples/rgmb_lfr/rgmb_lfr_assembly.i)
[Mesh]
################################# # This parameter allows us to execute the file but stop at this block so we can see intermediate output.
final_generator = abtr_mesh # User: Change this to 'pin1', 'assembly', or 'lfr_assy'
# Note: If `extrude = true` is not specified in PinMeshGenerator, a 2-D mesh is created. To visualize
# the 3-D PinMeshGenerator mesh, `extrude = true` needs to be moved from AssemblyMeshGenerator to
# PinMeshGenerator, as this parameter can be set to true only once in the input file. All subsequent
# lines after the PinMeshGenerator block also need to be commented out.
#################################
# step 1: lfr_pin
# step 2: lfr_assembly
# step 3: lfr_assembly mesh with `material_id` reporting IDs
### Step 0. Define global parameters for Reactor Geometry Mesh Builder workflow
# Note: This step does not produce any mesh
[rmp]
type = ReactorMeshParams
dim = 3 # Dimensionality of output mesh (2 or 3)
geom = "Hex" # Geometry type (Hex or Square)
assembly_pitch = 16.4165 # Size of assembly flat-to-flat pitch
axial_regions = '10.07 30.79 6.56 85.85 1.52
106.07 1.51 12.13 5.05 93.87' # Size of each axial zone
axial_mesh_intervals = '1 3 1 9 1 20 1 2 1 9' # Number of subintervals per axial zone
top_boundary_id = 201 # Boundary id assigned to top surface
bottom_boundary_id = 202 # Boundary id assigned to bottom surface
radial_boundary_id = 200 # Boundary id assigned to radial surface
[]
### Step 1. Define heterogeneous pin regions
# Note: There are 7 pin types, each with varying region ID distribution
[pin1]
type = PinMeshGenerator
reactor_params = rmp # Name of ReactorMeshParams object
pin_type = 1 # Unique identifier for each pin type
pitch = 1.3425 # Pin pitch
num_sectors = 2 # Number of azimuthal sectors per quadrant
mesh_intervals = '1 3 1 1 1' # Number of mesh intervals per radial region
# (4 ring regions followed by background region)
ring_radii = '0.2020 0.4319 0.4495 0.5404' # Radii of each ring region
region_ids='1 1 1 1 1;
2 2 2 2 2;
3 3 3 3 3;
4 4 4 5 6;
8 8 8 9 10;
20 19 20 13 21;
24 24 24 25 26;
28 28 28 29 30;
32 32 32 32 32;
33 33 33 33 33' # Region ID's, assigned radially outwards (4 rings + background) then
# axially from bottom to top
quad_center_elements = false # Whether to discretize central ring region into quad or tri elements
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.3425
num_sectors = 2
mesh_intervals = '1 3 1 1 1'
ring_radii = '0.2020 0.4319 0.4495 0.5404'
region_ids='1 1 1 1 1;
2 2 2 2 2;
3 3 3 3 3;
4 4 4 5 6;
8 8 8 9 10;
20 18 20 13 21;
24 24 24 25 26;
28 28 28 29 30;
32 32 32 32 32;
33 33 33 33 33'
quad_center_elements = false
[]
[pin3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.3425
num_sectors = 2
mesh_intervals = '1 3 1 1 1'
ring_radii = '0.2020 0.4319 0.4495 0.5404'
region_ids='1 1 1 1 1;
2 2 2 2 2;
3 3 3 3 3;
4 4 4 5 6;
8 8 8 9 10;
20 17 20 13 21;
24 24 24 25 26;
28 28 28 29 30;
32 32 32 32 32;
33 33 33 33 33'
quad_center_elements = false
[]
[pin4]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 4
pitch = 1.3425
num_sectors = 2
mesh_intervals = '1 3 1 1 1'
ring_radii = '0.2020 0.4319 0.4495 0.5404'
region_ids='1 1 1 1 1;
2 2 2 2 2;
3 3 3 3 3;
4 4 4 5 6;
8 8 8 9 10;
20 16 20 13 21;
24 24 24 25 26;
28 28 28 29 30;
32 32 32 32 32;
33 33 33 33 33'
quad_center_elements = false
[]
[pin5]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 5
pitch = 1.3425
num_sectors = 2
mesh_intervals = '1 3 1 1 1'
ring_radii = '0.2020 0.4319 0.4495 0.5404'
region_ids='1 1 1 1 1;
2 2 2 2 2;
3 3 3 3 3;
4 4 4 5 6;
8 8 8 9 10;
20 15 20 13 21;
24 24 24 25 26;
28 28 28 29 30;
32 32 32 32 32;
33 33 33 33 33'
quad_center_elements = false
[]
[pin6]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 6
pitch = 1.3425
num_sectors = 2
mesh_intervals = '1 3 1 1 1'
ring_radii = '0.2020 0.4319 0.4495 0.5404'
region_ids='1 1 1 1 1;
2 2 2 2 2;
3 3 3 3 3;
4 4 4 5 6;
8 8 8 9 10;
20 14 20 13 21;
24 24 24 25 26;
28 28 28 29 30;
32 32 32 32 32;
33 33 33 33 33'
quad_center_elements = false
[]
[pin7]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 7
pitch = 1.3425
num_sectors = 2
mesh_intervals = '1 3 1 1 1'
ring_radii = '0.2020 0.4319 0.4495 0.5404'
region_ids='1 1 1 1 1;
2 2 2 2 2;
3 3 3 3 3;
4 4 4 5 6;
8 8 8 9 10;
20 12 20 13 21;
24 24 24 25 26;
28 28 28 29 30;
32 32 32 32 32;
33 33 33 33 33'
quad_center_elements = false
[]
### Step 2. Pattern heterogeneous pins into hexagonal assembly
[assembly]
type = AssemblyMeshGenerator
inputs = 'pin1 pin2 pin3 pin4 pin5 pin6 pin7' # Name of constituent pins
pattern = ' 0 0 0 0 0 0 0;
0 1 1 1 1 1 1 0;
0 1 2 2 2 2 2 1 0;
0 1 2 3 3 3 3 2 1 0;
0 1 2 3 4 4 4 3 2 1 0;
0 1 2 3 4 5 5 4 3 2 1 0;
0 1 2 3 4 5 6 5 4 3 2 1 0;
0 1 2 3 4 5 5 4 3 2 1 0;
0 1 2 3 4 4 4 3 2 1 0;
0 1 2 3 3 3 3 2 1 0;
0 1 2 2 2 2 2 1 0;
0 1 1 1 1 1 1 0;
0 0 0 0 0 0 0' # Lattice pattern of constituent pins
extrude = true # Extrude assembly to 3-D
assembly_type = 1 # Unique identifier for each assembly type
background_region_id = '1 2 3 6 10 21 26 30 32 33' # Region ID's of background region, defined axially from bottom to top
background_intervals = '1' # Number of mesh intervals per background region
duct_halfpitch = '7.6712 8.0245' # Half pitch of each duct region
duct_intervals = '1 1' # Number of mesh intervals per duct region
duct_region_ids = '1 1; 2 2; 3 3; 7 6;
11 10; 22 23; 27 26; 31 30;
32 32; 33 33' # Region ID's of duct region, assigned radially outwards then axially from bottom to top
[]
### Step 3. Copy "region_id" reporting IDs with name "material_id", for use with Griffin reactor physics code
[lfr_assy]
type = ExtraElementIDCopyGenerator
input = assembly
source_extra_element_id = region_id
target_extra_element_ids = 'material_id'
[]
[]
(modules/reactor/test/tests/meshgenerators/assembly_mesh_generator/assembly_square.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Square"
assembly_pitch = 2.84126
axial_regions = '1.0 1.0'
axial_mesh_intervals = '1 1'
top_boundary_id = 201
bottom_boundary_id = 202
[]
[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'
quad_center_elements = false
region_ids='1 2 5; 11 12 15'
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 2
mesh_intervals = '2'
region_ids='3; 13'
[]
[amg]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin1 pin2'
pattern = '0 0;
0 1;'
extrude = true
[]
[translate]
type = TransformGenerator
input = amg
transform = TRANSLATE
vector_value = '0.710315 -0.710315 0'
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'region_id'
[]
[]
(tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_cartesian.i)
[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.58
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
[]
[assembly1]
type = AssemblyMeshGenerator
assembly_type = 2
inputs = 'pin3 pin1 pin2'
pattern = '0 1;
1 2'
[]
[assembly2]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin2'
pattern = '0 0;
0 0'
[]
[rgmb_core]
type = CoreMeshGenerator
inputs = 'assembly1 assembly2'
pattern = '1 0;
0 1'
extrude = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
[]
file_base = core_in
[]
(tutorials/tutorial04_meshing/app/test/tests/reactor_examples/rgmb_abtr/rgmb_abtr.i)
[Mesh]
################################# # This parameter allows us to execute the file but stop at this block so we can see intermediate output.
final_generator = abtr_mesh # User: Change this to 'control', 'core', or 'abtr_mesh'
# Note: If `extrude = true` is not specified in PinMeshGenerator, a 2-D mesh is created. To visualize
# the 3-D PinMeshGenerator mesh, `extrude = true` needs to be moved from CoreMeshGenerator to
# PinMeshGenerator, as this parameter can be set to true only once in the input file. All subsequent
# lines after the PinMeshGenerator block also need to be commented out.
#################################
# step 1: control
# step 2: core
# step 3: abtr_mesh
### Step 0. Define global parameters for Reactor Geometry Mesh Builder workflow
# Note: This step does not produce any mesh
[rmp]
type = ReactorMeshParams
dim = 3 # Dimensionality of output mesh (2 or 3)
geom = "Hex" # Geometry type (Hex or Square)
assembly_pitch = 14.685 # Size of assembly flat-to-flat pitch
axial_regions = '50.24 42.32 17.98 16.88
16.88 16.88 16.89 16.88
19.76 65.66 31.14 30.15' # Size of each axial zone
axial_mesh_intervals = '3 2 1 1 1 1 1 1 1 4 2 2' # Number of subintervals per axial zone
top_boundary_id = 201 # Boundary id assigned to top surface
bottom_boundary_id = 202 # Boundary id assigned to bottom surface
radial_boundary_id = 203 # Boundary id assigned to radial surface
[]
### Step 1. Define homogenized assembly regions
[control]
type = PinMeshGenerator
reactor_params = rmp # Name of ReactorMeshParams object
pin_type = 1 # Unique identifier for each homogenized assembly type
pitch = 14.685 # Assembly pitch
region_ids= '12; 9; 4; 4;
4; 4; 4; 5;
6; 6; 7; 15' # Region ID's, assigned radially outwards then axially from bottom to top
quad_center_elements = true # Discretize homogenized assemblies into 2 quadrilaterals
homogenized = true # Use SimpleHexagonGenerator to define homogenized assemblies
use_as_assembly = true # Treat mesh as assembly for direct stitching into CoreMeshGenerator
[]
[inner_core]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 14.685
region_ids= '12; 9; 9; 1; 1; 1; 1; 1; 13; 14; 14; 15'
quad_center_elements = true
homogenized = true
use_as_assembly = true
[]
[test_fuel]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 14.685
region_ids= '12; 9; 9; 2; 2; 2; 2; 2; 13; 14; 14; 15'
quad_center_elements = true
homogenized = true
use_as_assembly = true
[]
[inner_reflector]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 4
pitch = 14.685
region_ids= '12; 8; 8; 8; 8; 8; 8; 8; 8; 8; 8; 15'
quad_center_elements = true
homogenized = true
use_as_assembly = true
[]
[outer_core]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 5
pitch = 14.685
region_ids= '12; 9; 9; 3; 3; 3; 3; 3; 13; 14; 14; 15'
quad_center_elements = true
homogenized = true
use_as_assembly = true
[]
[outer_reflector]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 6
pitch = 14.685
region_ids= '12; 10; 10; 10; 10; 10; 10; 10; 10; 10; 10; 15'
quad_center_elements = true
homogenized = true
use_as_assembly = true
[]
[shield]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 7
pitch = 14.685
region_ids= '11; 11; 11; 11; 11; 11; 11; 11; 11; 11; 11; 11'
quad_center_elements = true
homogenized = true
use_as_assembly = true
[]
### Step 2. Pattern homogenized assemblies into hexagonal grid with dummy assemblies deleted
[core]
type = CoreMeshGenerator
inputs = 'control inner_core test_fuel inner_reflector
outer_core outer_reflector shield dummy' # Name of constituent assemblies
dummy_assembly_name = dummy # Name of dummy assembly, does not need to be explicitly defined
pattern = ' 7 7 6 6 6 6 6 6 7 7;
7 6 6 5 5 5 5 5 6 6 7;
6 6 5 5 3 3 3 3 5 5 6 6;
6 5 5 3 3 3 3 3 3 3 5 5 6;
6 5 3 3 3 3 4 4 3 3 3 3 5 6;
6 5 3 3 3 4 4 0 4 4 3 3 3 5 6;
6 5 3 3 4 4 2 1 1 3 4 4 3 3 5 6;
6 5 3 3 4 0 1 1 2 1 1 0 4 3 3 5 6;
7 6 5 3 3 4 1 0 1 1 0 1 4 3 3 5 6 7;
7 6 5 3 3 4 3 1 1 0 1 1 2 4 3 3 5 6 7;
7 6 5 3 3 4 1 2 1 1 2 1 4 3 3 5 6 7;
6 5 3 3 4 0 1 1 0 1 1 0 4 3 3 5 6;
6 5 3 3 4 4 2 1 1 3 4 4 3 3 5 6;
6 5 3 3 3 4 4 0 4 4 3 3 3 5 6;
6 5 3 3 3 3 4 4 3 3 3 3 5 6;
6 5 5 3 3 3 3 3 3 3 5 5 6;
6 6 5 5 3 3 3 3 5 5 6 6;
7 6 6 5 5 5 5 5 6 6 7;
7 7 6 6 6 6 6 6 7 7' # Lattice pattern of constituent assemblies
extrude = true # Extrude core to 3-D
[]
### Step 3. Copy "region_id" reporting IDs with name "material_id", for use with Griffin reactor physics code
[abtr_mesh]
type = ExtraElementIDCopyGenerator
input = core
source_extra_element_id = region_id
target_extra_element_ids = 'material_id'
[]
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_datadriven.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Hex"
assembly_pitch = 7.10315
radial_boundary_id = 200
top_boundary_id = 201
bottom_boundary_id = 202
axial_regions = '1.0 1.0'
axial_mesh_intervals = '1 1'
[]
[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'
quad_center_elements = false
region_ids = '11 12 13; 111 112 113'
block_names = 'P1_R11 P1_R12 P1_R13; P1_R111 P1_R112 P1_R113'
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 2
quad_center_elements = false
mesh_intervals = 1
region_ids = '21; 121'
block_names = 'P2_R21; P2_R121'
[]
[pin3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.42063
num_sectors = 2
ring_radii = '0.3818'
mesh_intervals = '1 1'
quad_center_elements = false
region_ids = '31 32; 131 132'
block_names = 'P3_R31 P3_R32; P3_R131 P3_R132'
[]
[amg1]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin2'
pattern=' 0 0;
0 0 0;
0 0'
background_intervals = 1
background_region_id = '41 141'
background_block_name = 'A1_R41 A1_R141'
[]
[amg2]
type = AssemblyMeshGenerator
assembly_type = 2
inputs = 'pin1 pin3'
pattern = '0 0;
0 1 0;
0 0'
background_region_id = '51 151'
background_block_name = 'A2_R51 A2_R151'
background_intervals = 1
duct_region_ids = '52; 152'
duct_block_names = 'A2_R52; A2_R152'
duct_halfpitch = '3.5'
duct_intervals = '1'
[]
[cmg]
type = CoreMeshGenerator
inputs = 'amg1 amg2 empty'
dummy_assembly_name = empty
pattern = '2 1;
1 0 2;
2 1'
extrude = true
[]
[test_rgmb]
type = TestReactorGeometryMeshBuilderMeshGenerator
input = cmg
[]
data_driven_generator = test_rgmb
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Reporters/metadata]
type = MeshMetaDataReporter
[]
[Outputs]
[out]
type = JSON
execute_on = FINAL
execute_system_information_on = none
[]
[]
(tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_hexagonal.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Hex"
assembly_pitch = 4.80315
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.58
mesh_intervals = '1 1 1'
region_ids='1 2 3'
quad_center_elements = false
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 2
mesh_intervals = 1
region_ids='4'
quad_center_elements = false
[]
[pin3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.42063
num_sectors = 2
mesh_intervals = '1 1'
ring_radii = 0.3818
region_ids='5 6'
quad_center_elements = false
[]
[assembly1]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin1 pin2 pin3'
pattern = '1 2;
2 0 1;
1 2'
background_intervals = 1
background_region_id = 7
duct_intervals = 1
duct_halfpitch = 2.2
duct_region_ids = 8
[]
[assembly2]
type = AssemblyMeshGenerator
assembly_type = 2
inputs = 'pin2'
pattern = '0 0;
0 0 0;
0 0'
background_intervals = 1
background_region_id = 9
[]
[rgmb_core]
type = CoreMeshGenerator
inputs = 'assembly1 assembly2 empty'
dummy_assembly_name = empty
pattern = '2 1;
1 0 2;
2 1'
extrude = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
[]
file_base = core_in
[]
(modules/reactor/test/tests/meshgenerators/pin_mesh_generator/single_pin_assembly.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Hex"
assembly_pitch = 7.10315
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 7.10315
region_ids='1'
quad_center_elements = true
homogenized = true
use_as_assembly = true
[]
[]
[Problem]
solve = false
[]
[Outputs]
[out]
type = Exodus
execute_on = timestep_end
output_extra_element_ids = true
extra_element_ids_to_output = 'region_id pin_type_id assembly_type_id'
[]
[]
[Executioner]
type = Steady
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_square_datadriven.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 3
geom = "Square"
assembly_pitch = 2.84126
radial_boundary_id = 200
axial_regions = '1.0'
axial_mesh_intervals = '1'
top_boundary_id = 201
bottom_boundary_id = 202
[]
[pin1]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 1
pitch = 1.42063
region_ids='1 2 5'
quad_center_elements = true
num_sectors = 2
ring_radii = 0.2
duct_halfpitch = 0.68
mesh_intervals = '1 1 1'
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
region_ids='2'
quad_center_elements = true
num_sectors = 2
mesh_intervals = '2'
[]
[pin3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.42063
region_ids='3 4'
quad_center_elements = true
num_sectors = 2
ring_radii = 0.3818
mesh_intervals = '1 1'
[]
[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
[]
[test_rgmb]
type = TestReactorGeometryMeshBuilderMeshGenerator
input = cmg
[]
[transform]
type = TransformGenerator
input = test_rgmb
transform = scale
vector_value = '1 1 1'
[]
data_driven_generator = test_rgmb
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Reporters/metadata]
type = MeshMetaDataReporter
[]
[Outputs]
[out]
type = JSON
execute_on = FINAL
execute_system_information_on = none
[]
[]