diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index df7b22e99a2c024973df4e6ffd049d631a252e04..3a00394b27fe3d69bb0304c76c8bd55ea05ecdf0 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -171,10 +171,12 @@ GModel *GModel::findByName(const std::string &name, const std::string &fileName) return 0; } -void GModel::destroy() +void GModel::destroy(bool keepName) { - _name.clear(); - _fileNames.clear(); + if(!keepName){ + _name.clear(); + _fileNames.clear(); + } _maxVertexNum = _maxElementNum = 0; _checkPointedMaxVertexNum = _checkPointedMaxElementNum = 0; diff --git a/Geo/GModel.h b/Geo/GModel.h index acfc1c8db59de05090fb251f3c366fca5d17d2fb..e1a6f3148c7737c6b960e38c44b5de37dceb642d 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -178,8 +178,8 @@ class GModel // *not* have a link to the fileName static GModel *findByName(const std::string &name, const std::string &fileName=""); - // delete everything in a GModel - void destroy(); + // delete everything in a GModel (optionally keep name and fileName) + void destroy(bool keepName=false); // get/set global vertex/element num int getMaxVertexNumber(){ return _maxVertexNum; } diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index cdc4c1fa21a180b7a197134c8fa117813ad63ef2..fdc453021cc3042f91bb4bc75a5330decc1e73fa 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -7028,7 +7028,7 @@ yyreduce: ClearProject(); } else if(!strcmp((yyvsp[(2) - (3)].c), "Model")){ - GModel::current()->destroy(); + GModel::current()->destroy(true); // destroy, but keep name/filename GModel::current()->getGEOInternals()->destroy(); } else if(!strcmp((yyvsp[(2) - (3)].c), "Physicals")){ diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index c1d43b6980a3235c9e4084386aac862d80ca4667..e557d106d527661120bd4d7b83e89059b5051422 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -2477,7 +2477,7 @@ Delete : ClearProject(); } else if(!strcmp($2, "Model")){ - GModel::current()->destroy(); + GModel::current()->destroy(true); // destroy, but keep name/filename GModel::current()->getGEOInternals()->destroy(); } else if(!strcmp($2, "Physicals")){