Skip to content

Commit

Permalink
Give helpful error message when refinement run before lower-d blocks …
Browse files Browse the repository at this point in the history
…added

Closes idaholab#24638
  • Loading branch information
lindsayad committed Jul 26, 2023
1 parent d2ef20e commit 8ecc649
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
Expand Up @@ -150,8 +150,16 @@ LowerDBlockFromSidesetGenerator::generate()
if (sidesets.count(std::get<2>(triple)))
{
if (auto elem = mesh->query_elem_ptr(std::get<0>(triple)))
{
if (!elem->active())
mooseError(
"Only active, level 0 elements can be made interior parents of new level 0 lower-d "
"elements. Make sure that ",
type(),
"s are run before any refinement generators");
element_sides_on_boundary.push_back(
std::make_pair(counter, ElemSideDouble(elem, std::get<1>(triple))));
}
++counter;
}

Expand Down
20 changes: 20 additions & 0 deletions test/tests/meshgenerators/lower_d_block_generator/refine-error.i
@@ -0,0 +1,20 @@
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
[]
[refine]
type = RefineSidesetGenerator
boundaries = 'left'
refinement = '1'
input = gmg
[]
[lower_d_block]
type = LowerDBlockFromSidesetGenerator
input = refine
new_block_id = 10
sidesets = 'bottom right top left'
[]
[]
10 changes: 9 additions & 1 deletion test/tests/meshgenerators/lower_d_block_generator/tests
Expand Up @@ -20,7 +20,7 @@
recover = false
[]
[]

[second_order]
requirement = "The system shall support the creation of lower dimensional elements on an "
"existing sideset of second-order elements."
Expand All @@ -32,4 +32,12 @@
cli_args = 'Mesh/second_order=true Outputs/file_base=lower_d_second_order_out '
'GlobalParams/order=SECOND Mesh/gmg/nx=5 Mesh/gmg/ny=5'
[]
[dont_refine_before]
requirement = 'The system shall error if refinement generators are executed before lower dimensional elements are added.'
issues = '#24638'
type = 'RunException'
cli_args = '--mesh-only'
expect_err = 'Make sure that LowerDBlockFromSidesetGenerators are run before any refinement generators'
input = 'refine-error.i'
[]
[]

0 comments on commit 8ecc649

Please sign in to comment.