From 731cf88406ae4d62e5ea818e70aecf832b2ed2e6 Mon Sep 17 00:00:00 2001
From: Marco Agnese <m.agnese13@imperial.ac.uk>
Date: Thu, 14 Jul 2016 15:32:04 +0100
Subject: [PATCH] [bugfix] throw error when LDL factorisation fails

---
 dune/istl/ldl.hh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dune/istl/ldl.hh b/dune/istl/ldl.hh
index ecb1d6061..8c29a3eff 100644
--- a/dune/istl/ldl.hh
+++ b/dune/istl/ldl.hh
@@ -286,7 +286,7 @@ namespace Dune {
 
       double Info [AMD_INFO];
       if(amd_order (dimMat, ldlMatrix_.getColStart(), ldlMatrix_.getRowIndex(), P_, (double *) NULL, Info) < AMD_OK)
-        std::cout<<"WARNING: call to AMD failed."<<std::endl;
+        DUNE_THROW(InvalidStateException,"Error: AMD failed!");
       if(verbose_ > 0)
         amd_info (Info);
       // compute the symbolic factorisation
@@ -304,7 +304,7 @@ namespace Dune {
       delete [] Lnz_;
 
       if(rank!=dimMat)
-        std::cout<<"WARNING: matrix is singular."<<std::endl;
+        DUNE_THROW(InvalidStateException,"Error: LDL factorisation failed!");
     }
 
     LDLMatrix ldlMatrix_;
-- 
GitLab