From: eap Date: Thu, 26 May 2011 16:07:11 +0000 (+0000) Subject: 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=919135795d8cf03433cdbc88d680bf2d487d982c;p=modules%2Fsmesh.git 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids fix a just computed quadratic mesh by bending iternal links near concave boundary --- diff --git a/src/SMESH/SMESH_Gen.cxx b/src/SMESH/SMESH_Gen.cxx index cbc49c40a..1c8022b0b 100644 --- a/src/SMESH/SMESH_Gen.cxx +++ b/src/SMESH/SMESH_Gen.cxx @@ -25,14 +25,18 @@ // Author : Paul RASCLE, EDF // Module : SMESH // -#define CHRONODEF + +//#define CHRONODEF + #include "SMESH_Gen.hxx" -#include "SMESH_subMesh.hxx" -#include "SMESH_HypoFilter.hxx" -#include "SMESHDS_Document.hxx" + +#include "SMDS_Mesh.hxx" #include "SMDS_MeshElement.hxx" #include "SMDS_MeshNode.hxx" -#include "SMDS_Mesh.hxx" +#include "SMESHDS_Document.hxx" +#include "SMESH_HypoFilter.hxx" +#include "SMESH_MesherHelper.hxx" +#include "SMESH_subMesh.hxx" #include "utilities.h" #include "OpUtil.hxx" @@ -348,6 +352,15 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh, MESSAGE("Number of cell objects " << SMDS_MeshCell::nbCells); //myMesh->dumpGrid(); //aMesh.GetMeshDS()->Modified(); + + // fix quadratic mesh by bending iternal links near concave boundary + if ( aShape.IsSame( aMesh.GetShapeToMesh() ) && + !aShapesId ) // not preview + { + SMESH_MesherHelper aHelper( aMesh ); + if ( aHelper.IsQuadraticMesh() != SMESH_MesherHelper::LINEAR ) + aHelper.FixQuadraticElements(); + } return ret; }