CM2 MeshTools® Suite /release 4.7.1

by | Mar 15, 2017

  • 4.7.1
  • March, 2017
  • All CM2 MeshTools® Suite
  • Minor release of the CM2 MeshTools® Suite
  • Bug-fix update. Client applications need not to be recompiled against this update.



/new features


  • meshtools1d::curvatures: now work also when the size of the `nodes` array
    is lesser or equal to 2 (the curvatures are null in these cases).


CM2 HexaMesh

  • Improvements in the hard-quad enforcement scheme for embedded quads.


All meshers (except Intersect and Layers)

  • With a low target_metric, the mesh generators could reserve an excessive amount of memory (and sometimes fail with a CM2_SYSTEM_MEMORY_ERROR, mostly on Win32).
  • Interrupting early a generator (with mode.interrupt_hdl returning true) could make it crash.
  • Parameter nodes_limit not properly taken into account.

CM2 HexaMesh

  • Could generate non-conformal meshes on difficult cases (despite make_conformal_flag = true).
  • A bug in the wall-quad enforcement scheme could cause the generator to exit with a CM2_INTERNAL_ERROR.
  • A bug in the optimizer could cause the generator to exit with a CM2_INTERNAL_ERROR (Wall triangle missing).
  • A bug in the optimizer could cause the generator to remove some embedded hard edges.
  • Values in data_type::colors were jumbled.
  • Bug with make_conformal_flag = false (resulting in invalid meshes, invalid colors, crashes…)
    The number of missing faces was wrong also.
  • The progress parameter passed to the interrupt handler was not increasing monotonically.

CM2 TetraMesh, CM2 TetraMesh Aniso

  • Wrong number of enforced hard edges (data.hard_edges_out) in case of unenforced faces.

CM2 QuadMesh, CM2 QuadMesh Aniso

  • In mode.all_quad_flag = true with embedded nodes, could stop in some cases with CM2_IRREGULAR_BOUNDARY_ERROR (regression from 4.4.0).
  • In mode.all_quad_flag = true with bi-oriented edges, could stop in some cases with CM2_IRREGULAR_BOUNDARY_ERROR.

CM2 SurfRemesh T3, CM2 SurfRemesh Q4

  • Strange localized small elements near closed skeleton lines (when mode.min_h < mode.max_h).
  • Irregular mesh sizes along some curved skeleton lines (when mode.min_h < mode.max_h).

CM2 SurfMesh T3, CM2 SurfMesh Q4

  • Too coarse meshes along some long curves (see bug meshtools1d::mesh_curve_param below).


  • meshtools3d::duplicate_surface_nodes_TH4: always failed with return code -3.
  • meshtools2d::flip: wrong behaviour with FE_type = CM2_FACE_MIX and high-order faces.
  • meshtools1d::mesh_curve_param: generation was arbitrary limited to 1000 nodes along each curve.
    This bug impacted CM2 SurfMesh T3 & Q4.
  • Doc fixes.

/breaking changes


  • meshtools1d::mesh_spline: the max_gradation parameter doesn’t apply to the spline_metrics any more but only to the curvature-induced metrics.