From 1057b2c9fcad4ca3664f9abe37f3099e31ee701a Mon Sep 17 00:00:00 2001 From: eap Date: Fri, 8 Oct 2010 10:02:38 +0000 Subject: [PATCH] 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 --- src/StdMeshers/StdMeshers_QuadToTriaAdaptor.cxx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 ); + } } }