Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segfault when using refined meshes with mortar contact #24638

Closed
dschwen opened this issue Jun 9, 2023 · 7 comments · Fixed by #25043
Closed

Segfault when using refined meshes with mortar contact #24638

dschwen opened this issue Jun 9, 2023 · 7 comments · Fixed by #25043
Assignees
Labels
P: normal A defect affecting operation with a low possibility of significantly affects. T: defect An anomaly, which is anything that deviates from expectations.

Comments

@dschwen
Copy link
Member

dschwen commented Jun 9, 2023

Bug Description

Trying to use RefineSidesetGenerator together with penalty mortar contact (refining the contact area). Segfault. And in dbg

No index 18446744073709551615 in ghosted vector.
Vector contains [0,33618)
And empty ghost array.

Tagging @lindsayad

Steps to Reproduce

cd $MOOSE_DIR/modules/contact/test/tests/pdass_problems
../../../contact-opt -i cylinder_friction_penalty.i Mesh/refine/type=RefineSidesetGenerator Mesh/refine/boundaries=3 Mesh/refine/input=input_file Mesh/refine/refinement=1 Mesh/secondary/input=refine

Impact

Prevents users from refining meshes along contact sidesets.

@dschwen dschwen added T: defect An anomaly, which is anything that deviates from expectations. P: normal A defect affecting operation with a low possibility of significantly affects. labels Jun 9, 2023
@dschwen
Copy link
Member Author

dschwen commented Jun 9, 2023

Oh, interesting, when using the Lagrange Multiplier version on that file I get a different error

../../../contact-opt -i cylinder_friction.i Mesh/refine/type=RefineSidesetGenerator Mesh/refine/boundaries=3 Mesh/refine/input=input_file Mesh/refine/refinement=1 Mesh/secondary/input=refine

yields

*** ERROR ***
'cont_press' of type 'NodalValueSampler' depends on variable(s) 'frictionless_normal_lm'. However, that variable does not appear to be defined on (all of) boundary ''.

@dschwen
Copy link
Member Author

dschwen commented Jun 9, 2023

Note that using the BoundaryMarker to perform initial refinement woks fine! This is slightly annoying as that marker existed before the redundant RefineSidesetGenerator was added. @GiudGiud maybe you can figure out what is missing in RefineSidesetGenerator.

@lindsayad lindsayad self-assigned this Jun 9, 2023
@GiudGiud
Copy link
Contributor

GiudGiud commented Jun 9, 2023

maybe just a isnt_prepared called. Would be my guess

@GiudGiud
Copy link
Contributor

GiudGiud commented Jun 9, 2023

I like that you are using RefineSidesetGenerator now :)

@lindsayad
Copy link
Member

It's the ordering. Refinement generators must go after the lower-d block generator. I need to add error checking in the lower-d generators to give the user an informative error

@lindsayad
Copy link
Member

How about this message?

*** ERROR ***
The following error occurred in the object "secondary", of type "LowerDBlockFromSidesetGenerator".

Only active, level 0 elements can be made interior parents of new level 0 lower-d elements. Make sure that LowerDBlockFromSidesetGenerators are run before any refinement generators

@dschwen
Copy link
Member Author

dschwen commented Jul 27, 2023

Yeah. The second sentence is probably the most helpful part for the average user.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P: normal A defect affecting operation with a low possibility of significantly affects. T: defect An anomaly, which is anything that deviates from expectations.
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants