From c49beabaa198cf2bd9a1862740671a381b2573d6 Mon Sep 17 00:00:00 2001
From: Thomas Witkowski <thomas.witkowski@gmx.de>
Date: Thu, 23 Sep 2010 11:23:58 +0000
Subject: [PATCH] Moved tools directory up.

---
 demo/init/ellipt.dat.2d |  6 +++---
 demo/src/ellipt.cc      | 36 ++++++++++++++++++++++++++++++++++--
 2 files changed, 37 insertions(+), 5 deletions(-)

diff --git a/demo/init/ellipt.dat.2d b/demo/init/ellipt.dat.2d
index 11b7aba4..84855f2b 100644
--- a/demo/init/ellipt.dat.2d
+++ b/demo/init/ellipt.dat.2d
@@ -1,7 +1,7 @@
 dimension of world:             2
 
 elliptMesh->macro file name:    ./macro/macro.stand.2d
-elliptMesh->global refinements: 0
+elliptMesh->global refinements: 2
 
 ellipt->mesh:                   elliptMesh
 ellipt->dim:                    2
@@ -19,11 +19,11 @@ ellipt->estimator->error norm:  1   % 1: H1_NORM, 2: L2_NORM
 ellipt->estimator->C0:          0.1 % constant of element residual
 ellipt->estimator->C1:          0.1 % constant of jump residual
 
-ellipt->marker->strategy:       2 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
+ellipt->marker->strategy:       0 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
 ellipt->marker->MSGamma:        0.5
 
 ellipt->adapt->tolerance:       1e-4
-ellipt->adapt->max iteration:   10
+ellipt->adapt->max iteration:   0
 ellipt->adapt->refine bisections:  2
 
 ellipt->output->filename:       ellipt
diff --git a/demo/src/ellipt.cc b/demo/src/ellipt.cc
index 93a2d7d1..9417c1c9 100644
--- a/demo/src/ellipt.cc
+++ b/demo/src/ellipt.cc
@@ -83,9 +83,41 @@ int main(int argc, char* argv[])
 
 
   // ===== start adaption loop =====
-  adapt.adapt();
+  //  adapt.adapt();
+
+
+
+  // Speichert hier bei jedem 2D-Element die DOFs auf dem Element.
+  std::vector<DegreeOfFreedom> localDofs(3);
+  // Damit wir jeden DOF nur einmal aufrufen, speichern wir hier jeden
+  // besuchten DOF.
+  std::set<DegreeOfFreedom> dofsVisited;
+
+  // Okay, einfach das Gitter traversieren.
+  TraverseStack stack;
+  ElInfo *elInfo = stack.traverseFirst(ellipt.getMesh(), -1, Mesh::CALL_LEAF_EL | Mesh::FILL_COORDS);
+  while (elInfo) {
+    // Zuerst lassen wir uns die DOFs des aktuellen Elements in localDofs abspeichern.
+    ellipt.getFeSpace()->getBasisFcts()->getLocalIndices(elInfo->getElement(), 
+							 ellipt.getFeSpace()->getAdmin(),
+							 localDofs);
+
+    // Dann durchlaufen wir die drei DOFs (ist also fix für lineare Elemente in 2D!!!!)
+    for (int i = 0; i < 3; i++) {
+      // Falls der DOF noch nicht ausgegeben wurde.
+      if (dofsVisited.count(localDofs[i]) == 0) {
+	// Gib globalen DOF Index und seine Welt-Koordinaten aus.
+	std::cout << "DOF " << localDofs[i] << ": " 
+		  << elInfo->getCoord(i)[0] << " " << elInfo->getCoord(i)[1] << "\n";
+	
+	// Merke dir den DOF, dass er schon ausgegebe  wurde.
+	dofsVisited.insert(localDofs[i]);
+      }
+    }
+
+    elInfo = stack.traverseNext(elInfo);
+  }
 
-  ellipt.writeFiles(adaptInfo, true);
 }
 
 
-- 
GitLab