diff --git a/dune/gfe/localgeodesicfefunction.hh b/dune/gfe/localgeodesicfefunction.hh index ba464af7d6a2fac3820b39b693235d2dad408dbe..ecefdbeabbc7998ce03d920dab0918af576c2684 100644 --- a/dune/gfe/localgeodesicfefunction.hh +++ b/dune/gfe/localgeodesicfefunction.hh @@ -10,6 +10,7 @@ #include <dune/gfe/targetspacertrsolver.hh> #include <dune/gfe/svd.hh> +#include <dune/gfe/tensor3.hh> //! calculates ret = A * B template< class K, int m, int n, int p > @@ -290,11 +291,11 @@ evaluateDerivativeOfGradientWRTCoefficient(const Dune::FieldVector<ctype, dim>& assembler.assembleHessian(q,dFdq); // - std::array<Dune::FieldMatrix<double,targetDim,targetDim>, dim+1> dcDqF; + Tensor3<double,dim+1,targetDim,targetDim> dcDqF; - std::array<Dune::FieldMatrix<double,targetDim,dim+1>, dim+1> dcDwF; + Tensor3<double,dim+1,targetDim,dim+1> dcDwF; for (size_t i=0; i<dcDwF.size(); i++) dcDwF[i] = TargetSpace::secondDerivativeOfDistanceSquaredWRTFirstAndSecondArgument(coefficients_[i], q); diff --git a/dune/gfe/tensor3.hh b/dune/gfe/tensor3.hh new file mode 100644 index 0000000000000000000000000000000000000000..4845b6bec7180be13bbb5a5d3848c231122f54a6 --- /dev/null +++ b/dune/gfe/tensor3.hh @@ -0,0 +1,17 @@ +#ifndef DUNE_TENSOR_3_HH +#define DUNE_TENSOR_3_HH + +/** \file + \brief A third-rank tensor + */ + +template <class T, int N1, int N2, int N3> +class Tensor3 + : public Dune::array<Dune::FieldMatrix<T,N2,N3>,N1> +{ + + + +}; + +#endif \ No newline at end of file