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

PatternedMeshGenerator boundary stitching #23312

Closed
pbehne opened this issue Feb 1, 2023 · 0 comments · Fixed by #23326
Closed

PatternedMeshGenerator boundary stitching #23312

pbehne opened this issue Feb 1, 2023 · 0 comments · Fixed by #23326
Assignees
Labels
C: Framework 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

@pbehne
Copy link
Contributor

pbehne commented Feb 1, 2023

Bug Description

The PatternedMeshGenerator creates a 2D mesh from a specified set of unique 'tiles' meshes (parameter inputs) and a two-dimensional pattern (parameter pattern). This is accomplished by stitching the tiles in the pattern together using the libMesh::UnstructuredMesh::stitch_meshes function. Two of the parameters in the stitch_meshes method are the boundary ids of the mesh boundaries to be stitched together. PatternedMeshGenerator has input parameters that specify the text names of the left, right, top and bottom boundaries of the mesh tiles in inputs. These names are used to extract the corresponding boundary ids used to stitch the tiles together.

The bug is that these boundary ids are only extracted from the first mesh tile in inputs and that the remaining tiles are not checked to ensure that they have the same boundary ids for the left, right, top and bottom boundaries. When tiles in inputs do not share identical boundary id configurations, tile stitching is performed incorrectly, resulting in an incorrect patterned mesh.

The proposed patch is to add logic to check whether all mesh tiles in inputs share the same boundary id configurations. If they do not, boundary ids will be modified to be the same across all tiles.

Steps to Reproduce

The attached input file input.txt provides an example of this bug. The incorrect boundaries resulting from the incorrect stitching may be visualized using Peacock (attached screenshots).

Impact

This bug causes PatternedMeshGenerator to stitch meshes together incorrectly, resulting in unusable meshes with incorrect boundaries.

input.txt
image
image
image
image

@pbehne pbehne 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 Feb 1, 2023
pbehne added a commit to pbehne/moose that referenced this issue Feb 2, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
pbehne added a commit to pbehne/moose that referenced this issue Feb 2, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
pbehne added a commit to pbehne/moose that referenced this issue Feb 2, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
pbehne added a commit to pbehne/moose that referenced this issue Feb 7, 2023
This test failed after patching issue idaholab#23312 because it was triggering a newly
added error check to prevent incorrect boundary stitching.
The RenameBoundaryGenerator was added to the test case to ensure that the input
MeshGenerator tiles used in CartesianIDPatternedMeshGenerator (and
PatternedMeshGenerator) have boundary names matching the default input values
'left', 'right', 'top', and 'bottom' in the PatternedMeshGenerator.
This results in correct boundary stitching.
Because the boundary stitching was previously messed up, some nodes were not
marked as identical, resulting in duplicate nodes.
The corrected mesh eliminates these duplicate nodes.
Because the original and new test meshes have differing numbers of nodes, the
exodiff between them fails.
For this reason, the gold file has been updated.
pbehne added a commit to pbehne/moose that referenced this issue Feb 8, 2023
This test failed after patching issue idaholab#23312 because it was triggering a newly
added error check to prevent incorrect boundary stitching.
The RenameBoundaryGenerator was added to the test case to ensure that the input
MeshGenerator tiles used in CartesianIDPatternedMeshGenerator (and
PatternedMeshGenerator) have boundary names matching the default input values
'left', 'right', 'top', and 'bottom' in the PatternedMeshGenerator.
This results in correct boundary stitching.
Because the boundary stitching was previously messed up, some nodes were not
marked as identical, resulting in duplicate nodes.
The corrected mesh eliminates these duplicate nodes.
Because the original and new test meshes have differing numbers of nodes, the
exodiff between them fails.
For this reason, the gold file has been updated.
pbehne added a commit to pbehne/moose that referenced this issue Feb 8, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
pbehne added a commit to pbehne/moose that referenced this issue Feb 8, 2023
This test failed after patching issue idaholab#23312 because it was triggering a newly
added error check to prevent incorrect boundary stitching.
The RenameBoundaryGenerator was added to the test case to ensure that the input
MeshGenerator tiles used in CartesianIDPatternedMeshGenerator (and
PatternedMeshGenerator) have boundary names matching the default input values
'left', 'right', 'top', and 'bottom' in the PatternedMeshGenerator.
This results in correct boundary stitching.
Because the boundary stitching was previously messed up, some nodes were not
marked as identical, resulting in duplicate nodes.
The corrected mesh eliminates these duplicate nodes.
Because the original and new test meshes have differing numbers of nodes, the
exodiff between them fails.
For this reason, the gold file has been updated.
pbehne added a commit to pbehne/moose that referenced this issue Feb 16, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
pbehne added a commit to pbehne/moose that referenced this issue Feb 16, 2023
This test failed after patching issue idaholab#23312 because it was triggering a newly
added error check to prevent incorrect boundary stitching.
The RenameBoundaryGenerator was added to the test case to ensure that the input
MeshGenerator tiles used in CartesianIDPatternedMeshGenerator (and
PatternedMeshGenerator) have boundary names matching the default input values
'left', 'right', 'top', and 'bottom' in the PatternedMeshGenerator.
This results in correct boundary stitching.
Because the boundary stitching was previously messed up, some nodes were not
marked as identical, resulting in duplicate nodes.
The corrected mesh eliminates these duplicate nodes.
Because the original and new test meshes have differing numbers of nodes, the
exodiff between them fails.
For this reason, the gold file has been updated.
pbehne added a commit to pbehne/moose that referenced this issue Feb 16, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
pbehne added a commit to pbehne/moose that referenced this issue Feb 16, 2023
This test failed after patching issue idaholab#23312 because it was triggering a newly
added error check to prevent incorrect boundary stitching.
The RenameBoundaryGenerator was added to the test case to ensure that the input
MeshGenerator tiles used in CartesianIDPatternedMeshGenerator (and
PatternedMeshGenerator) have boundary names matching the default input values
'left', 'right', 'top', and 'bottom' in the PatternedMeshGenerator.
This results in correct boundary stitching.
Because the boundary stitching was previously messed up, some nodes were not
marked as identical, resulting in duplicate nodes.
The corrected mesh eliminates these duplicate nodes.
Because the original and new test meshes have differing numbers of nodes, the
exodiff between them fails.
For this reason, the gold file has been updated.
pbehne added a commit to pbehne/moose that referenced this issue Feb 17, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
pbehne added a commit to pbehne/moose that referenced this issue Feb 17, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
pbehne added a commit to pbehne/moose that referenced this issue Feb 20, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
MengnanLi91 pushed a commit to MengnanLi91/moose that referenced this issue Feb 23, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
pbehne added a commit to pbehne/moose that referenced this issue Feb 28, 2023
This commit patches the bug described in idaholab#23312 which results in incorrect mesh
stitching in the PatternedMeshGenerator when the mesh tiles provided in the
'inputs' parameter do not have the same boundary ids.
A check is added to detect this issue, and if present, the boundary ids of all
tile meshes are changed to be common, previously unused boundary ids.
This allows for the tiles to be stitched together correctly.
Additionally, the class was cleaned up to incorporate recommended code
standards.

closes idaholab#23312
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: Framework 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
None yet
Development

Successfully merging a pull request may close this issue.

2 participants