From: asozinov Date: Fri, 28 Oct 2022 07:36:04 +0000 (+0300) Subject: Porting netgen X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fasozinov%2F32536_linux;p=plugins%2Fnetgenplugin.git Porting netgen --- diff --git a/src/NETGENPlugin/NETGENPlugin_Mesher.cxx b/src/NETGENPlugin/NETGENPlugin_Mesher.cxx index 2d9ff3b..8725e71 100644 --- a/src/NETGENPlugin/NETGENPlugin_Mesher.cxx +++ b/src/NETGENPlugin/NETGENPlugin_Mesher.cxx @@ -31,6 +31,7 @@ #include "NETGENPlugin_Hypothesis_2D.hxx" #include "NETGENPlugin_SimpleHypothesis_3D.hxx" +#include #include #include #include @@ -2900,7 +2901,7 @@ bool NETGENPlugin_Mesher::Compute() // Generate the mesh // ------------------------- - _ngMesh = NULL; + //_ngMesh = NULL; NETGENPlugin_ngMeshInfo initState; // it remembers size of ng mesh equal to size of Smesh SMESH_Comment comment; @@ -4506,10 +4507,19 @@ int NETGENPlugin_NetgenLibWrapper::GenerateMesh( netgen::OCCGeometry& occgeo, ngMesh->SetGeometry( shared_ptr( &occgeo, &NOOP_Deleter )); + ofstream MyFile("D:/plug.txt"); + MyFile << "Before"; + occgeo.BuildFMap(); + MyFile << "\nAfter"; + netgen::mparam.perfstepsstart = startWith; netgen::mparam.perfstepsend = endWith; std::shared_ptr meshPtr( ngMesh, &NOOP_Deleter ); + MyFile << "\nGenMeshStart"; + err = occgeo.GenerateMesh( meshPtr, netgen::mparam ); + MyFile << "\nGenMeshEnd"; + MyFile << err; #else #ifdef NETGEN_V5 diff --git a/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cxx b/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cxx index 9c122c3..f012bf2 100644 --- a/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cxx +++ b/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cxx @@ -26,6 +26,8 @@ #include "NETGENPlugin_Mesher.hxx" #include "NETGENPlugin_Hypothesis_2D.hxx" +#include +#include #include #include #include @@ -226,6 +228,9 @@ bool NETGENPlugin_NETGEN_2D_ONLY::CheckHypothesis (SMESH_Mesh& aMesh, bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape) { + ofstream File("D:/2D_ONLY.txt"); + File << "Compute Start\t"; + netgen::multithread.terminate = 0; //netgen::multithread.task = "Surface meshing"; @@ -240,6 +245,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, netgen::Mesh * ngMeshes[2] = { (netgen::Mesh*) ngLib._ngMesh, & ngMeshNoLocSize }; netgen::OCCGeometry occgeoComm; + File << "1"; // min / max sizes are set as follows: // if ( _hypParameters ) // min and max are defined by the user @@ -290,6 +296,8 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, #endif occgeoComm.face_maxh = netgen::mparam.maxh; #ifdef NETGEN_V6 + occgeoComm.BuildFMap(); + netgen::OCCParameters occparam; netgen::OCCSetLocalMeshSize( occgeoComm, *ngMeshes[0], netgen::mparam, occparam ); #else @@ -335,6 +343,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, // Loop on all FACEs // ================== + File << "2"; vector< const SMDS_MeshNode* > nodeVec; TopExp_Explorer fExp( aShape, TopAbs_FACE ); @@ -597,6 +606,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, } // two attempts } // loop on FACEs + File << "\tCompute End\n"; return true; }