From 6d2ddd85be16fcf0918c71b7d86a52b2e0cd697a Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Tue, 31 Aug 2010 16:23:25 +0000 Subject: [PATCH] compute dcDqF [[Imported from SVN: r6301]] --- dune/gfe/localgeodesicfefunction.hh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/dune/gfe/localgeodesicfefunction.hh b/dune/gfe/localgeodesicfefunction.hh index ecefdbea..1f5b4943 100644 --- a/dune/gfe/localgeodesicfefunction.hh +++ b/dune/gfe/localgeodesicfefunction.hh @@ -290,11 +290,7 @@ evaluateDerivativeOfGradientWRTCoefficient(const Dune::FieldVector<ctype, dim>& Dune::FieldMatrix<ctype,targetDim,targetDim> dFdq(0); assembler.assembleHessian(q,dFdq); - // - Tensor3<double,dim+1,targetDim,targetDim> dcDqF; - - - + Tensor3<double,dim+1,targetDim,dim+1> dcDwF; for (size_t i=0; i<dcDwF.size(); i++) dcDwF[i] = TargetSpace::secondDerivativeOfDistanceSquaredWRTFirstAndSecondArgument(coefficients_[i], q); @@ -308,7 +304,12 @@ evaluateDerivativeOfGradientWRTCoefficient(const Dune::FieldVector<ctype, dim>& // Put it all together for (size_t i=0; i<result.size(); i++) { - result[i] = dFdqPseudoInv * ( dcDqF[i] * dFdqPseudoInv * dFdw - dcDwF[i]) * B; + // + Tensor3<double,targetDim,targetDim,targetDim> dcDqF + = TargetSpace::thirdDerivativeOfDistanceSquaredWRTFirst1AndSecond2Argument(coefficients_[i], q); + + + result[i] = dFdqPseudoInv * ( dcDqF[i] * dFdqPseudoInv * dFdw - dcDwF[i]) * B; } -- GitLab