From 2f5d8085bf355b44619f2f340e2758a6f0a5b06b Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 23 Jul 2020 16:22:54 +0200 Subject: [PATCH] smesh: [skip ci] port Netgen plugin to v6.2 --- cMake/FindNETGEN.cmake | 34 +++--- cMake/FreeCAD_Helpers/PrintFinalReport.cmake | 2 +- src/3rdParty/salomesmesh/CMakeLists.txt | 5 +- .../salomesmesh/inc/NETGENPlugin_Mesher.hxx | 6 +- .../src/NETGENPlugin/NETGENPlugin_Mesher.cpp | 104 +++++++++--------- .../NETGENPlugin_NETGEN_2D_ONLY.cpp | 32 +++--- .../NETGENPlugin/NETGENPlugin_NETGEN_3D.cpp | 22 ++-- 7 files changed, 103 insertions(+), 102 deletions(-) diff --git a/cMake/FindNETGEN.cmake b/cMake/FindNETGEN.cmake index 36acd99c2f..7c9563a3dd 100644 --- a/cMake/FindNETGEN.cmake +++ b/cMake/FindNETGEN.cmake @@ -108,7 +108,7 @@ else(Netgen_FOUND) IF(NOT NGLIB_INCLUDE_DIR AND NOT NETGEN_DIR_include) MESSAGE(STATUS "Cannot find NETGEN header files.") - ELSE() + ELSEIF(NOT NETGEN_VERSION) file(STRINGS ${NETGEN_DIR_include}/mydefs.hpp NETGEN_VERSION REGEX "#define PACKAGE_VERSION.*" ) @@ -129,23 +129,27 @@ endif(Netgen_FOUND) # Package-provided cMake file is not enough IF(Netgen_FOUND) - IF(NETGEN_VERSION) - string(REGEX MATCHALL "[0-9]+" NETGEN_VERSION_expr ${NETGEN_VERSION}) - list(LENGTH NETGEN_VERSION_expr NETGEN_VERSION_COUNT) - list(GET NETGEN_VERSION_expr 0 NETGEN_VERSION_MAJOR) - IF(NETGEN_VERSION_COUNT GREATER 1) - list(GET NETGEN_VERSION_expr 1 NETGEN_VERSION_MINOR) - ELSE() - set(NETGEN_VERSION_MINOR 0) - ENDIF() - ELSE() # workaround for netgen 6.2 and newer. currently there is no easy way to detect the version - # better use "find_package(netgen CONFIG REQUIRED)" - set(NETGEN_VERSION_MAJOR 6) - set(NETGEN_VERSION_MINOR 2) + IF(NOT NETGEN_VERSION_MAJOR) + IF(NETGEN_VERSION) + string(REGEX MATCHALL "[0-9]+" NETGEN_VERSION_expr ${NETGEN_VERSION}) + list(LENGTH NETGEN_VERSION_expr NETGEN_VERSION_COUNT) + list(GET NETGEN_VERSION_expr 0 NETGEN_VERSION_MAJOR) + IF(NETGEN_VERSION_COUNT GREATER 1) + list(GET NETGEN_VERSION_expr 1 NETGEN_VERSION_MINOR) + ELSE() + set(NETGEN_VERSION_MINOR 0) + ENDIF() + ELSE() # workaround for netgen 6.2 and newer. currently there is no easy way to detect the version + # better use "find_package(netgen CONFIG REQUIRED)" + set(NETGEN_VERSION_MAJOR 6) + set(NETGEN_VERSION_MINOR 2) + ENDIF() + set(NETGEN_VERSION_PATCH 0) ENDIF() - MATH(EXPR NETGEN_VERSION_C "(${NETGEN_VERSION_MAJOR} << 16) + (${NETGEN_VERSION_MINOR} << 8)") + MATH(EXPR NETGEN_VERSION_C "(${NETGEN_VERSION_MAJOR} << 16) + (${NETGEN_VERSION_MINOR} << 8) + (${NETGEN_VERSION_PATCH})") MATH(EXPR NETGEN_VERSION_62 "(6 << 16) + (2 << 8)") + MATH(EXPR NETGEN_VERSION_62_2004 "(6 << 16) + (2 << 8) + (2004)") IF(NOT NETGEN_VERSION_C LESS NETGEN_VERSION_62) # Version >= 6.2 IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang") # Clang sometimes fails to include diff --git a/cMake/FreeCAD_Helpers/PrintFinalReport.cmake b/cMake/FreeCAD_Helpers/PrintFinalReport.cmake index 7ca07d2b02..201eca7dc4 100644 --- a/cMake/FreeCAD_Helpers/PrintFinalReport.cmake +++ b/cMake/FreeCAD_Helpers/PrintFinalReport.cmake @@ -51,7 +51,7 @@ macro(PrintFinalReport) endif(BUILD_SMESH) if(DEFINED NETGEN_FOUND) - message(STATUS "NETGEN: ${NETGEN_VERSION} [${NETGEN_DEFINITIONS}] [${NETGEN_CXX_FLAGS}] [${NGLIB_INCLUDE_DIR}] [${NGLIB_LIBRARIES}] [${NETGEN_INCLUDE_DIRS}]") + message(STATUS "NETGEN: ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR}.${NETGEN_VERSION_PATCH} (${NETGEN_VERSION}) [${NETGEN_DEFINITIONS}] [${NETGEN_CXX_FLAGS}] [${NGLIB_INCLUDE_DIR}] [${NGLIB_LIBRARIES}] [${NETGEN_INCLUDE_DIRS}]") else(DEFINED NETGEN_FOUND) message(STATUS "NETGEN: not enabled") endif(DEFINED NETGEN_FOUND) diff --git a/src/3rdParty/salomesmesh/CMakeLists.txt b/src/3rdParty/salomesmesh/CMakeLists.txt index 28ac40da41..3424b78582 100644 --- a/src/3rdParty/salomesmesh/CMakeLists.txt +++ b/src/3rdParty/salomesmesh/CMakeLists.txt @@ -419,9 +419,12 @@ if(WIN32) else() set_target_properties(NETGENPlugin PROPERTIES COMPILE_FLAGS "${NETGEN_CXX_FLAGS}") endif(WIN32) -IF(NOT NETGEN_VERSION_C LESS NETGEN_VERSION_62) # Version >= 6.2 +IF(NOT NETGEN_VERSION_C LESS NETGEN_VERSION_62_2004) # Version >= 6.2.2004 set_target_properties(NETGENPlugin PROPERTIES CXX_STANDARD_REQUIRED ON) set_target_properties(NETGENPlugin PROPERTIES CXX_STANDARD 17) # Standard std=c++1y could work aswell +ELSEIF(NOT NETGEN_VERSION_C LESS NETGEN_VERSION_62) # Version >= 6.2 + set_target_properties(NETGENPlugin PROPERTIES CXX_STANDARD_REQUIRED ON) + set_target_properties(NETGENPlugin PROPERTIES CXX_STANDARD 14) # Standard std=c++1y could work aswell ENDIF() endif (BUILD_FEM_NETGEN) diff --git a/src/3rdParty/salomesmesh/inc/NETGENPlugin_Mesher.hxx b/src/3rdParty/salomesmesh/inc/NETGENPlugin_Mesher.hxx index ad3e5bb23e..db4569ab2d 100644 --- a/src/3rdParty/salomesmesh/inc/NETGENPlugin_Mesher.hxx +++ b/src/3rdParty/salomesmesh/inc/NETGENPlugin_Mesher.hxx @@ -36,7 +36,7 @@ #include #include -#define NETGEN_VERSION_STRING(a,b) (a << 16) + (b << 8) +#define NETGEN_VERSION_STRING(a,b,c) (a << 16) + (b << 8) + (c) namespace nglib { #include @@ -85,7 +85,7 @@ struct NETGENPlugin_ngMeshInfo struct NETGENPLUGIN_EXPORT NETGENPlugin_NetgenLibWrapper { bool _isComputeOk; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) nglib::Ng_Mesh * _ngMesh; #else std::shared_ptr _ngMesh; @@ -204,7 +204,7 @@ class NETGENPLUGIN_EXPORT NETGENPlugin_Mesher bool _optimize; int _fineness; bool _isViscousLayers2D; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) netgen::Mesh* _ngMesh; #else std::shared_ptr _ngMesh; diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp index 15df587dde..cd6f0b2b07 100644 --- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp +++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp @@ -99,17 +99,15 @@ namespace nglib { # pragma clang diagnostic pop #endif -//#define NETGEN_VERSION_6_2_1909 - namespace netgen { -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) -#ifdef NETGEN_VERSION_6_2_1909 - typedef Refinement OCCRefinementSurfaces; -#endif +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,2004) + typedef Refinement OCCRefinementSurfaces; + DLL_HEADER extern int OCCGenerateMesh(OCCGeometry&, shared_ptr&, MeshingParameters&); +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&, int, int); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, Mesh*&, MeshingParameters&, int, int); #else DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, Mesh*&, int, int, char*); @@ -190,7 +188,7 @@ NETGENPlugin_Mesher::~NETGENPlugin_Mesher() if ( _ptrToMe ) *_ptrToMe = NULL; _ptrToMe = 0; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) _ngMesh = NULL; #endif } @@ -2484,7 +2482,7 @@ bool NETGENPlugin_Mesher::Compute() // ------------------------- // Generate the mesh // ------------------------- -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) _ngMesh = NULL; #endif NETGENPlugin_ngMeshInfo initState; // it remembers size of ng mesh equal to size of Smesh @@ -2522,10 +2520,10 @@ bool NETGENPlugin_Mesher::Compute() occgeo.face_maxh = mparams.maxh; // Let netgen create _ngMesh and calculate element size on not meshed shapes -#if NETGEN_VERSION < NETGEN_VERSION_STRING(5,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(5,0,0) char *optstr = 0; #endif -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2,0) int startWith = netgen::MESHCONST_ANALYSE; int endWith = netgen::MESHCONST_ANALYSE; #else @@ -2534,9 +2532,9 @@ bool NETGENPlugin_Mesher::Compute() try { OCC_CATCH_SIGNALS; -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) err = netgen::OCCGenerateMesh(occgeo, _ngMesh, mparams); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) err = netgen::OCCGenerateMesh(occgeo, _ngMesh, mparams, startWith, endWith); #else err = netgen::OCCGenerateMesh(occgeo, _ngMesh, startWith, endWith, optstr); @@ -2553,7 +2551,7 @@ bool NETGENPlugin_Mesher::Compute() err = 0; //- MESHCONST_ANALYSE isn't so important step if ( !_ngMesh ) return false; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) ngLib.setMesh(( Ng_Mesh*) _ngMesh); #else ngLib.setMesh(( Ng_Mesh*) _ngMesh.get() ); @@ -2621,7 +2619,7 @@ bool NETGENPlugin_Mesher::Compute() intOccgeo.shape = occgeo.shape; intOccgeo.face_maxh.SetSize(intOccgeo.fmap.Extent()); intOccgeo.face_maxh = netgen::mparam.maxh; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) netgen::Mesh *tmpNgMesh = NULL; #else std::shared_ptr tmpNgMesh; // = std::make_shared(); @@ -2634,9 +2632,9 @@ bool NETGENPlugin_Mesher::Compute() // let netgen create a temporary mesh -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) netgen::OCCGenerateMesh(intOccgeo, tmpNgMesh, mparams); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) netgen::OCCGenerateMesh(intOccgeo, tmpNgMesh, mparams, startWith, endWith); #else netgen::OCCGenerateMesh(intOccgeo, tmpNgMesh, startWith, endWith, optstr); @@ -2645,22 +2643,22 @@ bool NETGENPlugin_Mesher::Compute() return false; // copy LocalH from the main to temporary mesh -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) initState.transferLocalH( _ngMesh, tmpNgMesh ); #else initState.transferLocalH( _ngMesh.get(), tmpNgMesh.get() ); #endif // compute mesh on internal edges -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2,0) startWith = endWith = netgen::MESHCONST_MESHEDGES; #else mparams.perfstepsstart = mparams.perfstepsend = netgen::MESHCONST_MESHEDGES; #endif -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) err = netgen::OCCGenerateMesh(intOccgeo, tmpNgMesh, mparams); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) err = netgen::OCCGenerateMesh(intOccgeo, tmpNgMesh, mparams, startWith, endWith); #else err = netgen::OCCGenerateMesh(intOccgeo, tmpNgMesh, startWith, endWith, optstr); @@ -2672,7 +2670,7 @@ bool NETGENPlugin_Mesher::Compute() comment << text(ex); err = 1; } -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) initState.restoreLocalH( tmpNgMesh ); #else initState.restoreLocalH( tmpNgMesh.get() ); @@ -2683,7 +2681,7 @@ bool NETGENPlugin_Mesher::Compute() FillSMesh( intOccgeo, *tmpNgMesh, initState, *_mesh, tmpNodeVec, comment ); err = ( err || !comment.empty() ); -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) nglib::Ng_DeleteMesh((nglib::Ng_Mesh*)tmpNgMesh); #else tmpNgMesh.reset(); @@ -2696,7 +2694,7 @@ bool NETGENPlugin_Mesher::Compute() err = ! ( FillNgMesh(occgeo, *_ngMesh, nodeVec, meshedSM[ MeshDim_0D ]) && FillNgMesh(occgeo, *_ngMesh, nodeVec, meshedSM[ MeshDim_1D ], &quadHelper)); } -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) initState = NETGENPlugin_ngMeshInfo(_ngMesh); #else initState = NETGENPlugin_ngMeshInfo(_ngMesh.get()); @@ -2705,7 +2703,7 @@ bool NETGENPlugin_Mesher::Compute() // Compute 1d mesh if (!err) { -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2,0) startWith = endWith = netgen::MESHCONST_MESHEDGES; #else mparams.perfstepsstart = mparams.perfstepsend = netgen::MESHCONST_MESHEDGES; @@ -2713,9 +2711,9 @@ bool NETGENPlugin_Mesher::Compute() try { OCC_CATCH_SIGNALS; -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) err = netgen::OCCGenerateMesh(occgeo, _ngMesh, mparams); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) err = netgen::OCCGenerateMesh(occgeo, _ngMesh, mparams, startWith, endWith); #else err = netgen::OCCGenerateMesh(occgeo, _ngMesh, startWith, endWith, optstr); @@ -2782,7 +2780,7 @@ bool NETGENPlugin_Mesher::Compute() FillSMesh( occgeo, *_ngMesh, initState, *_mesh, nodeVec, comment ); // add segments to faces with internal vertices AddIntVerticesInFaces( occgeo, *_ngMesh, nodeVec, internals ); -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) initState = NETGENPlugin_ngMeshInfo(_ngMesh); #else initState = NETGENPlugin_ngMeshInfo(_ngMesh.get()); @@ -2794,7 +2792,7 @@ bool NETGENPlugin_Mesher::Compute() { if ( !internals.hasInternalVertexInFace() ) { FillSMesh( occgeo, *_ngMesh, initState, *_mesh, nodeVec, comment ); -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) initState = NETGENPlugin_ngMeshInfo(_ngMesh); #else initState = NETGENPlugin_ngMeshInfo(_ngMesh.get()); @@ -2824,7 +2822,7 @@ bool NETGENPlugin_Mesher::Compute() if ( !error ) error = SMESH_ComputeError::New(); } -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) initState = NETGENPlugin_ngMeshInfo(_ngMesh); #else initState = NETGENPlugin_ngMeshInfo(_ngMesh.get()); @@ -2832,7 +2830,7 @@ bool NETGENPlugin_Mesher::Compute() } // Let netgen compute 2D mesh -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2,0) startWith = netgen::MESHCONST_MESHSURFACE; endWith = _optimize ? netgen::MESHCONST_OPTSURFACE : netgen::MESHCONST_MESHSURFACE; #else @@ -2842,9 +2840,9 @@ bool NETGENPlugin_Mesher::Compute() try { OCC_CATCH_SIGNALS; -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) err = netgen::OCCGenerateMesh(occgeo, _ngMesh, mparams); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) err = netgen::OCCGenerateMesh(occgeo, _ngMesh, mparams, startWith, endWith); #else err = netgen::OCCGenerateMesh(occgeo, _ngMesh, startWith, endWith, optstr); @@ -2903,7 +2901,7 @@ bool NETGENPlugin_Mesher::Compute() // fill _ngMesh with faces of sub-meshes err = ! ( FillNgMesh(occgeo, *_ngMesh, nodeVec, meshedSM[ MeshDim_2D ], &quadHelper)); -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) initState = NETGENPlugin_ngMeshInfo(_ngMesh); #else initState = NETGENPlugin_ngMeshInfo(_ngMesh.get()); @@ -2928,7 +2926,7 @@ bool NETGENPlugin_Mesher::Compute() _ngMesh->SetGlobalH (mparams.maxh); mparams.grading = 0.4; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(5,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(5,0,0) _ngMesh->CalcLocalH(); #else _ngMesh->CalcLocalH(mparams.grading); @@ -2944,14 +2942,14 @@ bool NETGENPlugin_Mesher::Compute() AddIntVerticesInSolids( occgeo, *_ngMesh, nodeVec, internals ); // duplicate mesh faces on internal faces FixIntFaces( occgeo, *_ngMesh, internals ); -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) initState = NETGENPlugin_ngMeshInfo(_ngMesh); #else initState = NETGENPlugin_ngMeshInfo(_ngMesh.get()); #endif } // Let netgen compute 3D mesh -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2,0) startWith = endWith = netgen::MESHCONST_MESHVOLUME; #else mparams.perfstepsstart = mparams.perfstepsend = netgen::MESHCONST_MESHVOLUME; @@ -2959,9 +2957,9 @@ bool NETGENPlugin_Mesher::Compute() try { OCC_CATCH_SIGNALS; -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) err = netgen::OCCGenerateMesh(occgeo, _ngMesh, mparams); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) err = netgen::OCCGenerateMesh(occgeo, _ngMesh, mparams, startWith, endWith); #else err = netgen::OCCGenerateMesh(occgeo, _ngMesh, startWith, endWith, optstr); @@ -2989,7 +2987,7 @@ bool NETGENPlugin_Mesher::Compute() // Let netgen optimize 3D mesh if ( !err && _optimize ) { -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2,0) startWith = endWith = netgen::MESHCONST_OPTVOLUME; #else mparams.perfstepsstart = mparams.perfstepsend = netgen::MESHCONST_OPTVOLUME; @@ -2997,9 +2995,9 @@ bool NETGENPlugin_Mesher::Compute() try { OCC_CATCH_SIGNALS; -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) err = netgen::OCCGenerateMesh(occgeo, _ngMesh, mparams); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) err = netgen::OCCGenerateMesh(occgeo, _ngMesh, mparams, startWith, endWith); #else err = netgen::OCCGenerateMesh(occgeo, _ngMesh, startWith, endWith, optstr); @@ -3211,15 +3209,15 @@ bool NETGENPlugin_Mesher::Evaluate(MapShapeNbElems& aResMap) // let netgen create _ngMesh and calculate element size on not meshed shapes NETGENPlugin_NetgenLibWrapper ngLib; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) netgen::Mesh *ngMesh = NULL; #else std::shared_ptr ngMesh; // = std::make_shared(); #endif -#if NETGEN_VERSION < NETGEN_VERSION_STRING(5,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(5,0,0) char *optstr = 0; #endif -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2,0) int startWith = netgen::MESHCONST_ANALYSE; int endWith = netgen::MESHCONST_MESHEDGES; #else @@ -3227,9 +3225,9 @@ bool NETGENPlugin_Mesher::Evaluate(MapShapeNbElems& aResMap) mparams.perfstepsend = netgen::MESHCONST_MESHEDGES; #endif -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) int err = netgen::OCCGenerateMesh(occgeo, ngMesh, mparams); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) int err = netgen::OCCGenerateMesh(occgeo, ngMesh, mparams, startWith, endWith); #else int err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr); @@ -3237,7 +3235,7 @@ bool NETGENPlugin_Mesher::Evaluate(MapShapeNbElems& aResMap) if(netgen::multithread.terminate) return false; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) ngLib.setMesh(( Ng_Mesh*) ngMesh); #else ngLib.setMesh(( Ng_Mesh*) ngMesh.get()); @@ -3702,7 +3700,7 @@ void NETGENPlugin_ngMeshInfo::transferLocalH( netgen::Mesh* fromMesh, { if ( !fromMesh->LocalHFunctionGenerated() ) return; if ( !toMesh->LocalHFunctionGenerated() ) -#if NETGEN_VERSION < NETGEN_VERSION_STRING(5,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(5,0,0) toMesh->CalcLocalH(); #else toMesh->CalcLocalH(netgen::mparam.grading); @@ -4099,7 +4097,7 @@ NETGENPlugin_NetgenLibWrapper::NETGENPlugin_NetgenLibWrapper() std::cout.rdbuf( netgen::mycout->rdbuf() ); #endif } -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) _ngMesh = Ng_NewMesh(); #else _ngMesh = std::make_shared(); @@ -4114,7 +4112,7 @@ NETGENPlugin_NetgenLibWrapper::NETGENPlugin_NetgenLibWrapper() NETGENPlugin_NetgenLibWrapper::~NETGENPlugin_NetgenLibWrapper() { -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) Ng_DeleteMesh( _ngMesh ); #else _ngMesh.reset(); @@ -4138,7 +4136,7 @@ NETGENPlugin_NetgenLibWrapper::~NETGENPlugin_NetgenLibWrapper() void NETGENPlugin_NetgenLibWrapper::setMesh( Ng_Mesh* mesh ) { if ( _ngMesh ) -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) Ng_DeleteMesh( _ngMesh ); _ngMesh = mesh; #else diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cpp index 4f4f6c2f1b..2ebe4f87ac 100644 --- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cpp +++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cpp @@ -84,11 +84,8 @@ namespace nglib { # pragma clang diagnostic pop #endif -//#define NETGEN_VERSION_6_2_1909 - namespace netgen { -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) -#ifdef NETGEN_VERSION_6_2_1909 +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,2004) // https://github.com/NGSolve/netgen/commit/bee097b153b43d9346819789534536cd1b773428 int OCCGenerateMesh(OCCGeometry& geo, shared_ptr& mesh, MeshingParameters& mparams) { @@ -101,18 +98,17 @@ namespace netgen { mparams.perfstepsend = perfstepsend; return result; } -#else - DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&); -#endif -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) + DLL_HEADER extern int OCCGenerateMesh(OCCGeometry&, shared_ptr&, MeshingParameters&); +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&, int, int); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, Mesh*&, MeshingParameters&, int, int); #else DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, Mesh*&, int, int, char*); #endif DLL_HEADER extern MeshingParameters mparam; -#ifndef NETGEN_VERSION_6_2_1909 +#if NETGEN_VERSION <= NETGEN_VERSION_STRING(6,2,1808) DLL_HEADER extern void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh); #endif } @@ -285,7 +281,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, ngLib._isComputeOk = false; netgen::Mesh ngMeshNoLocSize; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) netgen::Mesh * ngMeshes[2] = { (netgen::Mesh*) ngLib._ngMesh, & ngMeshNoLocSize }; #else netgen::Mesh * ngMeshes[2] = { (netgen::Mesh*) ngLib._ngMesh.get(), & ngMeshNoLocSize }; @@ -333,7 +329,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, netgen::mparam.minh = aMesher.GetDefaultMinSize( aShape, netgen::mparam.maxh ); } // set local size depending on curvature and NOT closeness of EDGEs -#ifdef NETGEN_VERSION_6_2_1909 +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,2004) // https://github.com/NGSolve/netgen/commit/073e215bb6bc97d8712990cba9cc6e9e1e4d8b2a netgen::mparam.closeedgefac = std::nullopt; #else @@ -341,7 +337,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, #endif //netgen::occparam.resthcloseedgefac = 1.0 + netgen::mparam.grading; occgeoComm.face_maxh = netgen::mparam.maxh; -#ifdef NETGEN_VERSION_6_2_1909 +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,2004) // https://github.com/NGSolve/netgen/commit/bee097b153b43d9346819789534536cd1b773428 occgeoComm.Analyse(*ngMeshes[0], netgen::mparam); #else @@ -351,7 +347,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, occgeoComm.vmap.Clear(); // set local size according to size of existing segments -#ifdef NETGEN_VERSION_6_2_1909 +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,2004) const double factor = netgen::mparam.closeedgefac.value(); #else const double factor = netgen::occparam.resthcloseedgefac; @@ -526,7 +522,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, // ------------------------- // Generate surface mesh // ------------------------- -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2,0) const int startWith = MESHCONST_MESHSURFACE; const int endWith = toOptimize ? MESHCONST_OPTSURFACE : MESHCONST_MESHSURFACE; #else @@ -536,14 +532,14 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, SMESH_Comment str; try { OCC_CATCH_SIGNALS; -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0,0) std::shared_ptr mesh_ptr(ngMesh, [](netgen::Mesh*){}); -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) err = netgen::OCCGenerateMesh(occgeom, mesh_ptr, netgen::mparam); #else err = netgen::OCCGenerateMesh(occgeom, mesh_ptr, netgen::mparam, startWith, endWith); #endif -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) err = netgen::OCCGenerateMesh(occgeom, ngMesh, netgen::mparam, startWith, endWith); #else char *optstr = 0; diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cpp index 6154b0482d..ea53b5563c 100644 --- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cpp +++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cpp @@ -95,11 +95,11 @@ namespace nglib { #include } namespace netgen { -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&, int, int); -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, Mesh*&, MeshingParameters&, int, int); #else DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, Mesh*&, int, int, char*); @@ -232,7 +232,7 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh, int Netgen_triangle[3]; NETGENPlugin_NetgenLibWrapper ngLib; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) Ng_Mesh * Netgen_mesh = ngLib._ngMesh; #else Ng_Mesh * Netgen_mesh = ngLib._ngMesh.get(); @@ -456,11 +456,11 @@ bool NETGENPlugin_NETGEN_3D::compute(SMESH_Mesh& aMesh, netgen::Mesh* ngMesh = (netgen::Mesh*)Netgen_mesh; int Netgen_NbOfNodes = Ng_GetNP(Netgen_mesh); -#if NETGEN_VERSION < NETGEN_VERSION_STRING(5,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(5,0,0) char *optstr = 0; #endif -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2,0) int startWith = netgen::MESHCONST_MESHVOLUME; int endWith = netgen::MESHCONST_OPTVOLUME; #else @@ -476,7 +476,7 @@ bool NETGENPlugin_NETGEN_3D::compute(SMESH_Mesh& aMesh, { aMesher.SetParameters( _hypParameters ); if ( !_hypParameters->GetOptimize() ) -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2,0) endWith = netgen::MESHCONST_MESHVOLUME; #else netgen::mparam.perfstepsend = netgen::MESHCONST_MESHVOLUME; @@ -507,14 +507,14 @@ bool NETGENPlugin_NETGEN_3D::compute(SMESH_Mesh& aMesh, try { OCC_CATCH_SIGNALS; -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0,0) std::shared_ptr mesh_ptr(ngMesh, [](netgen::Mesh*){}); -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2,0) err = netgen::OCCGenerateMesh(occgeo, mesh_ptr, netgen::mparam); #else err = netgen::OCCGenerateMesh(occgeo, mesh_ptr, netgen::mparam, startWith, endWith); #endif -#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) +#elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0,0) ngMesh->CalcLocalH(netgen::mparam.grading); err = netgen::OCCGenerateMesh(occgeo, ngMesh, netgen::mparam, startWith, endWith); #else @@ -639,7 +639,7 @@ bool NETGENPlugin_NETGEN_3D::Compute(SMESH_Mesh& aMesh, int Netgen_tetrahedron[4]; NETGENPlugin_NetgenLibWrapper ngLib; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0) +#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,0,0) Ng_Mesh * Netgen_mesh = ngLib._ngMesh; #else Ng_Mesh * Netgen_mesh = ngLib._ngMesh.get();