From dd4dc672e95807be0a942cb68b9eefb2fe1b7130 Mon Sep 17 00:00:00 2001
From: Oliver Sander <oliver.sander@tu-dresden.de>
Date: Sun, 29 Nov 2015 17:28:15 +0100
Subject: [PATCH] Use IPOpt as base solver, if available

---
 dune/gfe/mixedriemanniantrsolver.cc | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/dune/gfe/mixedriemanniantrsolver.cc b/dune/gfe/mixedriemanniantrsolver.cc
index fd7ed282..166a0630 100644
--- a/dune/gfe/mixedriemanniantrsolver.cc
+++ b/dune/gfe/mixedriemanniantrsolver.cc
@@ -76,7 +76,15 @@ setup(const GridType& grid,
     // ////////////////////////////////
     //   Create a multigrid solver
     // ////////////////////////////////
-
+#ifdef HAVE_IPOPT
+    // First create an IPOpt base solver
+    auto baseSolver0 = new QuadraticIPOptSolver<MatrixType00,CorrectionType0>;
+    baseSolver0->verbosity_ = NumProc::QUIET;
+    baseSolver0->tolerance_ = baseTolerance;
+    auto baseSolver1 = new QuadraticIPOptSolver<MatrixType11,CorrectionType1>;
+    baseSolver1->verbosity_ = NumProc::QUIET;
+    baseSolver1->tolerance_ = baseTolerance;
+#else
     // First create a Gauss-seidel base solver
     TrustRegionGSStep<MatrixType00, CorrectionType0>* baseSolverStep0 = new TrustRegionGSStep<MatrixType00, CorrectionType0>;
     TrustRegionGSStep<MatrixType11, CorrectionType1>* baseSolverStep1 = new TrustRegionGSStep<MatrixType11, CorrectionType1>;
@@ -96,6 +104,7 @@ setup(const GridType& grid,
                                                                                    baseTolerance,
                                                                                    baseNorm1,
                                                                                    Solver::QUIET);
+#endif
 
     // Transfer all Dirichlet data to the master processor
 #if 0
-- 
GitLab