From 956a5f842cf88973696164655ae4be2a6bef57cf Mon Sep 17 00:00:00 2001
From: Nicolas Marsic <nicolas.marsic@gmail.com>
Date: Tue, 8 Jan 2013 13:01:37 +0000
Subject: [PATCH] TetEdge: debugging

---
 FunctionSpace/BasisScalar.cpp    | 17 ++++++++--------
 FunctionSpace/BasisVector.cpp    | 33 ++++++++++++++++----------------
 FunctionSpace/EvaluatedBasis.h   |  6 ------
 FunctionSpace/ReferenceSpace.cpp | 25 +++++++++++++++++++++++-
 FunctionSpace/TetEdgeBasis.cpp   | 18 ++++++++---------
 5 files changed, 59 insertions(+), 40 deletions(-)

diff --git a/FunctionSpace/BasisScalar.cpp b/FunctionSpace/BasisScalar.cpp
index 424075953c..55a09412a6 100644
--- a/FunctionSpace/BasisScalar.cpp
+++ b/FunctionSpace/BasisScalar.cpp
@@ -13,26 +13,27 @@ BasisScalar::~BasisScalar(void){
 string BasisScalar::toString(void) const{
   stringstream stream;
   unsigned int i = 0;
+  const unsigned int refSpace = 0;
 
   stream << "Vertex Based:" << endl;
   for(; i < nVertex; i++)
-    stream << "f("  << i + 1                << ") = "
-	   << (*(*basis)[0])[i]->toString() << endl;
+    stream << "f("  << i + 1                       << ") = "
+	   << (*(*basis)[refSpace])[i]->toString() << endl;
 
   stream << "Edge Based:"   << endl;
   for(; i < nVertex + nEdge; i++)
-    stream << "f(" << i + 1                 << ") = " 
-	   << (*(*basis)[0])[i]->toString() << endl;
+    stream << "f(" << i + 1                        << ") = " 
+	   << (*(*basis)[refSpace])[i]->toString() << endl;
 
   stream << "Face Based:"   << endl;
   for(; i < nVertex + nEdge + nFace; i++)
-    stream << "f(" << i + 1                 << ") = " 
-	   << (*(*basis)[0])[i]->toString() << endl;
+    stream << "f(" << i + 1                        << ") = " 
+	   << (*(*basis)[refSpace])[i]->toString() << endl;
 
   stream << "Cell Based:"   << endl;
   for(; i < nVertex + nEdge + nFace + nCell; i++)
-    stream << "f("  << i + 1                << ") = " 
-	   << (*(*basis)[0])[i]->toString() << endl;
+    stream << "f("  << i + 1                       << ") = " 
+	   << (*(*basis)[refSpace])[i]->toString() << endl;
 
   return stream.str();
 }
diff --git a/FunctionSpace/BasisVector.cpp b/FunctionSpace/BasisVector.cpp
index bcbbd19c01..c331c191d5 100644
--- a/FunctionSpace/BasisVector.cpp
+++ b/FunctionSpace/BasisVector.cpp
@@ -13,34 +13,35 @@ BasisVector::~BasisVector(void){
 string BasisVector::toString(void) const{
   stringstream stream;
   unsigned int i = 0;
+  const unsigned int refSpace = 0;
 
   stream << "Vertex Based:" << endl;
   for(; i < nVertex; i++)
-    stream << "f("   << i + 1                              << ") = " << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[0].toString() << " ]"   << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[1].toString() << " ]"   << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[2].toString() << " ]"   << endl;
+    stream << "f("   << i + 1                                     << ") = " << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[0].toString() << " ]"   << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[1].toString() << " ]"   << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[2].toString() << " ]"   << endl;
 
   stream << "Edge Based:"   << endl;
   for(; i < nVertex + nEdge; i++)
-    stream << " f("  << i + 1                              << ") = " << endl 
-	   << "\t[ " << (*(*(*basis)[0])[i])[0].toString() << " ]"   << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[1].toString() << " ]"   << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[2].toString() << " ]"   << endl;
+    stream << " f("  << i + 1                                     << ") = " << endl 
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[0].toString() << " ]"   << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[1].toString() << " ]"   << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[2].toString() << " ]"   << endl;
 
   stream << "Face Based:"   << endl;
   for(; i < nVertex + nEdge + nFace; i++)
-    stream << " f("  << i + 1                              << ") = " << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[0].toString() << " ]"   << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[1].toString() << " ]"   << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[2].toString() << " ]"   << endl;
+    stream << " f("  << i + 1                                     << ") = " << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[0].toString() << " ]"   << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[1].toString() << " ]"   << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[2].toString() << " ]"   << endl;
   
   stream << "Cell Based:"   << endl;
   for(; i < nVertex + nEdge + nFace + nCell; i++)
-    stream << " f("  << i + 1                              << ") = " << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[0].toString() << " ]"   << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[1].toString() << " ]"   << endl
-	   << "\t[ " << (*(*(*basis)[0])[i])[2].toString() << " ]"   << endl;
+    stream << " f("  << i + 1                                     << ") = " << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[0].toString() << " ]"   << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[1].toString() << " ]"   << endl
+	   << "\t[ " << (*(*(*basis)[refSpace])[i])[2].toString() << " ]"   << endl;
 
   return stream.str();
 }
diff --git a/FunctionSpace/EvaluatedBasis.h b/FunctionSpace/EvaluatedBasis.h
index 96c82500a6..a6e4b50de2 100644
--- a/FunctionSpace/EvaluatedBasis.h
+++ b/FunctionSpace/EvaluatedBasis.h
@@ -100,12 +100,6 @@ EvaluatedBasis::getEvaluation(unsigned int refSpace) const{
 
 inline const fullMatrix<double>& 
 EvaluatedBasis::getEvaluation(const MElement& element) const{
-  /*
-  std::cout << element.getNum() 
-	    << ": "
-	    << refSpace->getReferenceSpace(element)
-	    << std::endl;
-  */
   return *(*eBasis)[refSpace->getReferenceSpace(element)];
 }
 
diff --git a/FunctionSpace/ReferenceSpace.cpp b/FunctionSpace/ReferenceSpace.cpp
index f99e9e0982..5f09a4e099 100644
--- a/FunctionSpace/ReferenceSpace.cpp
+++ b/FunctionSpace/ReferenceSpace.cpp
@@ -288,7 +288,7 @@ string ReferenceSpace::toString(void) const{
   stream << toString(&pTreeRoot) << endl;
 
   // ReferenceSpaces //
-  stream << "ReferenceSpace:" << endl;
+  stream << "Reference Spaces:" << endl;
   
   for(unsigned int i = 0; i < nPerm; i++){
     stream << "  * ";
@@ -299,6 +299,29 @@ string ReferenceSpace::toString(void) const{
     stream << " (# " << i + 1 << ")" << endl;
   }
 
+  stream << "Edges Permutations:" << endl;
+  
+  for(unsigned int i = 0; i < nPerm; i++){
+    stream << "  * RefSpace #" << i + 1 << ":" << endl;
+    
+    for(unsigned int j = 0; j < nEdge; j++)
+      stream << "      -- [" 
+	     << edge->at(i)->at(j)->at(0) << ", "
+	     << edge->at(i)->at(j)->at(1) << "]" << endl;
+  }
+
+  stream << "Faces Permutations:" << endl;
+  
+  for(unsigned int i = 0; i < nPerm; i++){
+    stream << "  * RefSpace #" << i + 1 << ":" << endl;
+    
+    for(unsigned int j = 0; j < nFace; j++)
+      stream << "      -- [" 
+	     << face->at(i)->at(j)->at(0) << ", "
+	     << face->at(i)->at(j)->at(1) << ", "
+	     << face->at(i)->at(j)->at(2) << "]" << endl;
+  }
+
   return stream.str();
 }
 
diff --git a/FunctionSpace/TetEdgeBasis.cpp b/FunctionSpace/TetEdgeBasis.cpp
index b8c5459b6b..053641bc47 100644
--- a/FunctionSpace/TetEdgeBasis.cpp
+++ b/FunctionSpace/TetEdgeBasis.cpp
@@ -62,7 +62,7 @@ TetEdgeBasis::TetEdgeBasis(unsigned int order){
 
   for(unsigned int s = 0; s < nRefSpace; s++)
     (*basis)[s] = new vector<const vector<Polynomial>*>(nFunction);
-
+  
   // Edge Based (Nedelec) //
   for(unsigned int s = 0; s < nRefSpace; s++){
     for(int e = 0; e < 6; e++){
@@ -84,7 +84,7 @@ TetEdgeBasis::TetEdgeBasis(unsigned int order){
       (*(*basis)[s])[e] = new vector<Polynomial>(tmp1);
     }
   }
-
+  
   // Edge Based (High Order) //
   for(unsigned int s = 0; s < nRefSpace; s++){
     unsigned int i = 6;
@@ -102,7 +102,7 @@ TetEdgeBasis::TetEdgeBasis(unsigned int order){
       }
     }
   }
-  
+    
   // Face Based //
   for(unsigned int s = 0; s < nRefSpace; s++){
     unsigned int i = nEdge;
@@ -147,7 +147,7 @@ TetEdgeBasis::TetEdgeBasis(unsigned int order){
 
 	  // Preliminary Type 3
 	  vector<Polynomial> gradL1 = lagrange[(*(*faceV[s])[f])[0]].gradient();
-	  vector<Polynomial> gradL2 = lagrange[(*(*faceV[s])[f])[1]].gradient();
+ 	  vector<Polynomial> gradL2 = lagrange[(*(*faceV[s])[f])[1]].gradient();
 
 	  vector<Polynomial> l2GradL1(gradL1);
 	  l2GradL1[0].mul(lagrange[(*(*faceV[s])[f])[1]]);
@@ -168,19 +168,19 @@ TetEdgeBasis::TetEdgeBasis(unsigned int order){
 	  subGradL1L2V[1].mul(v);
 	  subGradL1L2V[2].mul(v);
 	  
-
+	  
 	  // Type 1
 	  (*(*basis)[s])[i] = 
 	    new vector<Polynomial>((u * v).gradient());
 	  
 	  i++;
-
+	  
 	  // Type 2
 	  (*(*basis)[s])[i] =
 	    new vector<Polynomial>(subGradUV);
 
 	  i++;
-
+	  
 	  // Type 3
 	  if(l1 == 1){
   	    (*(*basis)[s])[i] =
@@ -192,7 +192,7 @@ TetEdgeBasis::TetEdgeBasis(unsigned int order){
       }
     }
   }
-  
+      
   // Cell Based //
   const Polynomial one(1, 0, 0, 0);
   
@@ -312,7 +312,7 @@ TetEdgeBasis::TetEdgeBasis(unsigned int order){
       }
     }
   }
-  
+      
   // Free Temporary Sapce //
   delete[] legendre;
   delete[] sclLegendre;
-- 
GitLab