From 919135795d8cf03433cdbc88d680bf2d487d982c Mon Sep 17 00:00:00 2001 From: eap Date: Thu, 26 May 2011 16:07:11 +0000 Subject: [PATCH 1/1] 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids fix a just computed quadratic mesh by bending iternal links near concave boundary --- src/SMESH/SMESH_Gen.cxx | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) 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; } -- 2.39.2