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

Modification of the settag function #235

Merged
merged 1 commit into from
Dec 18, 2023

Conversation

Algiane
Copy link
Member

@Algiane Algiane commented Dec 15, 2023

Description of the issue

The settag function updates tag info by travelling the tetra of the shell of a given edge. Commit 0f487e0 (which aims to add the support of required entities) has introduced the fact that the edge tag is updated only for tetra in which the edge belongs to a boundary face.

Thus, if the edge has no boundary face, it is not updated.

It may leads to tag inconsistencies in ParMmg where the settag function is called (in cleanMesh function).
and where edges not belonging to bdy faces may be marked as MG_BDY.

As a recall:

  • any edge marked as MG_BDY has to have consistent tags with the tags of the same edge in the other tetra.
  • regular edges belonging to a boundary face inside the current tet may have a 0 tag (because for now the splitting operators are creating boundary edges with 0 tags when splitting boundary triangles, see split_3d.c).
  • regular or non regular edges not having a bdy face inside the tetra may have a 0 tag.

Resolution

Now the edge tag is updated for all the tetra of the shell that have a xtetra.

Check for regression

This modification has been tested by running, in Debug mode, the continuous integration tests that contains required entities (Req pattern in test name) and the tests related to the nosurf option (nosurf pattern) : the adaptation waves are the same.

Remark: Comparative outputs may contains useless 2D or surface tests due to the usage of the regex.

old-nosurf.txt
new-nosurf.txt
old-req.txt
new-req.txt

The settag function updates tag info by travelling the tetra of the shell of a given edge.
Commit 0f487e0 (which aims to add the support of required entities) has introduced the fact that
the edge tag is updated only for tetra in which the edge belongs to a boundary face.

Thus, if the edge has no boundary face, it is not updated.

It may leads to tag inconsistencies in ParMmg where the settag function is called (in `cleanMesh`function)
 and where edges not belonging to bdy faces may be marked as MG_BDY.

As a recall:
  - any edge marked as MG_BDY has to have consistent tags with the tags of the same edge in the other tetra.
  - regular edges belonging to a boundary face inside the current tet may have a 0 tag (because for now the splitting operators are creating boundary edges with 0 tags when splitting boundary triangles, see split_3d.c).
  - regular or non regular edges not having a bdy face inside the tetra may have a 0 tag.
@Algiane Algiane added the kind: enhancement enhancement to an existing feature label Dec 15, 2023
@Algiane Algiane self-assigned this Dec 15, 2023
@Algiane Algiane added the part: mmg3d mmg3d specific label Dec 15, 2023
@Algiane Algiane merged commit 0ba9b3d into develop Dec 18, 2023
23 checks passed
@Algiane Algiane deleted the feature/edge-tag-consistency-in-ParMmg branch December 18, 2023 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: enhancement enhancement to an existing feature part: mmg3d mmg3d specific
Projects
Development

Successfully merging this pull request may close these issues.

1 participant