From 8cb3442ebf1bd280d32a49a2b78ccce6113b3f29 Mon Sep 17 00:00:00 2001
From: Simon Praetorius <simon.praetorius@tu-dresden.de>
Date: Thu, 7 Aug 2014 13:55:41 +0000
Subject: [PATCH] Initfile and LinearSolver corrected

---
 AMDiS/src/Initfile.h            | 10 +++++-----
 AMDiS/src/solver/LinearSolver.h |  3 ++-
 demo/init/ellipt.dat.3d         |  2 +-
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/AMDiS/src/Initfile.h b/AMDiS/src/Initfile.h
index 36cc97bc..74fe21bc 100644
--- a/AMDiS/src/Initfile.h
+++ b/AMDiS/src/Initfile.h
@@ -254,9 +254,9 @@ namespace AMDiS {
       size_t pos = begBrackets.find(val[0]);
       if (pos == std::string::npos)
         hasBrackets = false;
-/*       if (hasBrackets && val[val.length() - 1] != endBrackets[pos]) */
-/*         throw WrongVectorFormat("begin and end bracket are different in" */
-/*             " value '" + val + "'"); */
+       if (hasBrackets && val[val.length() - 1] != endBrackets[pos])
+        throw WrongVectorFormat("begin and end bracket are different in"
+            " value '" + val + "'"); 
       size_t oldPos = (hasBrackets ? 1 : 0);
       size_t curDelim = 0;
       typedef typename Container::value_type ValueType;
@@ -295,8 +295,8 @@ namespace AMDiS {
     {
       std::vector<T> temp_vec;
       getContainer(valStr, temp_vec);
-/*       if (static_cast<int>(temp_vec.size()) != c.getSize()) */
-/*         throw WrongVectorSize("wrong number of entries for WorldVector"); */
+       if (static_cast<int>(temp_vec.size()) != c.getSize())
+        throw WrongVectorSize("wrong number of entries for WorldVector"); 
   
       for (size_t i = 0; i < temp_vec.size(); i++)
         c[i] = temp_vec[i];
diff --git a/AMDiS/src/solver/LinearSolver.h b/AMDiS/src/solver/LinearSolver.h
index 2e06cd2b..bfd1b1ca 100644
--- a/AMDiS/src/solver/LinearSolver.h
+++ b/AMDiS/src/solver/LinearSolver.h
@@ -120,6 +120,7 @@ namespace AMDiS {
       MSG("LinearSolver::solveSystem()\n");
     
       residual = -1.0;
+      rel_residual = -1.0;
       int error_code = solveLinearSystem(A, x, b, createMatrixData, storeMatrixData);
       
       TEST_EXIT(error_code == 0)
@@ -140,7 +141,7 @@ namespace AMDiS {
 	  
 	// test for relative tolerance
 	TEST_EXIT((isNumber(rel_residual) && (rel_residual < 0.0  || relative < 1.e-30 || rel_residual <= relative))
-		  || !breakTolNotReached)
+		  || (residual < 1.e-30) || !breakTolNotReached)
 	  ("Relative tolerance rtol = %e could not be reached!\n Set tolerance by '->solver->relative tolerance:' \n", relative);
       }
       return error_code;
diff --git a/demo/init/ellipt.dat.3d b/demo/init/ellipt.dat.3d
index 289cabb3..f0cb7868 100644
--- a/demo/init/ellipt.dat.3d
+++ b/demo/init/ellipt.dat.3d
@@ -1,7 +1,7 @@
 dimension of world:             3
 
 elliptMesh->macro file name:    ./macro/macro.stand.3d
-elliptMesh->global refinements: 0
+elliptMesh->global refinements: 1
 
 ellipt->mesh:                   elliptMesh
 ellipt->dim:                    3
-- 
GitLab