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