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
_49
for 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::interpolate
now works with all-quad and mixed meshes (used to work only with all-triangle meshes).meshtools2d::interpolate_metrics
now works with all-quad and mixed meshes (used to work only with all-triangle meshes).meshtools3d::duplicate_surface_nodes
generalizes the formermeshtools3d::duplicate_surface_nodes_TH4
to 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_flag
didn’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_flag
didn’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_quality
didn’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_input
andmeshtools::FEMAP_input
. - Fix in
meshtools2d::mesh_surface_param
withtarget_metric
and 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_h
to a realistic mesh size (such as for instancetarget_h = max_h
).
Miscellaneous
meshtools3d::duplicate_surface_nodes_TH4
replaced withmeshtools3d::duplicate_surface_nodes
(now generalized to H8 and mixed solid meshes).- Now built on Windows with
UNICODE
encoding setting (used to beMBCS
).
This may impact functions taking a filename as argument (suchmeshtools::NASTRAN_input
,meshtools::NASTRAN_output
and siblings).