From 818f0989c582331babc5560cde370c74fdfb451a Mon Sep 17 00:00:00 2001
From: Sebastien Blaise <sebastien.blaise@uclouvain.be>
Date: Thu, 22 Oct 2015 09:26:59 +0000
Subject: [PATCH] contrib quality optimizer interface

---
 contrib/HighOrderMeshOptimizer/OptHomRun.cpp          | 2 ++
 contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp | 3 +++
 contrib/MeshQualityOptimizer/MeshQualityOptimizer.h   | 4 +++-
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/contrib/HighOrderMeshOptimizer/OptHomRun.cpp b/contrib/HighOrderMeshOptimizer/OptHomRun.cpp
index 51a05488bd..87844e29c5 100644
--- a/contrib/HighOrderMeshOptimizer/OptHomRun.cpp
+++ b/contrib/HighOrderMeshOptimizer/OptHomRun.cpp
@@ -799,6 +799,8 @@ void HighOrderMeshOptimizerNew(GModel *gm, OptHomParameters &p)
   par.patchDef = &patchDef;
   par.displayInterv = 30;
   par.verbose = 4;
+  par.logFileName = "";
+  par.nCurses = false;
 
   ObjContribScaledNodeDispSq<ObjContribFuncSimple> nodeDistFunc(p.weight,
                                                                 Patch::LS_MAXNODEDIST);
diff --git a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp
index faf6a8452b..5ea5c00a92 100644
--- a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp
+++ b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp
@@ -132,7 +132,10 @@ void MeshQualityOptimizer(GModel *gm, MeshQualOptParameters &p)
   par.patchDef = &patchDef;
   par.displayInterv = 20;
   par.verbose = 4;
+  par.nCurses = p.nCurses;
+  par.logFileName = p.logFileName;
 
+  
   ObjContribScaledNodeDispSq<ObjContribFuncSimple> nodeDistFunc(p.weight,
                                                                 Patch::LS_MINEDGELENGTH);
   ObjContribIdealJac<ObjContribFuncBarrierMovMin> minIdealJacBarFunc(1.);
diff --git a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.h b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.h
index 006159c25d..3959e04834 100644
--- a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.h
+++ b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.h
@@ -49,6 +49,8 @@ struct MeshQualOptParameters {
   int maxPatchAdapt;                                                  // Max. nb. of patch adaptation iterations (if adaptive)
   int maxLayersAdaptFact;                                             // Growth factor in number of layers for patch adaptation (if adaptive)
   double distanceAdaptFact;                                           // Growth factor in distance factor for patch adaptation (if adaptive)
+  int nCurses;                                                        // Enhanced text output
+  std::string logFileName;                                            // External log file
 
   int SUCCESS ; // 0 --> success , 1 --> Not converged
   double minIdealJac, maxIdealJac; // after optimization, range of jacobians
@@ -61,7 +63,7 @@ struct MeshQualOptParameters {
       minTargetIdealJac(0.1), minTargetInvCondNum(0.1), weight(1.),
       nbLayers (6) , dim(3) , maxOptIter(300), maxBarrierUpdates(50),
       onlyVisible(true), distanceFactor(12), fixBndNodes(false), strategy(0),
-      maxPatchAdapt(3), maxLayersAdaptFact(2), distanceAdaptFact(2.), CPU(0.),
+    maxPatchAdapt(3), maxLayersAdaptFact(2), distanceAdaptFact(2.), nCurses(1), logFileName(""), CPU(0.),
       minIdealJac(0.), maxIdealJac(0.), minInvCondNum(0.), maxInvCondNum(0.),
       SUCCESS(-1)
   {
-- 
GitLab