From 6020c0d759f11c54980f4232d9ce1fa4075f1ec8 Mon Sep 17 00:00:00 2001 From: Thomas Witkowski <thomas.witkowski@gmx.de> Date: Mon, 9 Mar 2009 09:48:07 +0000 Subject: [PATCH] * And again the stupid getGradient bug :) --- AMDiS/src/DOFVector.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/AMDiS/src/DOFVector.cc b/AMDiS/src/DOFVector.cc index f9fbae1c..799edb3c 100644 --- a/AMDiS/src/DOFVector.cc +++ b/AMDiS/src/DOFVector.cc @@ -555,6 +555,7 @@ namespace AMDiS { } else { if (!result) { result = NEW WorldVector<DOFVector<double>*>; + result->set(NULL); } for (int i = 0; i < dow; i++) { @@ -586,8 +587,9 @@ namespace AMDiS { numNodes += numPositionNodes; } - TEST_EXIT_DBG(numNodes == mesh->getNumberOfNodes()) - ("invalid number of nodes\n"); +// TEST_EXIT_DBG(numNodes == mesh->getNumberOfNodes()) +// ("invalid number of nodes\n"); + TEST_EXIT_DBG(numDOFs == basFcts->getNumber()) ("number of dofs != number of basis functions\n"); @@ -598,7 +600,7 @@ namespace AMDiS { // traverse mesh std::vector<bool> visited(getUsedSize(), false); TraverseStack stack; - Flag fillFlag = Mesh::CALL_LEAF_EL | Mesh::FILL_GRD_LAMBDA; + Flag fillFlag = Mesh::CALL_LEAF_EL | Mesh::FILL_GRD_LAMBDA | Mesh::FILL_COORDS; ElInfo *elInfo = stack.traverseFirst(mesh, -1, fillFlag); WorldVector<double> grd; @@ -614,11 +616,10 @@ namespace AMDiS { DegreeOfFreedom dofIndex = dof[i][numNodePreDOFs[localDOFNr] + j]; if (!visited[dofIndex]) { - basFcts->evalGrdUh(*(bary[localDOFNr]), grdLambda, - localUh, &grd); + basFcts->evalGrdUh(*(bary[localDOFNr]), grdLambda, localUh, &grd); for (int k = 0; k < dow; k++) { - (*result)[k][dofIndex] = grd[k]; + (*(*result)[k])[dofIndex] = grd[k]; } visited[dofIndex] = true; -- GitLab