From 827979a870fcc1af6ab2e47b3a07459c6b9b578e Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Tue, 31 Aug 2010 13:44:51 +0000 Subject: [PATCH] Use a special implementation of a rank-3 tensor [[Imported from SVN: r6298]] --- dune/gfe/localgeodesicfefunction.hh | 5 +++-- dune/gfe/tensor3.hh | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 dune/gfe/tensor3.hh diff --git a/dune/gfe/localgeodesicfefunction.hh b/dune/gfe/localgeodesicfefunction.hh index ba464af7..ecefdbea 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 00000000..4845b6be --- /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 -- GitLab