What is new in RINGMesh 4.1.0 ?

 New Features:

  •  New thread safe logger:
    • Each call to Logger::XXX will output consistently in the console in multithreading environment.
    • The Logger uses variadic templates, you can use as many parameters as you want in the function.
  • Add possibility to run specific validity check on GeoModels (topology, geometry, all, ...)
  • ASCII surface STL export
  • First implementation of a stratigraphic column
  • Add Feflow export using .fem file. Support wells as discrete fractures and mixed element mesh. 
  • Add symmetric entity relationships management, an entity is the boundary of another entity and the reverse is automatically set. Same things for the parents/child relations.
  • New version of the .gm file format which not contains the GEOL_FEATURE on Mesh Entities anymore.
  • Export to gmsh file format (V2).
  • Add MeshSet, a mesh composed from all the other mesh types (PointSet, Line, Surface and Volume).

Bug fix:

  • Crash when GeoModelMesh was initialized before the GeoModelMeshEntity geometries were set.
  • Cannot delete Mesh in RINGMeshView.
  • Fix crash on RINGMeshView exit (Logger was still register).
  • RINGMesh now compiles when TetGen cmake option is set to off.
  • GeoModelMeshVertices was not cleared after a tetrahedralize step.


  • Refactoring of the io to have smaller files.
  • Explicit distinction between the denomination of GeoModelMeshEntity and GeoModelGeologicalEntity:
    •       Now, gmme_t are used to identify a GeoModelMeshEntity (with and index and a type).
    •       Now user who want to use GeoModelEntity has to give a particular attention on The type of GeoModelEntity because EntityType are not a std::string anymore. GeologicalEntityType and MeshEntityType inherit from the class EntityType.
  • Remove MeshAllD and inherited classes, user should only use Mesh0D, Mesh1D, Mesh2D or Mesh3D.
  • The GeoModelMesh has been modified according this modification.
  • Improve some designs by using the NRVO/RVO (Named Return Value Optimization)
  • Use C++11 smartpointers for all the pointers allocated on the heap
  • Remove complex inheritance design of the GeogramMesh and GeogramMeshBuilder classes  
  • Add naming distinction between a facet (a boundary polygon of a cell) and a polygon (a surface mesh element)
  • Mesh Entities have no longer a GEOL_FEATURE.
  • Refactoring of the GeoModel graphics
  • Create enums for classifying cells (CellType) and polygons (PolygonType). 


  • Remove support of .ogm
  • Remove support of .mesh and .meshb


  • All third party files (zlib, geogram) are now in a "third_party" directory at the RINGMesh root.
  • Removal of ThreeJS third party.
  • Add formatter settings for Visual Studio 2013 (12.0) and Visual Studio 2015(14.0).
  • Formatters are uniform between Visual and Eclipse.
  • A cmake configuration file was created to ease the integration of RINGMesh in other software which is generated by cmake.
  • This file is cmake/RINGMeshConfig.cmake. See doxygen documentation (doc/dox/cmake_integration.dox) for more details.