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

Mortar mesh generation failed when a mortar boundary has coincident/overlaid nodes #21680

Closed
hugary1995 opened this issue Jul 25, 2022 · 0 comments · Fixed by #21683
Closed
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

@hugary1995
Copy link
Contributor

hugary1995 commented Jul 25, 2022

Bug Description

I managed to reproduce this error with a very simple MOOSE-only input file. This is a 2x2 element mesh.
The top half and the bottom half of the mesh are NOT connected, i.e. there are four nodes on the left and right boundaries, respectively.

When I apply a mortar constraint on the left/right boundaries (and their respective lower dimensional blocks), I get an error saying:

Could not associate primary/secondary neighbors on either side of secondary_node.

which comes from AutomaticMortarGeneration.

Steps to Reproduce

[Mesh]
  [top]
    type = GeneratedMeshGenerator
    dim = 2
    ymin = 0.5
    ymax = 1
    nx = 2
    ny = 1
    subdomain_ids = '0 0'
  []
  [bottom]
    type = GeneratedMeshGenerator
    dim = 2
    ymin = 0
    ymax = 0.5
    nx = 2
    ny = 1
    subdomain_ids = '1 1'
  []
  [combine]
    type = CombinerGenerator
    inputs = 'top bottom'
  []
  [pin]
    type = ParsedGenerateSideset
    input = combine
    new_sideset_name = pin
    combinatorial_geometry = 'x>0.499 & x<0.501'
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    input = pin
    sidesets = left
    new_block_id = 11
    new_block_name = secondary
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    input = secondary
    sidesets = right
    new_block_id = 12
    new_block_name = primary
  []
[]

[Problem]
  solve = false
[]

[Variables]
  [u]
  []
[]

[Constraints]
  [mortar]
    type = PenaltyEqualValueConstraint
    secondary_variable = u
    primary_boundary = right
    secondary_boundary = left
    primary_subdomain = 12
    secondary_subdomain = 11
    penalty_value = 10
  []
[]

[Executioner]
  type = Transient
  num_steps = 1
[]

Impact

This prevents me from running simulation with discontinuous mesh (discontinuous as in blocks are broken by duplicating nodes). If the boundaries are not conforming, however, it seems that I can bypass this error message, but the Jacobian is sometimes singular.

@hugary1995 hugary1995 added P: normal A defect affecting operation with a low possibility of significantly affects. T: defect An anomaly, which is anything that deviates from expectations. labels Jul 25, 2022
@lindsayad lindsayad changed the title Mortar mesh generation failed when the paired boundaries have duplicate node(s) Mortar mesh generation failed when a mortar boundary has coincident/overlaid nodes Jul 25, 2022
@lindsayad lindsayad self-assigned this Jul 25, 2022
@lindsayad lindsayad added this to To do in FY22 NEAMS MP - TA Support via automation Jul 25, 2022
lindsayad added a commit to lindsayad/moose that referenced this issue Jul 25, 2022
hugary1995 pushed a commit to hugary1995/moose that referenced this issue Jul 26, 2022
lindsayad added a commit to lindsayad/moose that referenced this issue Jul 26, 2022
FY22 NEAMS MP - TA Support automation moved this from To do to Done Jul 26, 2022
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
Development

Successfully merging a pull request may close this issue.

2 participants