From 6d4842d9004751726ca12b53930744b3e18e323f Mon Sep 17 00:00:00 2001
From: Norihiro Watanabe <norihiro.watanabe@ufz.de>
Date: Mon, 7 Nov 2016 07:44:19 +0100
Subject: [PATCH] [Math/Eigen] better error message when PardisoLU is not
 available

---
 MathLib/LinAlg/Eigen/EigenLinearSolver.cpp | 8 ++++++--
 MathLib/LinAlg/Eigen/EigenOption.cpp       | 2 --
 MathLib/LinAlg/Eigen/EigenOption.h         | 6 ++----
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp b/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp
index bc22dc04cd8..858987d7f8e 100644
--- a/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp
+++ b/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp
@@ -178,13 +178,17 @@ EigenLinearSolver::EigenLinearSolver(
             _solver = details::createIterativeSolver(_option.solver_type,
                                                      _option.precon_type);
             return;
-#ifdef USE_MKL
         case EigenOption::SolverType::PardisoLU: {
+#ifdef USE_MKL
             using SolverType = Eigen::PardisoLU<EigenMatrix::RawMatrixType>;
             _solver.reset(new details::EigenDirectLinearSolver<SolverType>);
             return;
-        }
+#else
+            OGS_FATAL(
+                "The code is not compiled with Intel MKL. Linear solver type "
+                "PardisoLU is not available.");
 #endif
+        }
     }
 
     OGS_FATAL("Invalid Eigen linear solver type. Aborting.");
diff --git a/MathLib/LinAlg/Eigen/EigenOption.cpp b/MathLib/LinAlg/Eigen/EigenOption.cpp
index a6200c8e97a..8bd700d93b6 100644
--- a/MathLib/LinAlg/Eigen/EigenOption.cpp
+++ b/MathLib/LinAlg/Eigen/EigenOption.cpp
@@ -29,10 +29,8 @@ EigenOption::SolverType EigenOption::getSolverType(const std::string &solver_nam
         return SolverType::BiCGSTAB;
     if (solver_name == "SparseLU")
         return SolverType::SparseLU;
-#ifdef USE_MKL
     if (solver_name == "PardisoLU")
         return SolverType::PardisoLU;
-#endif
 
     OGS_FATAL("Unknown Eigen solver type `%s'", solver_name.c_str());
 }
diff --git a/MathLib/LinAlg/Eigen/EigenOption.h b/MathLib/LinAlg/Eigen/EigenOption.h
index d90997fa1b6..70b4329908f 100644
--- a/MathLib/LinAlg/Eigen/EigenOption.h
+++ b/MathLib/LinAlg/Eigen/EigenOption.h
@@ -23,10 +23,8 @@ struct EigenOption final
     {
         CG,
         BiCGSTAB,
-        SparseLU
-#ifdef USE_MKL
-        , PardisoLU
-#endif
+        SparseLU,
+        PardisoLU
     };
 
     /// Preconditioner type
-- 
GitLab