From 7c6aab2cb4c07363c4623a1e411d8778a99c9f0c Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Thu, 14 Feb 2019 11:36:40 +0100 Subject: [PATCH] 4.1.5 --- CHANGELOG.txt | 5 +++-- Geo/MEdge.cpp | 24 +++++------------------- Geo/discreteFace.cpp | 7 ++----- doc/gmsh.html | 24 ++++++++++++------------ 4 files changed, 22 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 7b80f5ca44..9b12cc0262 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,6 @@ -4.1.5: OpenMP improvements; added classifySurfaces in API; small improvements -and bug fixes. +4.1.5 (February 14, 2019): improved OpenMP parallelization, STL remeshing, mesh +partitioning and high-order mesh optimization; added classifySurfaces in API; +bug fixes. 4.1.4 (February 3, 2019): improved ghost cell I/O; added getGhostElements, relocateNodes, getElementType, getElementFaceNodes, getElementEdgeNodes diff --git a/Geo/MEdge.cpp b/Geo/MEdge.cpp index 17389aae98..a27a2b8688 100644 --- a/Geo/MEdge.cpp +++ b/Geo/MEdge.cpp @@ -70,11 +70,10 @@ bool SortEdgeConsecutive(const std::vector<MEdge> &e, { if(e.empty()) return true; std::map<MVertex *, std::pair<MVertex *, MVertex *> > c; - // printf("EDGES = [ "); + for(size_t i = 0; i < e.size(); i++) { MVertex *v0 = e[i].getVertex(0); MVertex *v1 = e[i].getVertex(1); - // printf("(%d %d) ",v0->getNum(),v1->getNum()); std::map<MVertex *, std::pair<MVertex *, MVertex *> >::iterator it0 = c.find(v0); std::map<MVertex *, std::pair<MVertex *, MVertex *> >::iterator it1 = @@ -86,7 +85,7 @@ bool SortEdgeConsecutive(const std::vector<MEdge> &e, it0->second.second = v1; } else { - Msg::Error("wrong topology for a list of edges "); + Msg::Error("Wrong topology for a list of edges"); } } if(it1 == c.end()) @@ -96,19 +95,10 @@ bool SortEdgeConsecutive(const std::vector<MEdge> &e, it1->second.second = v0; } else { - Msg::Error("wrong topology for a list of edges "); + Msg::Error("Wrong topology for a list of edges "); } } } - // printf(" ] \n"); - - // std::map<MVertex *, std::pair<MVertex *, MVertex *> >::iterator it = - // c.begin(); while (it != c.end()){ - // printf("%8d -- %7d %7d - // \n",it->first->getNum(),it->second.first->getNum(),it->second.second ? - // it->second.second->getNum():-1); - // ++it; - // } while(!c.empty()) { std::vector<MVertex *> v; @@ -128,24 +118,20 @@ bool SortEdgeConsecutive(const std::vector<MEdge> &e, std::map<MVertex *, std::pair<MVertex *, MVertex *> >::iterator its = c.find(start); - // if (it == c.end()){ - // Msg::Error ("impossible to find starting point %d",start->getNum()); - // } - MVertex *prev = (its->second.second == start) ? its->second.first : its->second.second; MVertex *current = start; do { if(c.size() == 0) { - Msg::Warning("WRONG TOPOLOGY IN A WIRE"); + Msg::Warning("Wrong topology in a wire"); return false; } v.push_back(current); std::map<MVertex *, std::pair<MVertex *, MVertex *> >::iterator it = c.find(current); if(it == c.end() || it->first == NULL) { - Msg::Error("impossible to find %d", current->getNum()); + Msg::Error("Impossible to find %d", current->getNum()); } MVertex *v1 = it->second.first; MVertex *v2 = it->second.second; diff --git a/Geo/discreteFace.cpp b/Geo/discreteFace.cpp index 901b572929..c58e7e0de1 100644 --- a/Geo/discreteFace.cpp +++ b/Geo/discreteFace.cpp @@ -77,8 +77,6 @@ static void splitDiscreteEdge(discreteEdge *de, MVertex *v, GVertex *gv, int &TA de_new[1] = new discreteEdge(de->model(), ++TAG, gv, gv1); de->setSplit(de_new[0],de_new[1]); - // printf("splitting discrete edge %d\n",de->tag()); - int current = 0; de_new[current]->lines.push_back(de->lines[0]); @@ -100,12 +98,12 @@ static void splitDiscreteEdge(discreteEdge *de, MVertex *v, GVertex *gv, int &TA old_eds = f[i]->edges(); discreteFace *df = dynamic_cast<discreteFace *>(f[i]); if(!df){ - Msg::Error ("A discrete edge is adjacent to a face that is not a discrete face : cannot remesh"); + Msg::Error("A discrete edge is adjacent to a face that is not a discrete face - " + "cannot remesh"); return; } for (size_t j=0;j<old_eds.size();j++){ if (old_eds[j]==de){ - // printf("replacing %d by %d %d in %d\n",de->tag(),de_new[0]->tag(),de_new[1]->tag(),f[i]->tag()); new_eds.push_back(de_new[0]); new_eds.push_back(de_new[1]); new_eds[0]->addFace(f[i]); @@ -115,7 +113,6 @@ static void splitDiscreteEdge(discreteEdge *de, MVertex *v, GVertex *gv, int &TA new_eds.push_back(old_eds[j]); } f[i]->set(new_eds); - // printf("face %d has now %d edges\n",f[i]->tag(),new_eds.size()); } de->model()->add(de_new[0]); de->model()->add(de_new[1]); diff --git a/doc/gmsh.html b/doc/gmsh.html index ade096ee8f..c6666158f3 100644 --- a/doc/gmsh.html +++ b/doc/gmsh.html @@ -88,21 +88,21 @@ Public License (GPL)</a>: <ul> <li> <div class="highlight"> - Current stable release (version 4.1.4, 3 February 2019): + Current stable release (version 4.1.5, 14 February 2019): <ul> <li>Download Gmsh for - <a href="bin/Windows/gmsh-4.1.4-Windows64.zip">Windows 64-bit</a>, - <a href="bin/Windows/gmsh-4.1.4-Windows32.zip">Windows 32-bit</a>, - <a href="bin/Linux/gmsh-4.1.4-Linux64.tgz">Linux 64-bit</a>, - <a href="bin/Linux/gmsh-4.1.4-Linux32.tgz">Linux 32-bit</a> or - <a href="bin/MacOSX/gmsh-4.1.4-MacOSX.dmg">MacOS</a> - <li>Download the <a href="src/gmsh-4.1.4-source.tgz">source code</a> + <a href="bin/Windows/gmsh-4.1.5-Windows64.zip">Windows 64-bit</a>, + <a href="bin/Windows/gmsh-4.1.5-Windows32.zip">Windows 32-bit</a>, + <a href="bin/Linux/gmsh-4.1.5-Linux64.tgz">Linux 64-bit</a>, + <a href="bin/Linux/gmsh-4.1.5-Linux32.tgz">Linux 32-bit</a> or + <a href="bin/MacOSX/gmsh-4.1.5-MacOSX.dmg">MacOS</a> + <li>Download the <a href="src/gmsh-4.1.5-source.tgz">source code</a> <li>Download the Software Development Kit (SDK) for - <a href="bin/Windows/gmsh-4.1.4-Windows64-sdk.zip">Windows 64-bit</a>, - <a href="bin/Windows/gmsh-4.1.4-Windows32-sdk.zip">Windows 32-bit</a>, - <a href="bin/Linux/gmsh-4.1.4-Linux64-sdk.tgz">Linux 64-bit</a>, - <a href="bin/Linux/gmsh-4.1.4-Linux32-sdk.tgz">Linux 32-bit</a> or - <a href="bin/MacOSX/gmsh-4.1.4-MacOSX-sdk.tgz">MacOS</a> + <a href="bin/Windows/gmsh-4.1.5-Windows64-sdk.zip">Windows 64-bit</a>, + <a href="bin/Windows/gmsh-4.1.5-Windows32-sdk.zip">Windows 32-bit</a>, + <a href="bin/Linux/gmsh-4.1.5-Linux64-sdk.tgz">Linux 64-bit</a>, + <a href="bin/Linux/gmsh-4.1.5-Linux32-sdk.tgz">Linux 32-bit</a> or + <a href="bin/MacOSX/gmsh-4.1.5-MacOSX-sdk.tgz">MacOS</a> </ul> </div> <p> -- GitLab