Skip to content
Snippets Groups Projects
Commit 6d4842d9 authored by Norihiro Watanabe's avatar Norihiro Watanabe
Browse files

[Math/Eigen] better error message when PardisoLU is not available

parent be6a27db
No related branches found
No related tags found
No related merge requests found
......@@ -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.");
......
......@@ -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());
}
......
......@@ -23,10 +23,8 @@ struct EigenOption final
{
CG,
BiCGSTAB,
SparseLU
#ifdef USE_MKL
, PardisoLU
#endif
SparseLU,
PardisoLU
};
/// Preconditioner type
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment