diff --git a/test/localgeodesicfestiffnesstest.cc b/test/localgeodesicfestiffnesstest.cc index e1106a9c4f9646dc9872c6538a94aa7b0689cbf3..59115871f7d8ba5d6cfd3d234016f2cf8233fe95 100644 --- a/test/localgeodesicfestiffnesstest.cc +++ b/test/localgeodesicfestiffnesstest.cc @@ -118,6 +118,10 @@ void testUnitVector3d() for (int j=0; j<domainDim+1; j++) coefficients[j] = testPoints[index[j]]; + std::cout << "coefficients:\n"; + for (int j=0; j<domainDim+1; j++) + std::cout << coefficients[j] << std::endl; + assembler.assembleHessian(*grid->template leafbegin<0>(), coefficients); Matrix<FieldMatrix<double,2,2> > fdHessian = assembler.A_; @@ -126,11 +130,20 @@ void testUnitVector3d() printmatrix(std::cout, fdHessian, "fdHessian", "--"); Matrix<FieldMatrix<double,3,3> > embeddedHessian(nDofs,nDofs); + embeddedHessian = 0; - for (size_t j=0; j<nDofs; j++) - for (size_t k=0; k<nDofs; k++) - embeddedHessian[j][k] = TargetSpace::secondDerivativeOfDistanceSquaredWRTSecondArgument(coefficients[j], - coefficients[k]); + embeddedHessian[0][0] = TargetSpace::secondDerivativeOfDistanceSquaredWRTSecondArgument(coefficients[1], + coefficients[0]); + + embeddedHessian[1][1] = TargetSpace::secondDerivativeOfDistanceSquaredWRTSecondArgument(coefficients[0], + coefficients[1]); + + embeddedHessian[0][0] = TargetSpace::secondDerivativeOfDistanceSquaredWRTFirstAndSecondArgument(coefficients[0], + coefficients[1]); + + embeddedHessian[0][0] = TargetSpace::secondDerivativeOfDistanceSquaredWRTFirstAndSecondArgument(coefficients[0], + coefficients[1]); + Matrix<FieldMatrix<double,2,2> > hessian(nDofs,nDofs); // transform to local tangent space bases