Fix issue#269: infinite loop during meshing action with face interpolation#230
Fix issue#269: infinite loop during meshing action with face interpolation#230lelandaisb wants to merge 3 commits intomainfrom
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #230 +/- ##
==========================================
+ Coverage 47.73% 47.94% +0.20%
==========================================
Files 462 462
Lines 50079 50068 -11
==========================================
+ Hits 23906 24003 +97
+ Misses 26173 26065 -108 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Good job for prevented crashes; I have built additional cases of interpolated edges forming loops
EDIT : sorry, I mistook the branches while reviewing the PR. In the following test case a loop is adequately detected during meshing in the main branch but crashes with this branch
# Création d'un bloc unitaire mis dans le groupe aaa
ctx.getTopoManager().newFreeTopoInGroup ("aaa", 3)
# Changement de discrétisation pour les arêtes Ar0006
emp = Mgx3D.EdgeMeshingPropertyInterpolate(10, "Fa0000")
ctx.getTopoManager().setMeshingProperty (emp, ["Ar0006"])
# Changement de discrétisation pour les arêtes Ar0004
emp = Mgx3D.EdgeMeshingPropertyInterpolate(10, "Fa0004")
ctx.getTopoManager().setMeshingProperty (emp, ["Ar0004"])
# Changement de discrétisation pour les arêtes Ar0005
emp = Mgx3D.EdgeMeshingPropertyInterpolate(10, "Fa0001")
ctx.getTopoManager().setMeshingProperty (emp, ["Ar0005"])
# Changement de discrétisation pour les arêtes Ar0007
emp = Mgx3D.EdgeMeshingPropertyInterpolate(10, "Fa0005")
ctx.getTopoManager().setMeshingProperty (emp, ["Ar0007"])This reverts commit 5307a66.
|
I rewrote the loop detection algorithm for interpolations. I made it consistent for global/local, local/face, and local/list-of-edges. |
Fix infinite loop in CoEdge::detectLoopReference methods when edges use face interpolation discretization.
Bounce around Fa0020:
Ar0082 --> [Ar0076, Ar0077] --> Ar0077 --> [Ar0081, Ar0082] --> Ar0082