CM2 MeshTools® SDK /release 5.7.0 Preview 1
- 5.7.0 Preview 1
- March 2026.
- Major release of the CM2 MeshTools® SDK.
- All CM2 MeshTools® SDK.
- Due to changes in the API, client applications must be recompiled against the new headers.
/caveats
- Major version. Due to changes in the API, client applications must be recompiled against the new headers.
- Lib names now end with
_57(Windows®),5.7.0with symlinks from5.7(Linux®, macOS®). - Visual Studio 2017 deprecated.
- Last version with Visual Studio 2010 builds.
- The Visual Studio 2015 builds shall be the legacy/oldest builds for the next series (5.8).
/new features
All meshers
- The
settings_type::saveand thedata_type::savemembers now return an error indicator (int, negative value in case of error) like thesettings_type::loadand thedata_type::loadmembers.
All meshers accepting a background mesh
- The meshers now adapt to the user-defined node numbering scheme of the background mesh (need not to be the default CM2 local node ordering scheme anymore).
CM2 SurfMesh T3, CM2 SurfMesh Q4
- Surfaces can now be masked (not meshed) by setting a negative value in
data_type::surface_H.
This is a breaking change vs. previous versions since negative values used to be replaced with the default (setting_type::target_h) mesh size and the surfaces were meshed (see Breaking Changes below).
Core MeshTools libs
cm2::meshtools::NASTRAN_inputandcm2::meshtools::NASTRAN_outputnow support theQUAD9/CQUAD9element types (cm2::CM2_FACEQ9).
COM wrapper
- Updated.
/improvements
All meshers
- New OMP parallelism in the regularisation steps (node smoothing and element smoothing).
Only beneficial when several subdomains.
CM2 HexaMesh Iso
- Gradations to
settings_type::target_metricare much better honored.
CM2 TetraMesh Iso, CM2 TetraMesh Aniso
- Improvements in the boundary enforcement step (again) to recover the boundary faces in even more difficult cases (reducing the risk of
CM2_FACE_ERROR).
In addition, this is achieved with usually fewer Steiner nodes. - Improvements in the regularization step to better chase out the worst elements.
CM2 QuadMesh Iso, CM2 QuadMesh Aniso
- New OMP parallelism in the regularisation steps (topological transformations).
- Improvements in the regularization step to better chase out the worst elements.
This can show also in see CM2 SurfMesh Q4 and CM2 SurfRemesh Q4.
CM2 TriaMesh Iso, CM2 TriaMesh Aniso
- Improvements in the regularization step to better chase out the worst elements.
This can show also in see CM2 SurfMesh T3 and CM2 SurfRemesh T3.
/fixes
CM2 SurfRemesh T3, CM2 SurfRemesh Q4
- No gradation towards
settings_type::max_halong skeleton lines under specific conditions. - The final optimization step (
settings_type::final_optimization_flag) could strangely coarsen meshes (especially with highsettings_type::optim_level). - Strange/hallucinated non-regular meshes despite very regular/symmetric initial meshes (such as cylinders).
- Fortified remeshing (again) with fewer
CM2_REMESHING_ERROR.
CM2 HexaMesh Iso
- Rare cases of infinite processing (could happen with several subdomains).
Core MeshTools libs
cm2::meshtools::vizir_output(overloads withconst UIntVec& refs): could crash on memory error whenrefshas large values.cm2::meshtools::NASTRAN_inputfailed to readBAR/CBAR,ROD/CROD,BEAM/CBEAM.
/breaking changes
CM2 SurfMesh T3, CM2 SurfMesh Q4
- Negative values in the
data_type::surface_Harray used to be replaced with the default (setting_type::target_h) mesh size and the surfaces were meshed.
Now, negative values indicate masked surfaces (i.e. surfaces not to be meshed).
The default (setting_type::target_h) mesh size is now applied only to null and missing values indata_type::surface_H.
CM2 TriaMesh Iso, CM2 TriaMesh Aniso, CM2 TetraMesh Iso, CM2 TetraMesh Aniso
settings_type::no_edge_with_nodes_belowrenamed intosettings_type::no_edge_between_nodes_belowfor better clarity (same functionality).