diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc index e3f02bf43dd26360d29b0cfe1c2d8c44fde21a05..85f32f7b25ff8d4b5d31703a960f91c9a66868c0 100644 --- a/dune/gfe/riemanniantrsolver.cc +++ b/dune/gfe/riemanniantrsolver.cc @@ -62,6 +62,13 @@ setup(const GridType& grid, // Create a multigrid solver // //////////////////////////////// +#ifdef HAVE_IPOPT + // First create an IPOpt base solver + QuadraticIPOptSolver<MatrixType, CorrectionType>* baseSolver = new QuadraticIPOptSolver<MatrixType,CorrectionType>; + baseSolver->verbosity_ = NumProc::QUIET; + baseSolver->tolerance_ = baseTolerance; +#else +#warning IPOpt not installed -- falling back onto a Gauss-Seidel base solver // First create a Gauss-seidel base solver TrustRegionGSStep<MatrixType, CorrectionType>* baseSolverStep = new TrustRegionGSStep<MatrixType, CorrectionType>; @@ -72,7 +79,8 @@ setup(const GridType& grid, baseTolerance, baseEnergyNorm, Solver::QUIET); - +#endif + // Make pre and postsmoothers TrustRegionGSStep<MatrixType, CorrectionType>* presmoother = new TrustRegionGSStep<MatrixType, CorrectionType>; TrustRegionGSStep<MatrixType, CorrectionType>* postsmoother = new TrustRegionGSStep<MatrixType, CorrectionType>;