From 26882a5f1913e91b53c9aacf59e32ebc5e57cc29 Mon Sep 17 00:00:00 2001
From: Thomas Witkowski <thomas.witkowski@gmx.de>
Date: Tue, 9 Sep 2008 15:18:06 +0000
Subject: [PATCH] * Bug fix in AdaptInstationary * Added some headers to
 AMDiS.h

---
 AMDiS/src/AMDiS.h              |  1 +
 AMDiS/src/AdaptInstationary.cc | 62 ++++++++++++++++++++--------------
 AMDiS/src/Traverse.cc          |  7 ++--
 3 files changed, 42 insertions(+), 28 deletions(-)

diff --git a/AMDiS/src/AMDiS.h b/AMDiS/src/AMDiS.h
index 8af56d6f..0b08c511 100644
--- a/AMDiS/src/AMDiS.h
+++ b/AMDiS/src/AMDiS.h
@@ -94,6 +94,7 @@
 #include "Traverse.h"
 #include "Triangle.h"
 #include "ValueWriter.h"
+#include "VtkWriter.h"
 #include "demangle.h"
 #include "parareal/ProblemBase.h"
 #include "parareal/AdaptParaReal.h"
diff --git a/AMDiS/src/AdaptInstationary.cc b/AMDiS/src/AdaptInstationary.cc
index b989a83f..eca9783c 100644
--- a/AMDiS/src/AdaptInstationary.cc
+++ b/AMDiS/src/AdaptInstationary.cc
@@ -113,37 +113,49 @@ namespace AMDiS {
       adaptInfo_->incTimestepIteration();
 
       if (!fixedTimestep_ && 
-	 !adaptInfo_->timeToleranceReached() &&
-	 !adaptInfo_->getTimestep() <= adaptInfo_->getMinTimestep()) 
-	{
-	  adaptInfo_->setTime(adaptInfo_->getTime() - adaptInfo_->getTimestep());
-	  adaptInfo_->setTimestep(adaptInfo_->getTimestep() * time_delta_1);
-	  continue;
-	}
+	  !adaptInfo_->timeToleranceReached() &&
+	  !adaptInfo_->getTimestep() <= adaptInfo_->getMinTimestep()) {
+
+	adaptInfo_->setTime(adaptInfo_->getTime() - adaptInfo_->getTimestep());
+	adaptInfo_->setTimestep(adaptInfo_->getTimestep() * time_delta_1);
+	continue;
+      }
 
       adaptInfo_->setSpaceIteration(0);
+
+
+      /* === Do only space iterations only if the maximum is higher than 0. === */
+
+      if (adaptInfo_->getMaxSpaceIteration() > 0) {
     
-      do {
-	problemIteration_->beginIteration(adaptInfo_);
-
-	if (problemIteration_->oneIteration(adaptInfo_, FULL_ITERATION)) {
-	  if (!fixedTimestep_ && 
-	     !adaptInfo_->timeToleranceReached() &&
-	     !adaptInfo_->getTimestep() <= adaptInfo_->getMinTimestep()) 
-	    {
-	      adaptInfo_->setTime(adaptInfo_->getTime() - adaptInfo_->getTimestep());
-	      adaptInfo_->setTimestep(adaptInfo_->getTimestep() * time_delta_1);
-	      problemIteration_->endIteration(adaptInfo_);
-	      adaptInfo_->incSpaceIteration();
-	      break;
-	    }	
-	}
+	/* === Space iterations === */
+	do {
+	  problemIteration_->beginIteration(adaptInfo_);
+	  
+	  if (problemIteration_->oneIteration(adaptInfo_, FULL_ITERATION)) {
+	    if (!fixedTimestep_ && 
+		!adaptInfo_->timeToleranceReached() &&
+		!adaptInfo_->getTimestep() <= adaptInfo_->getMinTimestep()) 
+	      {
+		adaptInfo_->setTime(adaptInfo_->getTime() - adaptInfo_->getTimestep());
+		adaptInfo_->setTimestep(adaptInfo_->getTimestep() * time_delta_1);
+		problemIteration_->endIteration(adaptInfo_);
+		adaptInfo_->incSpaceIteration();
+		break;
+	      }	
+	  }
+
+	  adaptInfo_->incSpaceIteration();
+	  problemIteration_->endIteration(adaptInfo_);
+	  
+	} while(!adaptInfo_->spaceToleranceReached() && 
+		adaptInfo_->getSpaceIteration() <= adaptInfo_->getMaxSpaceIteration());
 
-	adaptInfo_->incSpaceIteration();
+      } else {
 	problemIteration_->endIteration(adaptInfo_);
+      }
+
 
-      } while(!adaptInfo_->spaceToleranceReached() && 
-	      adaptInfo_->getSpaceIteration() <= adaptInfo_->getMaxSpaceIteration());
     } while(!adaptInfo_->timeToleranceReached() &&
 	    !adaptInfo_->getTimestep() <= adaptInfo_->getMinTimestep() && 
 	    adaptInfo_->getTimestepIteration() <= adaptInfo_->getMaxTimestepIteration());  
diff --git a/AMDiS/src/Traverse.cc b/AMDiS/src/Traverse.cc
index b54d11d5..6d1c6170 100644
--- a/AMDiS/src/Traverse.cc
+++ b/AMDiS/src/Traverse.cc
@@ -869,10 +869,11 @@ namespace AMDiS {
 
   ElInfo* TraverseStack::traverseNeighbour2d(ElInfo* elinfo_old, int neighbour)
   {
-    FUNCNAME("TraverseStack::traverseNeighbour2d");
-    Triangle   *el, *el2, *sav_el;
+    FUNCNAME("TraverseStack::traverseNeighbour2d()");
+
+    Triangle *el, *el2, *sav_el;
     ElInfo *old_elinfo, *elinfo, *elinfo2;
-    int     i, nb, opp_vertex, stack2_used;
+    int i, nb, opp_vertex, stack2_used;
 
     static int coarse_nb[3][3] = {{-2,-2,-2}, {2,-1,1}, {-1,2,0}};
     /* father.neigh[coarse_nb[i][j]] == child[i-1].neigh[j] */
-- 
GitLab