diff --git a/opm/core/linalg/LinearSolverFactory.cpp b/opm/core/linalg/LinearSolverFactory.cpp index d2bd3120..f8eca83d 100644 --- a/opm/core/linalg/LinearSolverFactory.cpp +++ b/opm/core/linalg/LinearSolverFactory.cpp @@ -61,8 +61,19 @@ namespace Opm LinearSolverFactory::LinearSolverFactory(const parameter::ParameterGroup& param) { +#if HAVE_SUITESPARSE_UMFPACK_H + std::string default_solver = "umfpack"; +#elif HAVE_DUNE_ISTL + std::string default_solver = "istl"; +#elif HAVE_PETSC + std::string default_solver = "petsc"; +#else + std::string default_solver = "no_solver_available"; + OPM_THROW(std::runtime_error, "No linear solver available, you must have UMFPACK , dune-istl or Petsc installed to use LinearSolverFactory."); +#endif + const std::string ls = - param.getDefault("linsolver", "umfpack"); + param.getDefault("linsolver", default_solver); if (ls == "umfpack") { #if HAVE_SUITESPARSE_UMFPACK_H