From: eap Date: Fri, 8 Oct 2010 10:02:38 +0000 (+0000) Subject: 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids X-Git-Tag: V5_1_5rc1~40 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=1057b2c9fcad4ca3664f9abe37f3099e31ee701a;p=modules%2Fsmesh.git 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids 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 --- diff --git a/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.cxx b/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.cxx index 3ae9552d9..5f56d5d78 100644 --- a/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.cxx +++ b/src/StdMeshers/StdMeshers_QuadToTriaAdaptor.cxx @@ -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 ); + } } }