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_in.e b/test/tests/meshgenerators/break_mesh_by_block_generator/gold/hanging_nodes_parallel_in.e new file mode 100644 index 000000000000..125b2d84e347 Binary files /dev/null and b/test/tests/meshgenerators/break_mesh_by_block_generator/gold/hanging_nodes_parallel_in.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..a5a37c82b742 --- /dev/null +++ b/test/tests/meshgenerators/break_mesh_by_block_generator/hanging_nodes_parallel.i @@ -0,0 +1,69 @@ +[GlobalParams] + displacements = "disp_x disp_y disp_z" +[] + +[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 + [../] + [./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 + [] +[] + +[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..022afc191bb0 100644 --- a/test/tests/meshgenerators/break_mesh_by_block_generator/tests +++ b/test/tests/meshgenerators/break_mesh_by_block_generator/tests @@ -74,6 +74,19 @@ detail = "with a polycrystal based mesh in 2D." [] + [./hanging_nodes] + type = 'Exodiff' + input = 'hanging_nodes_parallel.i' + cli_args = '--mesh-only' + exodiff = 'hanging_nodes_parallel_in.e' + requirement = 'MOOSE shall be able to create separate blocks in a mesh in parallel' + design = 'meshgenerators/BreakMeshByBlockGenerator.md' + issues = '#15793' + mesh_mode = 'REPLICATED' + min_parallel = 4 + max_parallel = 5 + recover = false + [../] [] [block_restricted]