- 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
Controllable:No
Description:The dimension of the mesh to be generated
- geomSquareThe geometry type of the reactor mesh
Default:Square
C++ Type:MooseEnum
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, ControlDrumMeshGenerator, 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, ControlDrumMeshGenerator, and CoreMeshGenerator. In order to enable flexible assembly stitching between AssemblyMeshGenerator and ControlDrumMeshGenerator 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<<<{"href": "../../syntax/Mesh/index.html"}>>>]
[rmp]
type = ReactorMeshParams<<<{"description": "This ReactorMeshParams object acts as storage for persistent information about the reactor geometry.", "href": "ReactorMeshParams.html"}>>>
dim<<<{"description": "The dimension of the mesh to be generated"}>>> = 2
geom<<<{"description": "The geometry type of the reactor mesh"}>>> = "Square"
assembly_pitch<<<{"description": "Center to center distance of assemblies"}>>> = 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>
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
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
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
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
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
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
Controllable:No
Description:The boundary ID to set on top boundary of the extruded mesh
Optional Parameters
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
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
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
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
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
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/assembly_mesh_generator/assembly_hex.i)
- (modules/reactor/test/tests/meshgenerators/assembly_mesh_generator/assembly_hex_2d.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_flexible_assembly_stitching_cart.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_hex_datadriven.i)
- (tutorials/tutorial04_meshing/app/test/tests/reactor_examples/rgmb_abtr/rgmb_abtr_het_mesh.i)
- (tutorials/tutorial04_meshing/app/test/tests/reactor_examples/rgmb_empire/rgmb_empire.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_flexible_assembly_stitching_with_drum_cart.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_2d.i)
- (tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_hexagonal_periphery.i)
- (modules/reactor/test/tests/meshgenerators/assembly_mesh_generator/assembly_square.i)
- (tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_hexagonal.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_with_drum_depletion_id.i)
- (modules/reactor/test/tests/meshgenerators/control_drum_mesh_generator/drum_nopad_err.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_square_datadriven.i)
- (modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_homogenized.i)
- (modules/reactor/test/tests/meshgenerators/assembly_mesh_generator/assembly_hex_flexible.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_single_assembly.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex.i)
- (tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_cartesian.i)
- (modules/reactor/test/tests/meshgenerators/pin_mesh_generator/single_pin_assembly.i)
- (modules/reactor/test/tests/meshgenerators/control_drum_mesh_generator/drum_nopad.i)
- (tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_cd.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_periphery_prmg.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_hex_2d_datadriven.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_periphery_ptmg_vol.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_flexible_assembly_stitching_with_drum_hex.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_flexible_assembly_stitching_hex.i)
- (modules/reactor/test/tests/meshgenerators/control_drum_mesh_generator/drum_pad.i)
- (modules/reactor/test/tests/meshgenerators/pin_mesh_generator/pin_square.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core_square.i)
- (modules/reactor/test/tests/meshgenerators/control_drum_mesh_generator/drum_depletion_id.i)
geom
Default:Square
C++ Type:MooseEnum
Options:Square, Hex
Controllable:No
Description:The geometry type of the reactor mesh
dim
Default:2
C++ Type:MooseEnum
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>
Controllable:No
Description:Number of elements in the Z direction for each axial region
region_id_as_block_name
Default:False
C++ Type:bool
Controllable:No
Description:Set block names based on region id
flexible_assembly_stitching
Default:False
C++ Type:bool
Controllable:No
Description:Use FlexiblePatternGenerator for stitching dissimilar assemblies together
num_sectors_at_flexible_boundary
Default:6
C++ Type:unsigned int
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
Options:2, 3
Controllable:No
Description:The dimension of the mesh to be generated
geom
Default:Square
C++ Type:MooseEnum
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>
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/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/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_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'
[]
(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'
extrude = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Reporters]
[metadata]
type = MeshMetaDataReporter
[]
[]
[Outputs]
file_base = core_hex_extra_assemblies_out
[json_out]
type = JSON
execute_on = FINAL
execute_system_information_on = none
[]
[]
(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/reactor_examples/rgmb_abtr/rgmb_abtr_het_mesh.i)
# Advanced Burner Test Reactor - Heterogeneous 3D Core using Reactor Geometry Mesh Builder (RGMB)
# ==============================================================================
# Global Variables
# ==============================================================================
# These global variables control geometrical parameters of the heterogeneous mesh
fuel_pin_pitch = 0.908 # Pin pitch of fuel pin
fuel_clad_r_i = 0.348 # Inner radius of fuel pin cladding
fuel_clad_r_o = 0.40333 # Outer radius of fuel pin cladding
control_pin_pitch = 1.243 # Pin pitch of control pin
control_clad_r_i = 0.485 # Inner radius of control pin cladding
control_clad_r_o = 0.55904 # Outer radius of control pin cladding
control_duct_pitch_inner = 12.198 # Inner pitch of control assembly duct region
control_duct_pitch_outer = 12.798 # Outer pitch of control assembly duct region
duct_pitch_inner = 13.598 # Inner pitch of fuel assembly duct region
duct_pitch_outer = 14.198 # Outer pitch of fuel assembly duct region
assembly_pitch = 14.598 # Assembly pitch
# These global variables control the placement of axial levels in the extruded mesh
z_active_core_lower = 60
z_active_core_upper = 140
z_sodium_gp_upper = 160
z_gp_upper = 260
# These global variables control the size of each axial layer
dz_active_core_lower = '${fparse z_active_core_lower - 0}'
dz_active_core_upper = '${fparse z_active_core_upper - z_active_core_lower}'
dz_sodium_gp_upper = '${fparse z_sodium_gp_upper - z_active_core_upper}'
dz_gp_upper = '${fparse z_gp_upper - z_sodium_gp_upper}'
# These global variables control how many intervals are in each axial layer. Here, a
# maximum axial mesh size of 20cm is assumed for each axial subinterval
max_axial_mesh_size = 20
naxial_active_core_lower = '${fparse ceil(dz_active_core_lower / max_axial_mesh_size)}'
naxial_active_core_upper = '${fparse ceil(dz_active_core_upper / max_axial_mesh_size)}'
naxial_sodium_gp_upper = '${fparse ceil(dz_sodium_gp_upper / max_axial_mesh_size)}'
naxial_gp_upper = '${fparse ceil(dz_gp_upper / max_axial_mesh_size)}'
# These global variables assign a region ID to each region in the core
# RGMB uses these region IDs to assign the `region_id` extra element integer
mid_fuel_1 = 1 # Fuel region of fuel_pin_1
mid_fuel_2 = 2 # Fuel region of fuel_pin_2
mid_fuel_3 = 3 # Fuel region of fuel_pin_3
mid_b4c = 4 # B4C region of control pin
mid_ht9 = 5 # HT-9 steel region of cladding
mid_sodium = 6 # Sodium region of background
mid_rad_refl = 7 # Radial reflector region
mid_rad_shld = 8 # Radial shielding region
mid_lower_refl = 9 # Lower reflector region
mid_upper_na_plen = 10 # Sodium plenum region
mid_upper_gas_plen = 11 # Gas plenum region
mid_control_empty = 12 # Empty region of control assembly
[Mesh]
################################# # This parameter allows us to execute the file but stop at this block so we can see intermediate output.
final_generator = het_core # User: Change this to 'fuel_pin_1', 'fuel_assembly_1', or 'reflector_assembly', or 'het_core'
# Note: If `extrude = true` is not specified in PinMeshGenerator or AssemblyMeshGenerator, a 2-D mesh is
# created. To visualize the intermediate 3-D mesh, `extrude = true` needs to be moved from CoreMeshGenerator to
# the relevant mesh block, as this parameter can be set to true only once in the input file. All subsequent
# lines after the mesh block of interest also need to be commented out.
# step 1: fuel_pin_1 (pin mesh structure to stitch into fuel assemblies)
# step 2: fuel_assembly_1 (assembly mesh structure to define fuel assemblies)
# step 3: reflector_assembly (homogenized assembly mesh structure to stitch into core)
# step 4: het_core (final heterogeneous ABTR core mesh structure)
#################################
### 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 = ${assembly_pitch} # # Size of assembly flat-to-flat pitch
axial_regions = '${dz_active_core_lower}
${dz_active_core_upper}
${dz_sodium_gp_upper}
${dz_gp_upper}' # Size of each axial zone
axial_mesh_intervals = '${naxial_active_core_lower}
${naxial_active_core_upper}
${naxial_sodium_gp_upper}
${naxial_gp_upper}' # 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
flexible_assembly_stitching = true # Set to true to stitch dissimilar assembly types together,
# i.e. homogeneous and heterogeneous assemblies
[]
### Step 1. Define pin mesh structures to stitch into fuel / control assemblies
[fuel_pin_1]
type = PinMeshGenerator
reactor_params = rmp # Name of ReactorMeshParams object
pin_type = 1 # Unique identifier for pin type
pitch = ${fuel_pin_pitch} # Pin pitch
num_sectors = 2 # Number of azimuthal sectors per hexagonal side
quad_center_elements = false # Whether central mesh elements in inner ring should use
# quad elements (true) or tri elements (false)
ring_radii = '${fuel_clad_r_i} ${fuel_clad_r_o}' # Radii for each ring
mesh_intervals = '1 1 1' # Number of radial intervals for each radial region
# (inner ring, outer ring, background)
region_ids = '${mid_lower_refl} ${mid_lower_refl} ${mid_lower_refl};
${mid_fuel_1} ${mid_ht9} ${mid_sodium};
${mid_upper_na_plen} ${mid_upper_na_plen} ${mid_upper_na_plen};
${mid_upper_gas_plen} ${mid_upper_gas_plen} ${mid_upper_gas_plen}' # Region IDs for each radial region (inner ring, outer ring, background),
# provided for each axial layer from bottom to top
[]
[fuel_pin_2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = ${fuel_pin_pitch}
num_sectors = 2
quad_center_elements = false
ring_radii = '${fuel_clad_r_i} ${fuel_clad_r_o}'
mesh_intervals = '1 1 1'
region_ids = '${mid_lower_refl} ${mid_lower_refl} ${mid_lower_refl};
${mid_fuel_2} ${mid_ht9} ${mid_sodium};
${mid_upper_na_plen} ${mid_upper_na_plen} ${mid_upper_na_plen};
${mid_upper_gas_plen} ${mid_upper_gas_plen} ${mid_upper_gas_plen}'
[]
[fuel_pin_3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = ${fuel_pin_pitch}
num_sectors = 2
quad_center_elements = false
ring_radii = '${fuel_clad_r_i} ${fuel_clad_r_o}'
mesh_intervals = '1 1 1'
region_ids = '${mid_lower_refl} ${mid_lower_refl} ${mid_lower_refl};
${mid_fuel_3} ${mid_ht9} ${mid_sodium};
${mid_upper_na_plen} ${mid_upper_na_plen} ${mid_upper_na_plen};
${mid_upper_gas_plen} ${mid_upper_gas_plen} ${mid_upper_gas_plen}'
[]
[control_pin]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 4
pitch = ${control_pin_pitch}
num_sectors = 2
quad_center_elements = false
ring_radii = '${control_clad_r_i} ${control_clad_r_o}'
mesh_intervals = '1 1 1' # Fuel, cladding, background
region_ids = '${mid_control_empty} ${mid_control_empty} ${mid_control_empty};
${mid_control_empty} ${mid_control_empty} ${mid_control_empty};
${mid_b4c} ${mid_ht9} ${mid_sodium};
${mid_b4c} ${mid_ht9} ${mid_sodium}'
[]
### Step 2. Define assembly mesh structures for fuel and control assemblies
[fuel_assembly_1]
type = AssemblyMeshGenerator
assembly_type = 1 # Unique identifier for pin type
background_intervals = 1 # Number of radial intervals in background region
background_region_id = '${mid_lower_refl}
${mid_sodium}
${mid_upper_na_plen}
${mid_upper_gas_plen}' # Region ID corresponding to background region,
# defined for each axial layer from bottom to top
duct_halfpitch = '${fparse duct_pitch_inner / 2}
${fparse duct_pitch_outer / 2}' # Halfpitches for assembly inner and outer duct regions
duct_intervals = '1 1' # Number of radial intervals for each assembly duct region
duct_region_ids = ' ${mid_lower_refl} ${mid_lower_refl};
${mid_ht9} ${mid_sodium};
${mid_upper_na_plen} ${mid_upper_na_plen};
${mid_upper_gas_plen} ${mid_upper_gas_plen}' # Region IDs corresponding to inner and outer duct regions,
# defined for each axial layer from bottom to top
inputs = 'fuel_pin_1' # Name of contituent pin mesh structures
pattern = '0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0' # Lattice pattern of constituent pins
[]
[fuel_assembly_2]
type = AssemblyMeshGenerator
assembly_type = 2
background_intervals = 1
background_region_id = '${mid_lower_refl} ${mid_sodium} ${mid_upper_na_plen} ${mid_upper_gas_plen}'
duct_halfpitch = '${fparse duct_pitch_inner / 2} ${fparse duct_pitch_outer / 2}'
duct_intervals = '1 1'
duct_region_ids = ' ${mid_lower_refl} ${mid_lower_refl};
${mid_ht9} ${mid_sodium};
${mid_upper_na_plen} ${mid_upper_na_plen};
${mid_upper_gas_plen} ${mid_upper_gas_plen}'
inputs = 'fuel_pin_2'
pattern = '0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0'
[]
[fuel_assembly_3]
type = AssemblyMeshGenerator
assembly_type = 3
background_intervals = 1
background_region_id = '${mid_lower_refl} ${mid_sodium} ${mid_upper_na_plen} ${mid_upper_gas_plen}'
duct_halfpitch = '${fparse duct_pitch_inner / 2} ${fparse duct_pitch_outer / 2}'
duct_intervals = '1 1'
duct_region_ids = ' ${mid_lower_refl} ${mid_lower_refl};
${mid_ht9} ${mid_sodium};
${mid_upper_na_plen} ${mid_upper_na_plen};
${mid_upper_gas_plen} ${mid_upper_gas_plen}'
inputs = 'fuel_pin_3'
pattern = '0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0'
[]
[control_assembly]
type = AssemblyMeshGenerator
assembly_type = 4
background_intervals = 1
background_region_id = '${mid_control_empty} ${mid_control_empty} ${mid_sodium} ${mid_sodium}'
duct_halfpitch = '${fparse control_duct_pitch_inner / 2} ${fparse control_duct_pitch_outer / 2}
${fparse duct_pitch_inner / 2} ${fparse duct_pitch_outer / 2}'
duct_intervals = '1 1 1 1'
duct_region_ids = '${mid_control_empty} ${mid_control_empty} ${mid_control_empty} ${mid_control_empty};
${mid_control_empty} ${mid_control_empty} ${mid_control_empty} ${mid_control_empty};
${mid_ht9} ${mid_sodium} ${mid_ht9} ${mid_sodium};
${mid_ht9} ${mid_sodium} ${mid_ht9} ${mid_sodium}'
inputs = 'control_pin'
pattern = '0 0 0 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0'
[]
### Step 3. Define homogenized assembly mesh structures to stitch into core
[reflector_assembly]
type = PinMeshGenerator
reactor_params = rmp # Name of ReactorMeshParams object
pin_type = 5 # Unique identiifier for assembly type
pitch = ${assembly_pitch} # Assembly pitch
homogenized = true # Set to true to define homogenized mesh structure
use_as_assembly = true # Set to true to treat output as assembly mesh structure, for stitching
# directly into core lattice
region_ids = '${mid_rad_refl};
${mid_rad_refl};
${mid_rad_refl};
${mid_rad_refl}'
[]
[shielding_assembly]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 6
pitch = ${assembly_pitch}
homogenized = true
use_as_assembly = true
region_ids = '${mid_rad_shld};
${mid_rad_shld};
${mid_rad_shld};
${mid_rad_shld}' # Background
[]
### Step 4. Define final heterogeneous ABTR core mesh structure with patterned assemblies
[het_core]
type = CoreMeshGenerator
inputs = 'fuel_assembly_1 fuel_assembly_2
fuel_assembly_3 control_assembly
reflector_assembly shielding_assembly
dummy' # Name of constituent assemblies
dummy_assembly_name = 'dummy' # Name of dummy assembly to
# remove from core lattice pattern
pattern = '6 6 5 5 5 5 5 6 6;
6 5 5 4 4 4 4 5 5 6;
5 5 4 4 4 4 4 4 4 5 5;
5 4 4 4 4 1 1 4 4 4 4 5;
5 4 4 4 1 1 3 1 1 4 4 4 5;
5 4 4 1 1 2 0 0 4 1 1 4 4 5;
5 4 4 1 3 0 0 2 0 0 3 1 4 4 5;
6 5 4 4 1 0 3 0 0 3 0 1 4 4 5 6;
6 5 4 4 1 4 0 0 3 0 0 2 1 4 4 5 6;
6 5 4 4 1 0 2 0 0 2 0 1 4 4 5 6;
5 4 4 1 3 0 0 3 0 0 3 1 4 4 5;
5 4 4 1 1 2 0 0 4 1 1 4 4 5;
5 4 4 4 1 1 3 1 1 4 4 4 5;
5 4 4 4 4 1 1 4 4 4 4 5;
5 5 4 4 4 4 4 4 4 5 5;
6 5 5 4 4 4 4 5 5 6;
6 6 5 5 5 5 5 6 6' # Lattice pattern of constituent assemblies
extrude = true # Extrude core to 3-D
[]
[]
(tutorials/tutorial04_meshing/app/test/tests/reactor_examples/rgmb_empire/rgmb_empire.i)
# Empire Reactor - 3D Core Microreactor Core using Reactor Geometry Mesh Builder (RGMB)
# ==============================================================================
# Global Variables
# ==============================================================================
# These global variables assign a region ID to each region in the core
# RGMB uses these region IDs to assign the `region_id` extra element integer
mid_fuel_1 = 1 # Fuel region of fuel_pin_1
mid_fuel_2 = 2 # Fuel region of fuel_pin_2
mid_fuel_3 = 3 # Fuel region of fuel_pin_3
mid_fgap = 4 # Gap region of fuel pins
mid_mgap = 5 # Gap region of moderator pin
mid_moderator = 6 # Moderator region of moderator pin
mid_hpipe = 7 # Heat pipe region of heat pipe pin
mid_ss = 8 # Structural stainless steel region
mid_air = 9 # Air region of air hole assembly
mid_reflector = 10 # Reflector region
mid_drum_pad = 11 # Drum pad region of control drum assembly
[Mesh]
################################# # This parameter allows us to execute the file but stop at this block so we can see intermediate output.
final_generator = empire_mesh # User: Change this to 'fuel_pin_1', 'fuel_assembly_1', or 'airhole_assembly', 'cd_ne', 'core', or 'empire_mesh'
#################################
# step 1: fuel_pin_1 (pin mesh structure to stitch into fuel assemblies)
# step 2: fuel_assembly_1 (assembly mesh structure to define fuel assemblies)
# step 3: airhole_assembly (homogenized assembly mesh structure to stitch into core)
# step 4: cd_ne (control drum structure to stitch into core)
# step 5: core (core mesh structure)
# step 6: empire_mesh (final Empire mesh with "material_id" reporting ID for use in Griffin)
### Step 0. Define global parameters for Reactor Geometry Mesh Builder workflow
# Note: This step does not produce any mesh
[rmp]
type = ReactorMeshParams
dim = 2 # Dimensionality of output mesh (2 or 3)
geom = "Hex" # Geometry type (Hex or Square)
assembly_pitch = 32.353 # Size of assembly flat-to-flat pitch
radial_boundary_id = 203 # Boundary id assigned to radial surface
flexible_assembly_stitching = true # Set to true to stitch dissimilar assembly types together,
# i.e. homogeneous, heterogeneous, and control drum assemblies
region_id_as_block_name = true # Set this to true to assign block name based on the region ID
# of the region. If quad and tri elements share the same region ID
# two separate block names will be created
[]
### Step 1. Define pin mesh structures to stitch into fuel assemblies
[fuel_pin_1]
type = PinMeshGenerator
reactor_params = rmp # Name of ReactorMeshParams object
pin_type = 1 # Unique identifier for pin type
pitch = 2.15 # Pin pitch
num_sectors = 2 # Number of azimuthal sectors per hexagonal side
quad_center_elements = false # Whether central mesh elements in inner ring should use
# quad elements (true) or tri elements (false)
ring_radii = '0.925 0.975' # Radii for each ring
mesh_intervals = '3 1 1' # Number of radial intervals for each radial region
# (inner ring, outer ring, background)
region_ids = '${mid_fuel_1} ${mid_fgap} ${mid_ss}' # Region IDs for each radial region
# (inner ring, outer ring, background)
[]
[fuel_pin_2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 2.15
num_sectors = 2
quad_center_elements = false
ring_radii = '0.925 0.975'
mesh_intervals = '3 1 1' # Fuel, gap, background
region_ids = '${mid_fuel_2} ${mid_fgap} ${mid_ss}'
[]
[fuel_pin_3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 2.15
num_sectors = 2
quad_center_elements = false
ring_radii = '0.925 0.975'
mesh_intervals = '3 1 1' # fuel, gap, background
region_ids = '${mid_fuel_3} ${mid_fgap} ${mid_ss}'
[]
[hpipe_pin]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 6
pitch = 2.15
num_sectors = 2
quad_center_elements = false
ring_radii = '1.0'
mesh_intervals = '3 1' # pin, background
region_ids = '${mid_hpipe} ${mid_ss}'
[]
[mod_pin]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 7
pitch = 2.15
num_sectors = 2
quad_center_elements = false
ring_radii = '0.95 1.0'
mesh_intervals = '3 1 1' # pin, gap, background
region_ids = '${mid_moderator} ${mid_mgap} ${mid_ss}'
[]
### Step 2. Define assembly mesh structures for fuel assemblies
[fuel_assembly_1]
type = AssemblyMeshGenerator
assembly_type = 1 # Unique identifier for pin type
background_intervals = 1 # Number of radial intervals in background region
background_region_id = '${mid_ss}' # Region ID corresponding to background region
inputs = 'fuel_pin_1 hpipe_pin mod_pin' # Name of contituent pin mesh structures
pattern = '1 0 1 0 1 0 1 0 1;
0 2 2 2 2 2 2 2 2 0;
1 2 1 0 1 0 1 0 1 2 1;
0 2 0 2 2 2 2 2 2 0 2 0;
1 2 1 2 1 0 1 0 1 2 1 2 1;
0 2 0 2 0 2 2 2 2 0 2 0 2 0;
1 2 1 2 1 2 1 0 1 2 1 2 1 2 1;
0 2 0 2 0 2 0 2 2 0 2 0 2 0 2 0;
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1;
0 2 0 2 0 2 0 2 2 0 2 0 2 0 2 0;
1 2 1 2 1 2 1 0 1 2 1 2 1 2 1;
0 2 0 2 0 2 2 2 2 0 2 0 2 0;
1 2 1 2 1 0 1 0 1 2 1 2 1;
0 2 0 2 2 2 2 2 2 0 2 0;
1 2 1 0 1 0 1 0 1 2 1;
0 2 2 2 2 2 2 2 2 0;
1 0 1 0 1 0 1 0 1' # Lattice pattern of constituent pins
[]
[fuel_assembly_2]
type = AssemblyMeshGenerator
assembly_type = 2
background_intervals = 1
background_region_id = '${mid_ss}'
inputs = 'fuel_pin_2 hpipe_pin mod_pin'
pattern = '1 0 1 0 1 0 1 0 1;
0 2 2 2 2 2 2 2 2 0;
1 2 1 0 1 0 1 0 1 2 1;
0 2 0 2 2 2 2 2 2 0 2 0;
1 2 1 2 1 0 1 0 1 2 1 2 1;
0 2 0 2 0 2 2 2 2 0 2 0 2 0;
1 2 1 2 1 2 1 0 1 2 1 2 1 2 1;
0 2 0 2 0 2 0 2 2 0 2 0 2 0 2 0;
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1;
0 2 0 2 0 2 0 2 2 0 2 0 2 0 2 0;
1 2 1 2 1 2 1 0 1 2 1 2 1 2 1;
0 2 0 2 0 2 2 2 2 0 2 0 2 0;
1 2 1 2 1 0 1 0 1 2 1 2 1;
0 2 0 2 2 2 2 2 2 0 2 0;
1 2 1 0 1 0 1 0 1 2 1;
0 2 2 2 2 2 2 2 2 0;
1 0 1 0 1 0 1 0 1'
[]
[fuel_assembly_3]
type = AssemblyMeshGenerator
assembly_type = 3
background_intervals = 1
background_region_id = '${mid_ss}'
inputs = 'fuel_pin_3 hpipe_pin mod_pin'
pattern = '1 0 1 0 1 0 1 0 1;
0 2 2 2 2 2 2 2 2 0;
1 2 1 0 1 0 1 0 1 2 1;
0 2 0 2 2 2 2 2 2 0 2 0;
1 2 1 2 1 0 1 0 1 2 1 2 1;
0 2 0 2 0 2 2 2 2 0 2 0 2 0;
1 2 1 2 1 2 1 0 1 2 1 2 1 2 1;
0 2 0 2 0 2 0 2 2 0 2 0 2 0 2 0;
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1;
0 2 0 2 0 2 0 2 2 0 2 0 2 0 2 0;
1 2 1 2 1 2 1 0 1 2 1 2 1 2 1;
0 2 0 2 0 2 2 2 2 0 2 0 2 0;
1 2 1 2 1 0 1 0 1 2 1 2 1;
0 2 0 2 2 2 2 2 2 0 2 0;
1 2 1 0 1 0 1 0 1 2 1;
0 2 2 2 2 2 2 2 2 0;
1 0 1 0 1 0 1 0 1'
[]
### Step 3. Define homogenized assembly mesh structures to stitch into core
[airhole_assembly]
type = PinMeshGenerator
reactor_params = rmp # Name of ReactorMeshParams object
pin_type = 4 # Unique identiifier for assembly type
pitch = 32.353 # Assembly pitch
region_ids = '${mid_air}' # Region ID for homogenized region
homogenized = true # Set to true to define homogenized mesh structure
use_as_assembly = true # Set to true to treat output as assembly mesh structure, for stitching
# directly into core lattice
[]
[refl_assembly]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 5
pitch = 32.353
region_ids = '${mid_reflector}'
homogenized = true
use_as_assembly = true
[]
### Step 4. Define control drum structures to stitch into core
[cd_ne]
type = ControlDrumMeshGenerator
assembly_type = 6 # Unique identifier for assembly type
reactor_params = rmp # Name of ReactorMeshParams object
drum_inner_radius = 13.8 # Inner radius of drum region
drum_outer_radius = 14.8 # Outer radius of drum region
num_azimuthal_sectors = 72 # Number of azimuthal sectors for
drum_inner_intervals = 15 # Number of radial intervals in drum inner region
drum_intervals = 3 # Number of radial intervals in drum region
pad_start_angle = 15 # Starting angle of drum pad region
pad_end_angle = 105 # Ending angle of drum pad region
region_ids = '${mid_reflector} ${mid_drum_pad}
${mid_reflector} ${mid_reflector}' # Region IDs of control drum region
# (drum inner, drum pad, drum ex-pad, background)
[]
[cd_se]
type = ControlDrumMeshGenerator
assembly_type = 7
reactor_params = rmp
drum_inner_radius = 13.8
drum_outer_radius = 14.8
num_azimuthal_sectors = 72
drum_inner_intervals = 15
drum_intervals = 3
pad_start_angle = 75
pad_end_angle = 165
region_ids = '${mid_reflector} ${mid_drum_pad} ${mid_reflector} ${mid_reflector}'
[]
[cd_s]
type = ControlDrumMeshGenerator
assembly_type = 8
reactor_params = rmp
drum_inner_radius = 13.8
drum_outer_radius = 14.8
num_azimuthal_sectors = 72
drum_inner_intervals = 15
drum_intervals = 3
pad_start_angle = 135
pad_end_angle = 225
region_ids = '${mid_reflector} ${mid_drum_pad} ${mid_reflector} ${mid_reflector}'
[]
[cd_sw]
type = ControlDrumMeshGenerator
assembly_type = 9
reactor_params = rmp
drum_inner_radius = 13.8
drum_outer_radius = 14.8
num_azimuthal_sectors = 72
drum_inner_intervals = 15
drum_intervals = 3
pad_start_angle = 195
pad_end_angle = 285
region_ids = '${mid_reflector} ${mid_drum_pad} ${mid_reflector} ${mid_reflector}'
[]
[cd_nw]
type = ControlDrumMeshGenerator
assembly_type = 10
reactor_params = rmp
drum_inner_radius = 13.8
drum_outer_radius = 14.8
num_azimuthal_sectors = 72
drum_inner_intervals = 15
drum_intervals = 3
pad_start_angle = 255
pad_end_angle = 345
region_ids = '${mid_reflector} ${mid_drum_pad} ${mid_reflector} ${mid_reflector}'
[]
[cd_n]
type = ControlDrumMeshGenerator
assembly_type = 11
reactor_params = rmp
drum_inner_radius = 13.8
drum_outer_radius = 14.8
num_azimuthal_sectors = 72
drum_inner_intervals = 15
drum_intervals = 3
pad_start_angle = 315
pad_end_angle = 405
region_ids = '${mid_reflector} ${mid_drum_pad} ${mid_reflector} ${mid_reflector}'
[]
### Step 5. Define Empire core mesh structure
[core]
type = CoreMeshGenerator
inputs = 'fuel_assembly_1 fuel_assembly_2
fuel_assembly_3 airhole_assembly
refl_assembly cd_ne cd_se cd_s cd_sw
cd_nw cd_n' # Name of constituent assemblies
pattern = '4 4 4 4 4;
4 4 10 10 4 4;
4 9 1 2 1 5 4;
4 9 2 0 0 2 5 4;
4 4 1 0 3 0 1 4 4;
4 8 2 0 0 2 6 4;
4 8 1 2 1 6 4;
4 4 7 7 4 4;
4 4 4 4 4' # Lattice pattern of constituent assemblies
# Define depletion IDs for each unique (pin, region_id) pair
generate_depletion_id = true
depletion_id_type = pin
[]
### Step 6. Copy "region_id" reporting IDs with name "material_id", for use with Griffin reactor physics code
[empire_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_flexible_assembly_stitching_with_drum_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]
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]
type = AssemblyMeshGenerator
assembly_type = 1
background_intervals = 1
background_region_id = '3'
inputs = 'het_pin'
pattern = '0 0;
0 0'
[]
[hom_assembly]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 20
num_sectors = 2
mesh_intervals = '1'
region_ids = '4'
use_as_assembly = true
quad_center_elements = false
[]
[drum]
type = ControlDrumMeshGenerator
reactor_params = rmp
assembly_type = 3
drum_inner_radius = 8
drum_outer_radius = 9.1
num_azimuthal_sectors = 36
drum_inner_intervals = 10
drum_intervals = 1
pad_start_angle = 90
pad_end_angle = 180
region_ids = '5 6 7 8'
[]
[core]
type = CoreMeshGenerator
inputs = 'het_assembly hom_assembly drum dummy'
dummy_assembly_name = dummy
pattern = '3 1 3;
2 0 2;
3 1 3'
extrude = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Postprocessors]
[area_reg1]
type = VolumePostprocessor
block = "RGMB_CORE_REG1_TRI"
[]
[area_reg2]
type = VolumePostprocessor
block = "RGMB_CORE_REG2"
[]
[area_reg3]
type = VolumePostprocessor
block = "RGMB_CORE_REG3_TRI"
[]
[area_reg4]
type = VolumePostprocessor
block = "RGMB_CORE_REG4_TRI"
[]
[area_reg5]
type = VolumePostprocessor
block = "RGMB_CORE_REG5 RGMB_CORE_REG5_TRI"
[]
[area_reg6]
type = VolumePostprocessor
block = "RGMB_CORE_REG6"
[]
[area_reg7]
type = VolumePostprocessor
block = "RGMB_CORE_REG7"
[]
[area_reg8]
type = VolumePostprocessor
block = "RGMB_CORE_REG8_TRI"
[]
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
(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'
[]
[]
(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/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_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/core_mesh_generator/core_with_drum_depletion_id.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]
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]
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'
pattern = '0 0;
0 0 0;
0 0'
[]
[hom_assembly]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 20
region_ids = '5'
homogenized = true
use_as_assembly = true
quad_center_elements = false
[]
[drum]
type = ControlDrumMeshGenerator
reactor_params = rmp
assembly_type = 3
drum_inner_radius = 8
drum_outer_radius = 9.1
num_azimuthal_sectors = 36
drum_inner_intervals = 10
drum_intervals = 1
pad_start_angle = 90
pad_end_angle = 180
region_ids = '6 7 8 9'
[]
[core]
type = CoreMeshGenerator
inputs = 'het_assembly hom_assembly drum dummy'
dummy_assembly_name = dummy
pattern = '
1 2;
3 0 3;
2 1'
extrude = true
generate_depletion_id = true
depletion_id_type = pin
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[AuxVariables]
[volume]
family = MONOMIAL
order = CONSTANT
initial_condition = 1.0
[]
[]
[VectorPostprocessors]
[region_volumes]
type = ExtraIDIntegralVectorPostprocessor
variable = volume
id_name = depletion_id
[]
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
(modules/reactor/test/tests/meshgenerators/control_drum_mesh_generator/drum_nopad_err.i)
[Mesh]
[rmp]
type = ReactorMeshParams
geom = "Hex"
assembly_pitch = 20
flexible_assembly_stitching = true
radial_boundary_id = 200
[]
[drum]
type = ControlDrumMeshGenerator
reactor_params = rmp
assembly_type = 1
drum_inner_radius = 8
drum_outer_radius = 9.1
num_azimuthal_sectors = 180
drum_inner_intervals = 10
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Postprocessors]
[area_reg1]
type = VolumePostprocessor
block = "RGMB_DRUM1_REG1 RGMB_DRUM1_REG1_TRI"
[]
[area_reg2]
type = VolumePostprocessor
block = "RGMB_DRUM1_REG2"
[]
[area_reg3]
type = VolumePostprocessor
block = "RGMB_DRUM1_REG3_TRI"
[]
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
(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
[]
[]
(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_flexible.i)
[Mesh]
[rmp]
type = ReactorMeshParams
dim = 2
geom = "Hex"
assembly_pitch = 7.10315
flexible_assembly_stitching = true
region_id_as_block_name = true
[]
[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'
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 2
mesh_intervals = '2'
region_ids='3'
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'
duct_halfpitch = '3.5'
duct_region_ids = '7'
duct_intervals = '1'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[area_reg1]
type = VolumePostprocessor
block = "RGMB_ASSEMBLY1_REG1"
[]
[area_reg2]
type = VolumePostprocessor
block = "RGMB_ASSEMBLY1_REG2"
[]
[area_reg3]
type = VolumePostprocessor
block = "RGMB_ASSEMBLY1_REG3"
[]
[area_reg5]
type = VolumePostprocessor
block = "RGMB_ASSEMBLY1_REG5"
[]
[area_reg6]
type = VolumePostprocessor
block = "RGMB_ASSEMBLY1_REG6"
[]
[area_reg7]
type = VolumePostprocessor
block = "RGMB_ASSEMBLY1_REG7_TRI"
[]
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
(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
[]
(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
[]
(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/control_drum_mesh_generator/drum_nopad.i)
[Mesh]
[rmp]
type = ReactorMeshParams
geom = "Hex"
assembly_pitch = 20
flexible_assembly_stitching = true
radial_boundary_id = 200
region_id_as_block_name = true
[]
[drum]
type = ControlDrumMeshGenerator
reactor_params = rmp
assembly_type = 1
drum_inner_radius = 8
drum_outer_radius = 9.1
num_azimuthal_sectors = 180
drum_inner_intervals = 10
region_ids = '1 2 3'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Postprocessors]
[area_reg1]
type = VolumePostprocessor
block = "RGMB_DRUM1_REG1 RGMB_DRUM1_REG1_TRI"
[]
[area_reg2]
type = VolumePostprocessor
block = "RGMB_DRUM1_REG2"
[]
[area_reg3]
type = VolumePostprocessor
block = "RGMB_DRUM1_REG3_TRI"
[]
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
(tutorials/tutorial04_meshing/app/test/tests/rgmb_mesh_generators/rgmb_core_cd.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
flexible_assembly_stitching = true
[]
[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
[]
[assembly1]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin1'
pattern = '0 0;
0 0 0;
0 0'
background_intervals = 1
background_region_id = 4
duct_intervals = 1
duct_halfpitch = 2.2
duct_region_ids = 5
[]
[drum_nopad]
type = ControlDrumMeshGenerator
reactor_params = rmp
assembly_type = 3
drum_inner_radius = 1.0
drum_outer_radius = 1.5
num_azimuthal_sectors = 36
drum_inner_intervals = 10
region_ids = '6 7 6'
[]
[drum_pad]
type = ControlDrumMeshGenerator
reactor_params = rmp
assembly_type = 4
drum_inner_radius = 1.0
drum_outer_radius = 1.5
num_azimuthal_sectors = 36
drum_inner_intervals = 10
pad_start_angle = 90
pad_end_angle = 180
region_ids = '8 9 10 8'
[]
[rgmb_core]
type = CoreMeshGenerator
inputs = 'assembly1 drum_pad drum_nopad'
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/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_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/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/core_mesh_generator/core_flexible_assembly_stitching_with_drum_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]
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]
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'
pattern = '0 0;
0 0 0;
0 0'
[]
[hom_assembly]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 20
region_ids = '5'
homogenized = true
use_as_assembly = true
quad_center_elements = false
[]
[drum]
type = ControlDrumMeshGenerator
reactor_params = rmp
assembly_type = 3
drum_inner_radius = 8
drum_outer_radius = 9.1
num_azimuthal_sectors = 36
drum_inner_intervals = 10
drum_intervals = 1
pad_start_angle = 90
pad_end_angle = 180
region_ids = '6 7 8 9'
[]
[core]
type = CoreMeshGenerator
inputs = 'het_assembly hom_assembly drum dummy'
dummy_assembly_name = dummy
pattern = '
1 2;
3 0 3;
2 1'
extrude = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Postprocessors]
[area_reg1]
type = VolumePostprocessor
block = "RGMB_CORE_REG1_TRI"
[]
[area_reg2]
type = VolumePostprocessor
block = "RGMB_CORE_REG2"
[]
[area_reg3]
type = VolumePostprocessor
block = "RGMB_CORE_REG3"
[]
[area_reg4]
type = VolumePostprocessor
block = "RGMB_CORE_REG4_TRI"
[]
[area_reg5]
type = VolumePostprocessor
block = "RGMB_CORE_REG5_TRI"
[]
[area_reg6]
type = VolumePostprocessor
block = "RGMB_CORE_REG6 RGMB_CORE_REG6_TRI"
[]
[area_reg7]
type = VolumePostprocessor
block = "RGMB_CORE_REG7"
[]
[area_reg8]
type = VolumePostprocessor
block = "RGMB_CORE_REG8"
[]
[area_reg9]
type = VolumePostprocessor
block = "RGMB_CORE_REG9_TRI"
[]
[]
[Reporters/metadata]
type = MeshMetaDataReporter
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[out]
type = JSON
execute_system_information_on = none
[]
[]
(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'
[]
(modules/reactor/test/tests/meshgenerators/control_drum_mesh_generator/drum_pad.i)
[Mesh]
[rmp]
type = ReactorMeshParams
geom = "Hex"
assembly_pitch = 20
flexible_assembly_stitching = true
radial_boundary_id = 200
region_id_as_block_name = true
[]
[drum]
type = ControlDrumMeshGenerator
reactor_params = rmp
assembly_type = 1
drum_inner_radius = 8
drum_outer_radius = 9.1
num_azimuthal_sectors = 180
drum_inner_intervals = 10
pad_start_angle = 90
pad_end_angle = 180
region_ids = '1 2 3 4'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Postprocessors]
[area_reg1]
type = VolumePostprocessor
block = "RGMB_DRUM1_REG1 RGMB_DRUM1_REG1_TRI"
[]
[area_reg2]
type = VolumePostprocessor
block = "RGMB_DRUM1_REG2"
[]
[area_reg3]
type = VolumePostprocessor
block = "RGMB_DRUM1_REG3"
[]
[area_reg4]
type = VolumePostprocessor
block = "RGMB_DRUM1_REG4_TRI"
[]
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]
(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_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/control_drum_mesh_generator/drum_depletion_id.i)
[Mesh]
[rmp]
type = ReactorMeshParams
geom = "Hex"
assembly_pitch = 20
flexible_assembly_stitching = true
radial_boundary_id = 200
region_id_as_block_name = true
[]
[drum]
type = ControlDrumMeshGenerator
reactor_params = rmp
assembly_type = 1
drum_inner_radius = 8
drum_outer_radius = 9.1
num_azimuthal_sectors = 180
drum_inner_intervals = 10
pad_start_angle = 90
pad_end_angle = 180
region_ids = '1 2 3 4'
generate_depletion_id = true
depletion_id_type = pin_type
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[AuxVariables]
[volume]
family = MONOMIAL
order = CONSTANT
initial_condition = 1.0
[]
[]
[VectorPostprocessors]
[region_volumes]
type = ExtraIDIntegralVectorPostprocessor
variable = volume
id_name = depletion_id
[]
[]
[Outputs]
csv = true
execute_on = 'FINAL'
[]