From f53c4a05eb473b6b87fef71d1fa0bc9efab53c0a Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 28 Jan 2008 16:00:19 +0000
Subject: [PATCH] allow multiple optimization passes

---
 Mesh/Generator.cpp | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index af49168454..84a7ac322d 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -1,4 +1,4 @@
-// $Id: Generator.cpp,v 1.131 2008-01-28 11:05:33 geuzaine Exp $
+// $Id: Generator.cpp,v 1.132 2008-01-28 16:00:19 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -403,12 +403,13 @@ void GenerateMesh(int ask)
     std::for_each(m->firstFace(), m->lastFace(), orientMeshGFace());
   
   // Optimize quality
-  if(m->getMeshStatus() == 3 && CTX.mesh.optimize)
-    OptimizeMesh(m);
-  // Optimize quality with netgen
-  if(m->getMeshStatus() == 3 && CTX.mesh.optimize_netgen)
-    OptimizeMeshNetgen(m);
-  
+  for(int i = 0; i < std::max(CTX.mesh.optimize, CTX.mesh.optimize_netgen); i++){
+    if(m->getMeshStatus() == 3 && CTX.mesh.optimize > i)
+      OptimizeMesh(m);
+    if(m->getMeshStatus() == 3 && CTX.mesh.optimize_netgen > i)
+      OptimizeMeshNetgen(m);
+  }
+
   // Create high order elements
   if(m->getMeshStatus() && CTX.mesh.order > 1) 
     SetOrderN(m, CTX.mesh.order, CTX.mesh.second_order_linear, 
-- 
GitLab