CM2 MeshTools® Suite /release 4.9.0
- 4.9.0
- May, 2019
- All CM2 MeshTools® Suite
- Major release of the CM2 MeshTools® Suite
- Due to changes in the API, client applications must be recompiled against the new headers
/caveats
- Lib names suffix is
_49for this series. - New Visual Studio 2019 builds (Win32/64).
- New GCC 7 and GCC 8 builds (Linux32/64).
- Visual Studio < 2010 and GCC < 4.8 are no longer supported (minimum versions raised to Visual Studio 2010 and GCC 4.8).
- The Visual Studio 2019 builds target Windows 7 or later. Windows XP is still supported for the Visual Studio builds ≤ 2017 but deprecated.
- macOS < 10.9 is no longer supported (minimum deployment target raised to 10.9 Mavericks).
/new features
CM2 Intersect T3
- New
settings.fix_flag(default =true) to allow for dry-run of the intersector when unset (false) and to only report pathologies without attempting to fix them.
CM2 SurfMesh T3, CM2 SurfMesh Q4 (still experimental)
- Now able to mesh directly from a
TopoDS_Shape. - Upgraded to OpenCascade(R) 7.3.0.
Miscellaneous
meshtools2d::interpolatenow works with all-quad and mixed meshes (used to work only with all-triangle meshes).meshtools2d::interpolate_metricsnow works with all-quad and mixed meshes (used to work only with all-triangle meshes).meshtools3d::duplicate_surface_nodesgeneralizes the formermeshtools3d::duplicate_surface_nodes_TH4to H8 and mixed solid meshes.- Port to Visual Studio 2019, GCC 7, GCC 8.
/improvements
CM2 SurfRemesh T3, CM2 SurfRemesh Q4
- Proximity detection between skeleton lines leading to finer and better meshes near small geometric features (ridges, fillets, holes…)
This tends however to generate more elements. To mitigate this, usesettings.target_h(set for instancetarget_h = max_h). - Massive speed-ups for some terrain-like surfaces.
- User-defined mesh sizes better taken into account.
- Speed-ups with frozen triangles.
CM2 TetraMesh Iso, CM2 TetraMesh Aniso
- Enforcement of hard constraints fortified further (and sometimes much faster).
- Better minimum shape quality on difficult cases.
- In
CONVEX_HULL_MODE, optimisations (local-remeshings only) are now performed in accordance withsettings.optim_level(none was performed before).
CM2 Intersect T3
- Much fewer remaining pathologies on difficult cases.
- Significant speed-ups.
CM2 HexaMesh Iso
- Fewer missing wall-quads when
settings.make_conformal_flag = false.
/fixes
All meshers
- Crash in convex-hull mode when nodes were aligned.
CM2 TriaMesh Iso, CM2 TriaMesh Aniso, CM2 TetraMesh Iso, CM2 TetraMesh Aniso
settings.node_smoothing_flagdidn’t work inREGULARIZE_MODE.
CM2 TriaMesh Iso, CM2 TriaMesh Aniso, CM2 QuadMesh Iso, CM2 QuadMesh Aniso
- Fix in convex-hull mode when
settings.strict_constraints_flag = true.
The convex-hull wasn’t always exact, i.e. some (small) concavities could have been left.
CM2 SurfRemesh T3, CM2 SurfRemesh Q4
- Metrics on user-defined hard nodes were poorly taken into account (when close to some skeleton lines).
- Skeleton lines poorly remeshed sometimes.
settings.node_smoothing_flagdidn’t work withsettings.refine_flag = false.- Some initial elements could be uncolored in
data_type::colors_in. - Nodes sometimes not on the initial surface with spurious chordal error.
CM2 QuadMesh Iso, CM2 QuadMesh Aniso, CM2 SurfMesh Q4, CM2 SurfRemesh Q4
- In all-quad mode, could fail on a simple one-quad mesh.
settings_type::min_Q4_angle_qualitydidn’t work as expected.
CM2 HexaMesh Iso
CM2_INTERNAL_ERROR(Wall-triangle missing) sometimes.- Uninitialized-read fixed.
Miscellaneous
meshtools1d::metrics_gen_aniso3d: bug whenhb < 0.- Fixes in
meshtools::NASTRAN_inputandmeshtools::FEMAP_input. - Fix in
meshtools2d::mesh_surface_paramwithtarget_metricand embedded hard nodes (isolated_nodes). - Doc fixes and clarifications.
/breaking changes
CM2 SurfRemesh T3, CM2 SurfRemesh Q4
- Many changes especially in the mesh-partitioning algorithm and new proximity detection between skeleton lines.
The latter tends however to generate more elements with default setting oftarget_h = 0.
To mitigate this, setsettings.target_hto a realistic mesh size (such as for instancetarget_h = max_h).
Miscellaneous
meshtools3d::duplicate_surface_nodes_TH4replaced withmeshtools3d::duplicate_surface_nodes(now generalized to H8 and mixed solid meshes).- Now built on Windows with
UNICODEencoding setting (used to beMBCS).
This may impact functions taking a filename as argument (suchmeshtools::NASTRAN_input,meshtools::NASTRAN_outputand siblings).