diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 9d96bc5800e6141af8574c2aa32eda270ff4e17b..279945e4d300b12db67faae5af13924592d2383b 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -977,6 +977,16 @@ void GModel::deleteMeshPartitions()
   meshPartitions.clear();
 }
 
+void GModel::store(std::vector<MVertex*> &vertices, int dim,
+          std::map<int, std::vector<MElement*> > &entityMap,
+          std::map<int, std::map<int, std::string> > &physicalMap)
+{
+  _storeVerticesInEntities(vertices);
+  _storeElementsInEntities(entityMap);
+  _storePhysicalTagsInEntities(dim, physicalMap);
+  _associateEntityWithMeshVertices();
+}
+
 void GModel::storeChain(int dim,
                         std::map<int, std::vector<MElement*> > &entityMap,
                         std::map<int, std::map<int, std::string> > &physicalMap)
diff --git a/Geo/GModel.h b/Geo/GModel.h
index 6548888797b0e4d540ce4ce5fd2b5c8194b0ae7e..537d88bd14198d6aecf8ad2b4f1011349ddf7c8e 100644
--- a/Geo/GModel.h
+++ b/Geo/GModel.h
@@ -487,6 +487,11 @@ class GModel
                               std::vector<int> &elementary,
                               std::vector<int> &partition);
 
+  // for elements cut having new vertices                
+  void store(std::vector<MVertex*> &vertices, int dim,
+            std::map<int, std::vector<MElement*> > &entityMap,
+            std::map<int, std::map<int, std::string> > &physicalMap);
+
   // store mesh elements of a chain in a new elementary and physical entity
   void storeChain(int dim,
                   std::map<int, std::vector<MElement*> > &entityMap,