- extra_id_nameThe extra ID name in the mesh
C++ Type:std::vector<ExtraElementIDName>
Controllable:No
Description:The extra ID name in the mesh
- variableThe name of the variable that this object applies to
C++ Type:AuxVariableName
Controllable:No
Description:The name of the variable that this object applies to
ExtraElementIDAux
Description
This auxiliary kernel copies element integers into an auxiliary variable by setting the variable value on quadrature points of any element with the extra element integer ID of the element. Elements which do not have the extra element ID requested by "extra_id_name" will be evaluated as -1.0 in this auxiliary kernel for better visualization and for consistent handling between 32-bits and 64-bits integer types.
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this boundary condition applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this boundary condition applies
- check_boundary_restrictedTrueWhether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
Default:True
C++ Type:bool
Controllable:No
Description:Whether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
- execute_onLINEAR TIMESTEP_ENDThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, PRE_DISPLACE, ALWAYS.
Default:LINEAR TIMESTEP_END
C++ Type:ExecFlagEnum
Options:NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, PRE_DISPLACE, ALWAYS
Controllable:No
Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, PRE_DISPLACE, ALWAYS.
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
Input Files
- (modules/reactor/test/tests/meshgenerators/reporting_id/depletion_id/depletion_id.i)
- (test/tests/meshgenerators/fancy_extruder_generator/fancy_extruder_with_element_extra_integer_swap.i)
- (modules/reactor/test/tests/functions/multi_control_drum_function/multi_cd_noid.i)
- (test/tests/meshgenerators/file_mesh_generator/exodus_file_mesh_with_id.i)
- (test/tests/vectorpostprocessors/element_id_counters/interface_element_counter.i)
- (test/tests/meshgenerators/plane_id_mesh_generator/plane_id_grid2d.i)
- (modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/assembly_reporting_id.i)
- (modules/reactor/test/tests/meshgenerators/coarse_mesh_extra_element_id_generator/coarse_elem_extra_elem_id.i)
- (modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/core_zigzag_reporting_id.i)
- (modules/reactor/test/tests/meshgenerators/subdomain_extra_element_id_generator/subdomain_elem_ids_test.i)
- (modules/reactor/test/tests/functions/multi_control_drum_function/multi_cd.i)
- (test/tests/auxkernels/extra_element_id_aux/extra_element_integer_aux.i)
- (test/tests/meshgenerators/unique_extra_id_mesh_generator/unique_id.i)
- (modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/assembly_reporting_id.i)
- (modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/core_reporting_id.i)
- (modules/reactor/test/tests/meshgenerators/tri_pin_hex_assemby_generator/tri_pin.i)
- (modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/core_reporting_id.i)
- (modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/core_reporting_id_exclude.i)
- (modules/reactor/test/tests/meshgenerators/coarse_mesh_extra_element_id_generator/coarse_elem_id.i)
- (modules/reactor/test/tests/meshgenerators/patterned_hex_peripheral_modifier/single_hex_pin_id.i)
- (modules/reactor/test/tests/meshgenerators/extra_element_id_copy_generator/copy_elem_id_test.i)
- (modules/reactor/test/tests/meshgenerators/core_mesh_generator/core.i)
- (test/tests/meshgenerators/subdomain_bounding_box_generator/bounding_box_integers.i)
- (modules/reactor/test/tests/meshgenerators/coarse_mesh_extra_element_id_generator/coarse_elem_subdomain_id.i)
- (test/tests/meshgenerators/plane_id_mesh_generator/plane_id_pin3d.i)
extra_id_name
C++ Type:std::vector<ExtraElementIDName>
Controllable:No
Description:The extra ID name in the mesh
(modules/reactor/test/tests/meshgenerators/reporting_id/depletion_id/depletion_id.i)
[Mesh]
[fmg]
type = FileMeshGenerator
file = depletion_id_in.e
exodus_extra_element_integers = 'material_id pin_id assembly_id'
[]
[depl_map]
type = DepletionIDGenerator
input = 'fmg'
id_name = 'assembly_id pin_id'
material_id_name = 'material_id'
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[depletion_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_depletion_id]
type = ExtraElementIDAux
variable = depletion_id
extra_id_name = depletion_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]
(test/tests/meshgenerators/fancy_extruder_generator/fancy_extruder_with_element_extra_integer_swap.i)
[Problem]
solve = false
[]
[Mesh]
[./fg]
type = FileMeshGenerator
file = mesh_2d.e
exodus_extra_element_integers = 'element_extra_integer_1 element_extra_integer_2'
[]
[./extrude]
type = FancyExtruderGenerator
input = fg
heights = '1 2 3'
num_layers = '1 2 3'
direction = '0 0 1'
elem_integer_names_to_swap = 'element_extra_integer_1 element_extra_integer_2'
elem_integers_swaps = '1 4 2 8;
2 7;
1 6;
1 8 2 4;
2 5;
1 6'
[]
[]
[AuxVariables]
[element_extra_integer_1]
family = MONOMIAL
order = CONSTANT
[]
[element_extra_integer_2]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[element_extra_integer_1]
type = ExtraElementIDAux
variable = element_extra_integer_1
extra_id_name = element_extra_integer_1
execute_on = 'initial'
[]
[element_extra_integer_2]
type = ExtraElementIDAux
variable = element_extra_integer_2
extra_id_name = element_extra_integer_2
execute_on = 'initial'
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
execute_on = final
[]
(modules/reactor/test/tests/functions/multi_control_drum_function/multi_cd_noid.i)
[Problem]
solve = false
[]
[Mesh]
[hex_unit]
type = PolygonConcentricCircleMeshGenerator
num_sides = 6 # must be six to use hex pattern
num_sectors_per_side= '2 2 2 2 2 2'
background_intervals=1
polygon_size = 1
ring_radii = '0.9'
ring_intervals = '1'
[]
[patterned]
type = PatternedHexMeshGenerator
inputs = 'hex_unit'
pattern_boundary = hexagon
background_intervals = 1
hexagon_size = 3.5
pattern = '0 0;
0 0 0;
0 0'
[]
[cd_1]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '4'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[cd_2]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '5'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[cd_3]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '0'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[cd_4]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '1'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[cd_5]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '2'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[cd_6]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '3'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[core]
type = PatternedHexMeshGenerator
inputs = 'patterned cd_1 cd_2 cd_3 cd_4 cd_5 cd_6'
# 0 1 2 3 4 5 6
pattern_boundary = none
generate_core_metadata = true
generate_control_drum_positions_file = true
pattern = '1 6;
2 0 5;
3 4'
[]
[]
[AuxVariables]
[cd_param]
family = MONOMIAL
order = CONSTANT
block = 5002
[]
[cd_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[cd_param_assign]
type = FunctionAux
variable = cd_param
function = cd_param_func
execute_on = 'initial linear timestep_end'
[]
[set_cd_id]
type = ExtraElementIDAux
variable = cd_id
extra_id_name = control_drum_id
execute_on = 'initial timestep_end'
[]
[]
[Functions]
[cd_param_func]
type = MultiControlDrumFunction
mesh_generator = core
use_control_drum_id = false
angular_speeds = '5 10 15 20 25 30'
start_angles = '0 0 0 0 0 0'
angle_ranges = '90 90 90 90 90 90'
[]
[]
[Executioner]
type = Transient
dt = 1
num_steps = 5
[]
[Outputs]
[nocdid]
type = Exodus
[]
[]
(test/tests/meshgenerators/file_mesh_generator/exodus_file_mesh_with_id.i)
[Mesh]
[material_id_mesh]
type = FileMeshGenerator
file = mesh_with_material_id.e
exodus_extra_element_integers = material_id
[]
[]
[AuxVariables]
[material_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_material_id]
type = ExtraElementIDAux
variable = material_id
extra_id_name = material_id
[]
[]
[Problem]
kernel_coverage_check = false
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(test/tests/vectorpostprocessors/element_id_counters/interface_element_counter.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 1
ymax = 1
extra_element_integers = foo_id
[]
[id0]
type = SubdomainBoundingBoxGenerator
input = gmg
bottom_left = '0 0 0'
block_id = 0
top_right = '1 1 0'
integer_name = foo_id
[]
[id1]
type = SubdomainBoundingBoxGenerator
input = id0
bottom_left = '0.4 0.4 0'
block_id = 1
top_right = '0.9 0.9 0'
integer_name = foo_id
[]
[id2]
type = SubdomainBoundingBoxGenerator
input = id1
bottom_left = '0.1 0.1 0'
block_id = 2
top_right = '0.6 0.6 0'
integer_name = foo_id
[]
[subdomain]
type = SubdomainBoundingBoxGenerator
input = id2
bottom_left = '0 0.6 0'
block_id = 1
top_right = '1 1 0'
[]
[side0to1]
type = SideSetsBetweenSubdomainsGenerator
input = subdomain
primary_block = 0
paired_block = 1
new_boundary = side0to1
[]
[]
[AuxVariables]
[foo_id_var]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[foo_id]
type = ExtraElementIDAux
variable = foo_id_var
extra_id_name = foo_id
[]
[]
[VectorPostprocessors]
[elem_counter]
type = InterfaceElementCounterWithID
boundary = side0to1
id_name = foo_id
[]
[]
[Problem]
kernel_coverage_check = false
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
csv = true
execute_on = 'timestep_end'
[]
(test/tests/meshgenerators/plane_id_mesh_generator/plane_id_grid2d.i)
[Mesh]
[grid]
type = CartesianMeshGenerator
dim = 2
dx = '5.0 10.0 '
ix = '1 4'
dy = '5.0 10.0 '
iy = '1 4'
[]
[plane_id_gen]
type = PlaneIDMeshGenerator
input = 'grid'
plane_coordinates = '0.0 5.0 15.0'
num_ids_per_plane = ' 1 2'
plane_axis = 'x'
id_name = 'plane_id'
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[plane_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_plane_id]
type = ExtraElementIDAux
variable = plane_id
extra_id_name = plane_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]
(modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/assembly_reporting_id.i)
[Mesh]
[pin1]
type = PolygonConcentricCircleMeshGenerator
preserve_volumes = true
ring_radii = 0.4
ring_intervals = 1
background_intervals = 1
num_sides = 6
num_sectors_per_side = '2 2 2 2 2 2'
polygon_size = 0.5
[]
[pin2]
type = PolygonConcentricCircleMeshGenerator
preserve_volumes = true
ring_radii = 0.4
ring_intervals = 1
background_intervals = 1
num_sides = 6
num_sectors_per_side = '2 2 2 2 2 2'
polygon_size = 0.5
[]
[assembly]
type = HexIDPatternedMeshGenerator
inputs = 'pin1 pin2'
pattern_boundary = hexagon
pattern = ' 1 0 1;
0 0 0 0;
1 0 1 0 1;
0 0 0 0;
1 0 1'
hexagon_size = 2.6
duct_sizes = '2.4 2.5'
duct_intervals = '1 1'
assign_type = 'cell'
id_name = 'pin_id'
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[pin_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_pin_id]
type = ExtraElementIDAux
variable = pin_id
extra_id_name = pin_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]
(modules/reactor/test/tests/meshgenerators/coarse_mesh_extra_element_id_generator/coarse_elem_extra_elem_id.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 8
ymin = 0
ymax = 8
nx = 8
ny = 8
[]
[coarse_mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 8
ymin = 0
ymax = 8
nx = 3
ny = 3
subdomain_ids = '0 1 2
3 3 3
4 4 4'
[]
[add_id]
type = SubdomainExtraElementIDGenerator
input = coarse_mesh
subdomains = '0 1 2 3 4'
extra_element_id_names = 'test_id'
extra_element_ids = '4 3 2 1 0'
[]
[coarse_id]
type = CoarseMeshExtraElementIDGenerator
input = gmg
coarse_mesh = add_id
extra_element_id_name = coarse_elem_id
coarse_mesh_extra_element_id = test_id
enforce_mesh_embedding = false
[]
[]
[Problem]
kernel_coverage_check = false
solve = false
[]
[AuxVariables]
[coarse_elem_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[coarse_elem_id]
type = ExtraElementIDAux
variable = coarse_elem_id
extra_id_name = coarse_elem_id
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/core_zigzag_reporting_id.i)
[Mesh]
[pin1]
type = ConcentricCircleMeshGenerator
num_sectors = 2
radii = '0.4 0.5'
rings = '1 1 1'
has_outer_square = on
pitch = 1.26
preserve_volumes = yes
smoothing_max_it = 3
[]
[pin2]
type = ConcentricCircleMeshGenerator
num_sectors = 2
radii = '0.3 0.4'
rings = '1 1 1'
has_outer_square = on
pitch = 1.26
preserve_volumes = yes
smoothing_max_it = 3
[]
[pin_dummy]
type = RenameBlockGenerator
input = 'pin1'
old_block = '1 2 3'
new_block = '9999 9999 9999'
[]
[assembly1]
type = CartesianIDPatternedMeshGenerator
inputs = 'pin1 pin2'
pattern = ' 1 0 1 0;
0 1 0 1;
1 0 1 0;
0 1 0 1'
assign_type = 'cell'
id_name = 'pin_id'
[]
[assembly2]
type = CartesianIDPatternedMeshGenerator
inputs = 'pin1 pin2'
pattern = ' 0 1 1 0;
1 0 0 1;
1 0 0 1;
0 1 1 0'
assign_type = 'cell'
id_name = 'pin_id'
[]
[assembly_dummy]
type = CartesianIDPatternedMeshGenerator
inputs = 'pin_dummy'
pattern = ' 0 0 0 0;
0 0 0 0;
0 0 0 0;
0 0 0 0'
assign_type = 'cell'
id_name = 'pin_id'
[]
[core_base]
type = CartesianIDPatternedMeshGenerator
inputs = 'assembly1 assembly2 assembly_dummy'
pattern = '0 1;
2 0'
assign_type = 'cell'
id_name = 'assembly_id'
exclude_id = 'assembly_dummy'
[]
[core]
type = BlockDeletionGenerator
input = 'core_base'
block = 9999 # dummy
new_boundary = 'zagged'
[]
final_generator = core
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[pin_id]
family = MONOMIAL
order = CONSTANT
[]
[assembly_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_pin_id]
type = ExtraElementIDAux
variable = pin_id
extra_id_name = pin_id
[]
[set_assembly_id]
type = ExtraElementIDAux
variable = assembly_id
extra_id_name = assembly_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]
(modules/reactor/test/tests/meshgenerators/subdomain_extra_element_id_generator/subdomain_elem_ids_test.i)
[Mesh]
[gmg]
type = CartesianMeshGenerator
dim = 2
dx = 1
ix = 10
dy = '0.2 0.2 0.2 0.2 0.2'
iy = '2 2 2 2 2'
subdomain_id = '0 1 2 3 4'
[]
[give_subdomain_name]
type = RenameBlockGenerator
input = gmg
old_block = '1 3'
new_block = 'sub1 sub3'
[]
[subdomain_ids]
type = SubdomainExtraElementIDGenerator
input = give_subdomain_name
subdomains = '0 sub1 2 sub3'
extra_element_id_names = 'test_id1 test_id2 test_id3'
extra_element_ids = '
1 3 5 4;
2 9 10 11;
0 8 1 2
'
default_extra_element_ids = '-1 0 0'
[]
[]
[Problem]
kernel_coverage_check = false
solve = false
[]
[AuxVariables]
[test_id1]
family = MONOMIAL
order = CONSTANT
[]
[test_id2]
family = MONOMIAL
order = CONSTANT
[]
[test_id3]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[test_id1]
type = ExtraElementIDAux
variable = test_id1
extra_id_name = test_id1
[]
[test_id2]
type = ExtraElementIDAux
variable = test_id2
extra_id_name = test_id2
[]
[test_id3]
type = ExtraElementIDAux
variable = test_id3
extra_id_name = test_id3
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(modules/reactor/test/tests/functions/multi_control_drum_function/multi_cd.i)
[Problem]
solve = false
[]
[Mesh]
[hex_unit]
type = PolygonConcentricCircleMeshGenerator
num_sides = 6 # must be six to use hex pattern
num_sectors_per_side= '2 2 2 2 2 2'
background_intervals=1
polygon_size = 1
ring_radii = '0.9'
ring_intervals = '1'
[]
[patterned]
type = PatternedHexMeshGenerator
inputs = 'hex_unit'
pattern_boundary = hexagon
background_intervals = 1
hexagon_size = 3.5
pattern = '0 0;
0 0 0;
0 0'
[]
[cd_1]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '4'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[cd_2]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '5'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[cd_3]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '0'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[cd_4]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '1'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[cd_5]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '2'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[cd_6]
type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
inputs = 'patterned'
sides_to_adapt = '3'
num_sectors_per_side= '2 2 2 2 2 2'
hexagon_size = 3.5
background_intervals= 1
ring_radii = '2 3'
ring_intervals = '1 1'
block_id_shift = 5000
is_control_drum = true
[]
[core]
type = PatternedHexMeshGenerator
inputs = 'patterned cd_1 cd_2 cd_3 cd_4 cd_5 cd_6'
# 0 1 2 3 4 5 6
pattern_boundary = none
generate_core_metadata = true
generate_control_drum_positions_file = true
pattern = '1 6;
2 0 5;
3 4'
[]
[]
[AuxVariables]
[cd_param]
family = MONOMIAL
order = CONSTANT
block = 5002
[]
[cd_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[cd_param_assign]
type = FunctionAux
variable = cd_param
function = cd_param_func
execute_on = 'initial linear timestep_end'
[]
[set_cd_id]
type = ExtraElementIDAux
variable = cd_id
extra_id_name = control_drum_id
execute_on = 'initial timestep_end'
[]
[]
[Functions]
[cd_param_func]
type = MultiControlDrumFunction
mesh_generator = core
angular_speeds = '2 4 8 16 64 128'
start_angles = '0 0 0 0 0 0'
angle_ranges = '90 90 90 90 90 90'
[]
[]
[Executioner]
type = Transient
dt = 1
num_steps = 5
[]
[Outputs]
[default]
type = Exodus
[]
[]
(test/tests/auxkernels/extra_element_id_aux/extra_element_integer_aux.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 1
ymax = 1
extra_element_integers = test_id
[]
[subdomains]
type = SubdomainBoundingBoxGenerator
input = gmg
bottom_left = '0.1 0.1 0'
block_id = 1
top_right = '0.9 0.9 0'
integer_name = test_id
[]
[another_subdomains]
type = SubdomainBoundingBoxGenerator
input = subdomains
bottom_left = '0.9 0.9 0'
block_id = 2
top_right = '1 1 0'
integer_name = test_id
[]
[]
[Problem]
kernel_coverage_check = false
solve = false
[]
[AuxVariables]
[test_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[test_id]
type = ExtraElementIDAux
variable = test_id
extra_id_name = test_id
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/unique_extra_id_mesh_generator/unique_id.i)
[Mesh]
[fmg]
type = FileMeshGenerator
file = unique_id.e
exodus_extra_element_integers = 'id1 id0'
[]
[parse_id]
type = UniqueExtraIDMeshGenerator
input = fmg
id_name = 'id1 id0'
new_id_name = 'parsed_id'
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[parsed_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[aux_parsed_id]
type = ExtraElementIDAux
variable = parsed_id
extra_id_name = parsed_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]
(modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/assembly_reporting_id.i)
[Mesh]
[pin1]
type = ConcentricCircleMeshGenerator
num_sectors = 2
radii = '0.4 0.5'
rings = '1 1 1'
has_outer_square = on
pitch = 1.26
preserve_volumes = yes
smoothing_max_it = 3
[]
[pin2]
type = ConcentricCircleMeshGenerator
num_sectors = 2
radii = '0.3 0.4'
rings = '1 1 1'
has_outer_square = on
pitch = 1.26
preserve_volumes = yes
smoothing_max_it = 3
[]
[assembly]
type = CartesianIDPatternedMeshGenerator
inputs = 'pin1 pin2'
pattern = ' 1 0 1 0;
0 1 0 1;
1 0 1 0;
0 1 0 1'
assign_type = 'cell'
id_name = 'pin_id'
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[pin_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_pin_id]
type = ExtraElementIDAux
variable = pin_id
extra_id_name = pin_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]
(modules/reactor/test/tests/meshgenerators/reporting_id/cartesian_id/core_reporting_id.i)
[Mesh]
[pin1]
type = ConcentricCircleMeshGenerator
num_sectors = 2
radii = '0.4 0.5'
rings = '1 1 1'
has_outer_square = on
pitch = 1.26
preserve_volumes = yes
smoothing_max_it = 3
[]
[pin2]
type = ConcentricCircleMeshGenerator
num_sectors = 2
radii = '0.3 0.4'
rings = '1 1 1'
has_outer_square = on
pitch = 1.26
preserve_volumes = yes
smoothing_max_it = 3
[]
[assembly1]
type = CartesianIDPatternedMeshGenerator
inputs = 'pin1 pin2'
pattern = ' 1 0 1 0;
0 1 0 1;
1 0 1 0;
0 1 0 1'
assign_type = 'cell'
id_name = 'pin_id'
[]
[assembly2]
type = CartesianIDPatternedMeshGenerator
inputs = 'pin1 pin2'
pattern = ' 0 1 1 0;
1 0 0 1;
1 0 0 1;
0 1 1 0'
assign_type = 'cell'
id_name = 'pin_id'
[]
[core]
type = CartesianIDPatternedMeshGenerator
inputs = 'assembly1 assembly2'
pattern = '0 1;
1 0'
assign_type = 'cell'
id_name = 'assembly_id'
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[pin_id]
family = MONOMIAL
order = CONSTANT
[]
[assembly_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_pin_id]
type = ExtraElementIDAux
variable = pin_id
extra_id_name = pin_id
[]
[set_assembly_id]
type = ExtraElementIDAux
variable = assembly_id
extra_id_name = assembly_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]
(modules/reactor/test/tests/meshgenerators/tri_pin_hex_assemby_generator/tri_pin.i)
[Mesh]
[assm_up]
type = TriPinHexAssemblyGenerator
ring_radii = '7 8;5 6; '
ring_intervals = '2 1;1 1; '
ring_block_ids = '200 400 600;700 800; '
background_block_ids = '30 40'
num_sectors_per_side = 6
background_intervals = 2
hexagon_size = ${fparse 40.0/sqrt(3.0)}
ring_offset = 0.6
external_boundary_id = 200
external_boundary_name = 'surface'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[AuxVariables]
[pin_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_pin_id]
type = ExtraElementIDAux
variable = pin_id
extra_id_name = pin_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]
(modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/core_reporting_id.i)
[Mesh]
[pin1]
type = PolygonConcentricCircleMeshGenerator
preserve_volumes = true
ring_radii = 0.4
ring_intervals = 1
background_intervals = 1
num_sides = 6
num_sectors_per_side = '2 2 2 2 2 2'
polygon_size = 0.5
[]
[pin2]
type = PolygonConcentricCircleMeshGenerator
preserve_volumes = true
ring_radii = 0.4
ring_intervals = 1
background_intervals = 1
num_sides = 6
num_sectors_per_side = '2 2 2 2 2 2'
polygon_size = 0.5
[]
[assembly1]
type = HexIDPatternedMeshGenerator
inputs = 'pin1 pin2'
pattern_boundary = hexagon
pattern = ' 1 0 1;
0 0 0 0;
1 0 1 0 1;
0 0 0 0;
1 0 1'
hexagon_size = 2.6
duct_sizes = '2.4 2.5'
duct_intervals = '1 1'
id_name = 'pin_id'
assign_type = 'cell'
[]
[assembly2]
type = HexIDPatternedMeshGenerator
inputs = 'pin1 pin2'
pattern_boundary = hexagon
pattern = ' 0 0 0;
0 1 1 0;
0 1 0 1 0;
0 1 1 0;
0 0 0'
hexagon_size = 2.6
duct_sizes = '2.4 2.5'
duct_intervals = '1 1'
id_name = 'pin_id'
assign_type = 'cell'
[]
[core]
type = HexIDPatternedMeshGenerator
inputs = 'assembly1 assembly2'
pattern_boundary = none
pattern = '1 1;
1 0 1;
1 1'
generate_core_metadata = true
id_name = 'assembly_id'
assign_type = 'cell'
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[pin_id]
family = MONOMIAL
order = CONSTANT
[]
[assembly_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_pin_id]
type = ExtraElementIDAux
variable = pin_id
extra_id_name = pin_id
[]
[set_assembly_id]
type = ExtraElementIDAux
variable = assembly_id
extra_id_name = assembly_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]
(modules/reactor/test/tests/meshgenerators/reporting_id/hexagonal_id/core_reporting_id_exclude.i)
[Mesh]
[assembly]
type = SimpleHexagonGenerator
hexagon_size = 5.0
hexagon_size_style = 'apothem'
block_id = '1'
[]
[dummy]
type = SimpleHexagonGenerator
hexagon_size = 5.0
hexagon_size_style = 'apothem'
block_id = '2'
[]
[core]
type = HexIDPatternedMeshGenerator
inputs = 'assembly dummy'
pattern_boundary = none
pattern = ' 1 0 1;
0 0 0 0;
1 0 0 0 1;
0 0 0 0;
1 0 1'
assign_type = 'cell'
id_name = 'assembly_id'
exclude_id = 'dummy'
[]
[del_dummy]
type = BlockDeletionGenerator
block = 2
input = core
new_boundary = core_out
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[assembly_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_assembly_id]
type = ExtraElementIDAux
variable = assembly_id
extra_id_name = assembly_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]
(modules/reactor/test/tests/meshgenerators/coarse_mesh_extra_element_id_generator/coarse_elem_id.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 8
ymin = 0
ymax = 8
nx = 8
ny = 8
[]
[coarse_mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 8
ymin = 0
ymax = 8
nx = 3
ny = 3
[]
[coarse_id]
type = CoarseMeshExtraElementIDGenerator
input = gmg
coarse_mesh = coarse_mesh
extra_element_id_name = coarse_elem_id
enforce_mesh_embedding = false
[]
# need this to ensure consistent numbering of the coarse mesh when using a distributed mesh
allow_renumbering = false
[]
[Problem]
kernel_coverage_check = false
solve = false
[]
[AuxVariables]
[coarse_elem_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[coarse_elem_id]
type = ExtraElementIDAux
variable = coarse_elem_id
extra_id_name = coarse_elem_id
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(modules/reactor/test/tests/meshgenerators/patterned_hex_peripheral_modifier/single_hex_pin_id.i)
[Mesh]
[hex]
type = PolygonConcentricCircleMeshGenerator
num_sides = 6
num_sectors_per_side = '2 2 2 2 2 2'
background_intervals = 1
ring_radii = 4.0
ring_intervals = 2
ring_block_ids = '10 15'
ring_block_names = 'center_tri center'
background_block_ids = 20
background_block_names = background
polygon_size = 5.0
preserve_volumes = on
[]
[pattern]
type = HexIDPatternedMeshGenerator
inputs = 'hex'
pattern = '0 0;
0 0 0;
0 0'
background_intervals = 2
hexagon_size = 17
assign_type = 'cell'
id_name = 'pin_id'
[]
[pmg]
type = PatternedHexPeripheralModifier
input = pattern
input_mesh_external_boundary = 10000
new_num_sector = 10
num_layers = 2
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[pin_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_pin_id]
type = ExtraElementIDAux
variable = pin_id
extra_id_name = pin_id
[]
[]
[Outputs]
[exodus_1]
type = Exodus
enable = false
execute_on = TIMESTEP_END
[]
[exodus_2]
type = Exodus
enable = false
execute_on = TIMESTEP_END
[]
[]
(modules/reactor/test/tests/meshgenerators/extra_element_id_copy_generator/copy_elem_id_test.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 1
ymax = 1
extra_element_integers = test_id
subdomain_ids = '0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 2 0 0 0 0 0 0 0
0 0 0 3 0 0 0 0 0 0
0 0 0 0 4 0 0 0 0 0
0 0 0 0 0 5 0 0 0 0
0 0 0 0 0 0 6 0 0 0
0 0 0 0 0 0 0 7 0 0
0 0 0 0 0 0 0 0 8 0
0 0 0 0 0 0 0 0 0 9'
[]
[subdomains]
type = SubdomainBoundingBoxGenerator
input = gmg
bottom_left = '0 0 0'
block_id = 1
top_right = '0.9 0.9 0'
integer_name = test_id
[]
[another_subdomains]
type = SubdomainBoundingBoxGenerator
input = subdomains
bottom_left = '0 0 0'
block_id = 2
top_right = '0.9 0.9 0'
location = OUTSIDE
integer_name = test_id
[]
[copy_test_id]
type = ExtraElementIDCopyGenerator
input = another_subdomains
source_extra_element_id = test_id
target_extra_element_ids = 'test_id1 test_id2'
[]
[copy_test_id1]
type = ExtraElementIDCopyGenerator
input = copy_test_id
source_extra_element_id = subdomain_id
target_extra_element_ids = 'test_id3'
[]
[copy_test_id2]
type = ExtraElementIDCopyGenerator
input = copy_test_id1
source_extra_element_id = element_id
target_extra_element_ids = 'test_id4'
[]
# element id could be renumbered with distributed mesh
# causing exodiff on test_id4 variable, thus we turn off
# this flag, normal calculations are fine with element IDs
# being renumbered.
allow_renumbering = false
[]
[Problem]
kernel_coverage_check = false
solve = false
[]
[AuxVariables]
[test_id]
family = MONOMIAL
order = CONSTANT
[]
[test_id1]
family = MONOMIAL
order = CONSTANT
[]
[test_id2]
family = MONOMIAL
order = CONSTANT
[]
[test_id3]
family = MONOMIAL
order = CONSTANT
[]
[test_id4]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[test_id]
type = ExtraElementIDAux
variable = test_id
extra_id_name = test_id
[]
[test_id1]
type = ExtraElementIDAux
variable = test_id1
extra_id_name = test_id1
[]
[test_id2]
type = ExtraElementIDAux
variable = test_id2
extra_id_name = test_id2
[]
[test_id3]
type = ExtraElementIDAux
variable = test_id3
extra_id_name = test_id3
[]
[test_id4]
type = ExtraElementIDAux
variable = test_id4
extra_id_name = test_id4
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(modules/reactor/test/tests/meshgenerators/core_mesh_generator/core.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.68'
mesh_intervals = '1 1 1'
region_ids='1 2 5'
quad_center_elements = true
[]
[pin2]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 2
pitch = 1.42063
num_sectors = 2
mesh_intervals = '2'
region_ids='2'
quad_center_elements = true
[]
[pin3]
type = PinMeshGenerator
reactor_params = rmp
pin_type = 3
pitch = 1.42063
num_sectors = 2
ring_radii = '0.3818'
mesh_intervals = '1 1'
region_ids='3 4'
quad_center_elements = true
[]
[amg1]
type = AssemblyMeshGenerator
assembly_type = 1
inputs = 'pin2'
pattern = '0 0;
0 0'
[]
[amg2]
type = AssemblyMeshGenerator
assembly_type = 2
inputs = 'pin3 pin1 pin2'
pattern = '0 1;
1 2'
[]
[cmg]
type = CoreMeshGenerator
inputs = 'amg2 amg1 empty'
dummy_assembly_name = empty
pattern = '1 0;
0 1'
extrude = true
[]
[]
[AuxVariables]
[assembly_id]
family = MONOMIAL
order = CONSTANT
[]
[assembly_type_id]
family = MONOMIAL
order = CONSTANT
[]
[plane_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
[]
[plane_id]
type = ExtraElementIDAux
variable = plane_id
extra_id_name = plane_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]
exodus = true
file_base = core_in
[]
(test/tests/meshgenerators/subdomain_bounding_box_generator/bounding_box_integers.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 1
ymax = 1
extra_element_integers = test_id
[]
[subdomains]
type = SubdomainBoundingBoxGenerator
input = gmg
bottom_left = '0 0 0'
block_id = 1
top_right = '0.9 0.9 0'
integer_name = test_id
[]
[another_subdomains]
type = SubdomainBoundingBoxGenerator
input = subdomains
bottom_left = '0 0 0'
block_id = 2
top_right = '0.9 0.9 0'
location = OUTSIDE
integer_name = test_id
[]
[]
[Problem]
kernel_coverage_check = false
solve = false
[]
[AuxVariables]
[test_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[test_id]
type = ExtraElementIDAux
variable = test_id
extra_id_name = test_id
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(modules/reactor/test/tests/meshgenerators/coarse_mesh_extra_element_id_generator/coarse_elem_subdomain_id.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 8
ymin = 0
ymax = 8
nx = 8
ny = 8
[]
[coarse_mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 8
ymin = 0
ymax = 8
nx = 3
ny = 3
subdomain_ids = '0 1 2
3 3 3
4 4 4'
[]
[coarse_id]
type = CoarseMeshExtraElementIDGenerator
input = gmg
coarse_mesh = coarse_mesh
extra_element_id_name = coarse_elem_id
coarse_mesh_extra_element_id = subdomain_id
enforce_mesh_embedding = false
[]
[]
[Problem]
kernel_coverage_check = false
solve = false
[]
[AuxVariables]
[coarse_elem_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[coarse_elem_id]
type = ExtraElementIDAux
variable = coarse_elem_id
extra_id_name = coarse_elem_id
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = true
[]
(test/tests/meshgenerators/plane_id_mesh_generator/plane_id_pin3d.i)
[Mesh]
[pin2d]
type = ConcentricCircleMeshGenerator
num_sectors = 2
radii = '0.4 0.5'
rings = '1 1 1'
has_outer_square = on
pitch = 1.26
preserve_volumes = yes
smoothing_max_it = 3
[]
[pin3d]
type = FancyExtruderGenerator
input = 'pin2d'
heights = '5.0 5.0 5.0'
direction = '0 0 1'
num_layers = '2 2 2'
[]
[pin3d_id]
type = PlaneIDMeshGenerator
input = 'pin3d'
plane_coordinates = '0.0 5.0 10.0 15.0'
num_ids_per_plane = ' 1 2 1'
plane_axis = 'z'
id_name = 'plane_id'
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[AuxVariables]
[plane_id]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[set_plane_id]
type = ExtraElementIDAux
variable = plane_id
extra_id_name = plane_id
[]
[]
[Outputs]
exodus = true
execute_on = timestep_end
[]