Salome HOME
0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids
authoreap <eap@opencascade.com>
Fri, 8 Oct 2010 10:02:38 +0000 (10:02 +0000)
committereap <eap@opencascade.com>
Fri, 8 Oct 2010 10:02:38 +0000 (10:02 +0000)
   Fix pb of intersecting triangles
   * re-check all adjacent pyramids if at least one merge occures
   * increase threshold of merge of adjacent pyramids up to 15 degrees to avoid
     bad (flat) tetrahedrons created by NETEGN

src/StdMeshers/StdMeshers_QuadToTriaAdaptor.cxx

index 3ae9552d9e0e4371b280b1a124781499abb3cc75..5f56d5d786021c24719f616544dca4a25d28ae1a 100644 (file)
@@ -228,7 +228,7 @@ namespace
 
     // Check angle between normals
     double angle = nI.Angle( nJ );
-    bool tooClose = ( angle < 10 * PI180 );
+    bool tooClose = ( angle < 15 * PI180 );
 
     // Check if pyramids collide
     bool isOutI, isOutJ;
@@ -315,8 +315,14 @@ namespace
       }
     }
     if ( !mergedPyrams.empty() )
-      for (TIDSortedElemSet::iterator prm = mergedPyrams.begin(); prm != mergedPyrams.end(); ++prm)
+    {
+      TIDSortedElemSet::iterator prm;
+//       for (prm = mergedPyrams.begin(); prm != mergedPyrams.end(); ++prm)
+//         MergeAdjacent( *prm, mesh, nodesToMove );
+
+      for (prm = adjacentPyrams.begin(); prm != adjacentPyrams.end(); ++prm)
         MergeAdjacent( *prm, mesh, nodesToMove );
+    }
   }
 }