diff --git a/framework/src/meshgenerators/BreakMeshByBlockGenerator.C b/framework/src/meshgenerators/BreakMeshByBlockGenerator.C index 8340296f6afa..d66309c75077 100644 --- a/framework/src/meshgenerators/BreakMeshByBlockGenerator.C +++ b/framework/src/meshgenerators/BreakMeshByBlockGenerator.C @@ -221,6 +221,7 @@ BreakMeshByBlockGenerator::generate() } // end nodeptr check addInterfaceBoundary(*mesh); + Partitioner::set_node_processor_ids(*mesh); return dynamic_pointer_cast(mesh); } diff --git a/test/tests/meshgenerators/break_mesh_by_block_generator/gold/hanging_nodes_parallel_out.e b/test/tests/meshgenerators/break_mesh_by_block_generator/gold/hanging_nodes_parallel_out.e new file mode 100644 index 000000000000..6122e049c6f8 Binary files /dev/null and b/test/tests/meshgenerators/break_mesh_by_block_generator/gold/hanging_nodes_parallel_out.e differ diff --git a/test/tests/meshgenerators/break_mesh_by_block_generator/hanging_nodes_parallel.i b/test/tests/meshgenerators/break_mesh_by_block_generator/hanging_nodes_parallel.i new file mode 100644 index 000000000000..f8fa80b487d0 --- /dev/null +++ b/test/tests/meshgenerators/break_mesh_by_block_generator/hanging_nodes_parallel.i @@ -0,0 +1,83 @@ +[Mesh] + [./msh] + type = GeneratedMeshGenerator + nx = 2 + ny = 3 + nz = 4 + xmin = -2.5 + xmax = 2.5 + ymin = -2 + ymax = 2 + zmin = -1.5 + zmax = 1.5 + dim = 3 + [../] + [Partitioner] + type = GridPartitioner + nx = 1 + ny = 3 + nz = 4 + [] + [./subdomain_1] + type = SubdomainBoundingBoxGenerator + input = msh + bottom_left = '-2.5 -2 -1' + top_right = '2.5 0 0.5' + block_id = 1 + [] + [./subdomain_2] + type = SubdomainBoundingBoxGenerator + input = subdomain_1 + bottom_left = '-2.5 0 -1' + top_right = '2.5 2 0.5' + block_id = 2 + [] + [./subdomain_3] + type = SubdomainBoundingBoxGenerator + input = subdomain_2 + bottom_left = '-2.5 -2 0.5' + top_right = '1.25 2 1.5' + block_id = 3 + [] + [./subdomain_4] + type = SubdomainBoundingBoxGenerator + input = subdomain_3 + bottom_left = '1.25 -2 0.5' + top_right = '5 2 1.5' + block_id = 4 + [] + [./subdomain_5] + type = SubdomainBoundingBoxGenerator + input = subdomain_4 + bottom_left = '-2.5 -2 -1.5' + top_right = '1.25 2 -1' + block_id = 3 + [] + [./subdomain_6] + type = SubdomainBoundingBoxGenerator + input = subdomain_5 + bottom_left = '1.25 -2 -1.5' + top_right = '2.5 2 -1' + block_id = 4 + [] + [./split] + type = BreakMeshByBlockGenerator + input = subdomain_6 + [] +[] + +[Debug] + pid_aux = true +[] + +[Problem] + solve = false +[] + +[Executioner] + type = Steady +[] + +[Outputs] + exodus = true +[] diff --git a/test/tests/meshgenerators/break_mesh_by_block_generator/tests b/test/tests/meshgenerators/break_mesh_by_block_generator/tests index 087be07454d5..dba9dfde4980 100644 --- a/test/tests/meshgenerators/break_mesh_by_block_generator/tests +++ b/test/tests/meshgenerators/break_mesh_by_block_generator/tests @@ -149,4 +149,17 @@ 'interface;' [] [] + + [hanging_nodes] + type = 'Exodiff' + input = 'hanging_nodes_parallel.i' + exodiff = 'hanging_nodes_parallel_out.e' + requirement = 'The system shall properly assign node processor ids for paritioned meshes' + design = 'meshgenerators/BreakMeshByBlockGenerator.md' + issues = '#15793' + mesh_mode = 'REPLICATED' + min_parallel = 12 + max_parallel = 12 + recover = false + [] []