From 9608207926960f0af64fbbacf6ae6658b7e3427a Mon Sep 17 00:00:00 2001 From: Rainer Backofen <rainer.backofen@tu-dresden.de> Date: Wed, 1 Jun 2011 07:30:25 +0000 Subject: [PATCH] break if Umfpack does not reach tolerance --- AMDiS/src/UmfPackSolver.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/AMDiS/src/UmfPackSolver.h b/AMDiS/src/UmfPackSolver.h index a07f1b79..795153ce 100644 --- a/AMDiS/src/UmfPackSolver.h +++ b/AMDiS/src/UmfPackSolver.h @@ -60,8 +60,9 @@ namespace AMDiS { template< typename Vector> int solve(const Matrix& A, Vector& x, Vector& b) { - if (!solver) { - if (!symmetric_strategy) + FUNCNAME("(UmfPackSolver.h)::solve()"); + if (!solver) { + if (!symmetric_strategy) solver = new mtl::matrix::umfpack::solver<matrix_type>(A); else solver = new mtl::matrix::umfpack::solver<matrix_type>(A, UMFPACK_STRATEGY_SYMMETRIC); @@ -84,7 +85,7 @@ namespace AMDiS { oem.setErrorCode(code); std::cout << "UmfPackSolver: ||b-Ax|| = " << residual << "\n"; if (residual > oem.getTolerance()) { - WARNING("Tolerance tol=%e could not be reached!\n", oem.getTolerance()); + ERROR_EXIT("Tolerance tol=%e could not be reached!\n Set tolerance by '->solver->tolerance:' \n", oem.getTolerance()); } } return code; -- GitLab