diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp index aacb75f4686d5572759ea9fc666e3997bc3a029d..e4a13b1f3f5f58addf443275fbef4412c7a5e0b2 100644 --- a/Mesh/Generator.cpp +++ b/Mesh/Generator.cpp @@ -408,9 +408,6 @@ static void Mesh2D(GModel *m) } } - // use "full quad" subdivision - if(CTX.mesh.algo_subdivide == 1) RefineMesh(m, false, true); - // gmshCollapseSmallEdges (*m); double t2 = Cpu(); @@ -456,9 +453,6 @@ static void Mesh3D(GModel *m) for(unsigned int i = 0; i < connected.size(); i++) MeshDelaunayVolume(connected[i]); - // Use "full hexa" subdivision? - if(CTX.mesh.algo_subdivide == 2) RefineMesh(m, false, false, true); - double t2 = Cpu(); CTX.mesh_timer[2] = t2 - t1; Msg::Info("Mesh 3D complete (%g s)", CTX.mesh_timer[2]); @@ -564,6 +558,12 @@ void GenerateMesh(GModel *m, int ask) if(CTX.mesh.optimize_netgen > i) OptimizeMeshNetgen(m); } } + + // Subdivide into quads or hexas + if(m->getMeshStatus() == 2 && CTX.mesh.algo_subdivide == 1) + RefineMesh(m, false, true); + else if(m->getMeshStatus() == 3 && CTX.mesh.algo_subdivide == 2) + RefineMesh(m, false, false, true); // Create high order elements if(m->getMeshStatus() && CTX.mesh.order > 1)