From f9e40e6c85c389c58c3c952382700a476de0f034 Mon Sep 17 00:00:00 2001
From: Thomas Witkowski <thomas.witkowski@gmx.de>
Date: Fri, 12 Nov 2010 14:49:53 +0000
Subject: [PATCH] Add some more debug functions.

---
 AMDiS/src/ArhReader.cc          |  2 +-
 AMDiS/src/Debug.cc              | 22 ++++++++++++++++++++++
 AMDiS/src/Debug.h               |  3 +++
 AMDiS/src/SecondOrderTerm.cc    |  2 +-
 AMDiS/src/ZeroOrderAssembler.cc |  6 +++---
 5 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/AMDiS/src/ArhReader.cc b/AMDiS/src/ArhReader.cc
index 2249c29d..912cd865 100644
--- a/AMDiS/src/ArhReader.cc
+++ b/AMDiS/src/ArhReader.cc
@@ -46,7 +46,7 @@ namespace AMDiS {
       file.read(reinterpret_cast<char*>(&nStructureCodes), 4);
       file.read(reinterpret_cast<char*>(&codeSize), 4);
 
-      vector<unsigned long> structureCode(nStructureCodes);
+      vector<unsigned long int> structureCode(nStructureCodes);
       file.read(reinterpret_cast<char*>(&(structureCode[0])), 8 * nStructureCodes);
 
       MeshStructure elementStructure;
diff --git a/AMDiS/src/Debug.cc b/AMDiS/src/Debug.cc
index 645bcf77..ed2338e5 100644
--- a/AMDiS/src/Debug.cc
+++ b/AMDiS/src/Debug.cc
@@ -557,6 +557,28 @@ namespace AMDiS {
     }
 
 
+    void exportDofVectorByCoords(const DOFVector<double>* vec, 
+				 std::string filename)
+    {
+      DOFVector<WorldVector<double> > coords(vec->getFeSpace(), "dofCoords");
+      vec->getFeSpace()->getMesh()->getDofIndexCoords(vec->getFeSpace(), coords);
+      int dim = vec->getFeSpace()->getMesh()->getDim();
+
+      std::ofstream file;
+      file.open(filename.c_str());
+      file << vec->getUsedSize() << "\n";
+
+      DOFIterator<WorldVector<double> > it(&coords, USED_DOFS);
+      for (it.reset(); !it.end(); ++it) {
+        for (int i = 0; i < dim; i++)
+	  file << (*it)[i] << " ";
+        file << (*vec)[it.getDOFIndex()] << "\n";
+      }
+    
+      file.close();
+    }
+
+
     void createSortedDofs(Mesh *mesh, ElementIdxToDofs &elMap)
     {
       FUNCNAME("debug::dbgCreateElementMap()");
diff --git a/AMDiS/src/Debug.h b/AMDiS/src/Debug.h
index 6c383162..3112e75e 100644
--- a/AMDiS/src/Debug.h
+++ b/AMDiS/src/Debug.h
@@ -141,6 +141,9 @@ namespace AMDiS {
 
     int getLocalNeighbourIndex(Mesh *mesh, int elIndex, int neighIndex);
 
+    void exportDofVectorByCoords(const DOFVector<double>* vec, 
+				 std::string filename);
+
     /** \brief
      * Traverse a mesh and store for each element all its vertex DOFs in local sorted 
      * order (by values).
diff --git a/AMDiS/src/SecondOrderTerm.cc b/AMDiS/src/SecondOrderTerm.cc
index 85ce9e7c..e9fc26a8 100644
--- a/AMDiS/src/SecondOrderTerm.cc
+++ b/AMDiS/src/SecondOrderTerm.cc
@@ -194,7 +194,7 @@ namespace AMDiS {
   {
     const DimVec<WorldVector<double> > &grdLambda = elInfo->getGrdLambda();
     for (int iq = 0; iq < nPoints; iq++)
-      l1lt(grdLambda, *(LALt[iq]), (*f)(vecAtQPs[iq]));
+      l1lt(grdLambda, *(LALt[iq]), (*f)(vecAtQPs[iq]));    
   }
 
   void VecAtQP_SOT::eval(int nPoints,
diff --git a/AMDiS/src/ZeroOrderAssembler.cc b/AMDiS/src/ZeroOrderAssembler.cc
index f8032eb7..845ca342 100644
--- a/AMDiS/src/ZeroOrderAssembler.cc
+++ b/AMDiS/src/ZeroOrderAssembler.cc
@@ -68,9 +68,9 @@ namespace AMDiS {
       newAssembler = new StandardZOA(op, assembler, quad);
     } else {
       if (pwConst)
-  	newAssembler = new PrecalcZOA(op, assembler, quad);
+	newAssembler = new PrecalcZOA(op, assembler, quad);
       else
-  	newAssembler = new FastQuadZOA(op, assembler, quad);      
+	newAssembler = new FastQuadZOA(op, assembler, quad);      
     }
 
     subAssemblers->push_back(newAssembler);
@@ -130,7 +130,7 @@ namespace AMDiS {
 	for (int i = 0; i < nRow; i++) {
 	  double psival = (*(psi->getPhi(i)))(quadrature->getLambda(iq));
 	  for (int j = 0; j < nCol; j++)
-	    mat[i][j] += quadrature->getWeight(iq) * c[iq] * psival * phival[j];
+	    mat[i][j] += quadrature->getWeight(iq) * c[iq] * psival * phival[j];	  
 	}
       }
     }
-- 
GitLab