diff --git a/dumux/linear/genericistlbackend.hh b/dumux/linear/genericistlbackend.hh index 75f10fc35b946a9abd86bc5b6bcb8861193ae97c..f06f0e7d53cf1306ef022500d0dac93e3e6c244b 100644 --- a/dumux/linear/genericistlbackend.hh +++ b/dumux/linear/genericistlbackend.hh @@ -120,12 +120,20 @@ public: { Dune::initSolverFactories<typename AMGTraits::LinearOperator>(); } + std::shared_ptr<Dune::InverseOperator<Vector, Vector>> solver; try{ - std::shared_ptr<Dune::InverseOperator<Vector, Vector>> solver = getSolverFromFactory(fop, params_); - Dune::InverseOperatorResult res; + solver = getSolverFromFactory(fop, params_); + } + catch(Dune::Exception& e){ + std::cerr << "Could not create solver with factory" << std::endl; + std::cerr << e.what() << std::endl; + throw e; + } + try + { solver->apply(x,b,result_); }catch(Dune::Exception& e){ - std::cerr << "Could not create solver" << std::endl; + std::cerr << "Exception thrown during linear solve." << std::endl; std::cerr << e.what() << std::endl; throw e; }