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