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