diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index c4a7d50a6edf8c60d2a42317cc05286a47910efe..466a04c8e1e14b116e73581ebc9f1ec28506703f 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -541,11 +541,10 @@ int GModel::mesh(int dimension) bool GModel::setAllVolumesPositive() { bool ok = true; - for(riter it = regions.begin(); it != regions.end(); ++it) { - int nbEl = (*it)->getNumMeshElements(); - for (int iEl = 0; iEl < nbEl; ++iEl) - ok = (ok && (*it)->getMeshElement(iEl)->setVolumePositive()); - } + for(riter it = regions.begin(); it != regions.end(); ++it) + for (int i = 0; i < (*it)->getNumMeshElements(); ++i) + if(!(*it)->getMeshElement(i)->setVolumePositive()) + ok = false; return ok; } diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp index fba73a065ac05d54a6c137f3c2c93f43d08cf207..d2753f1db59fffd8e47731a195c2f2494e25d8de 100644 --- a/Mesh/Generator.cpp +++ b/Mesh/Generator.cpp @@ -671,8 +671,6 @@ static void Mesh3D(GModel *m) } } - m->setAllVolumesPositive(); - double t2 = Cpu(); CTX::instance()->meshTimer[2] = t2 - t1; Msg::StatusBar(true, "Done meshing 3D (%g s)", CTX::instance()->meshTimer[2]); @@ -784,6 +782,8 @@ void GenerateMesh(GModel *m, int ask) } } + m->setAllVolumesPositive(); + // Subdivide into quads or hexas if(m->getMeshStatus() == 2 && CTX::instance()->mesh.algoSubdivide == 1) RefineMesh(m, CTX::instance()->mesh.secondOrderLinear, true);