diff --git a/dune/gfe/globalgeodesicfefunction.hh b/dune/gfe/globalgeodesicfefunction.hh index e58f21bb94dd34ce9894972a9cea5b2981a7dbad..914c376dd86d3845c414bd26898f18bb5d2da5a4 100644 --- a/dune/gfe/globalgeodesicfefunction.hh +++ b/dune/gfe/globalgeodesicfefunction.hh @@ -13,10 +13,12 @@ * * \tparam Basis - The global basis type. * \tparam TargetSpace - The manifold that this functions takes its values in. + * \tparam CoefficientType - The coefficient vector type. */ -template<class Basis, class TargetSpace> +template<class Basis, class TargetSpace, class CoefficientType> GlobalGeodesicFEFunction { + typedef typename Basis::LocalFiniteElement LocalFiniteElement; typedef typename Basis::GridView GridView; typedef typename GridView::template Codim<0>::Entity Element; @@ -34,7 +36,7 @@ GlobalGeodesicFEFunction { public: //! Create global function by a global basis and the corresponding coefficient vector - GlobalGeodesicFEFunction(const Basis& basis, const std::vector<TargetSpace>& coefficients) : + GlobalGeodesicFEFunction(const Basis& basis, const CoefficientType& coefficients) : basis_(basis), coefficients_(coefficients) {} @@ -78,6 +80,6 @@ private: //! The global basis const Basis& basis_; //! The coefficient vector - const std::vector<TargetSpace>& coefficients_; + const CoefficientType& coefficients_; }; #endif diff --git a/dune/gfe/globalgfetestfunctionbasis.hh b/dune/gfe/globalgfetestfunctionbasis.hh index ffe83130a5cd86e3769f237cdbd85de964da0ca7..0b495d9deb4e3b837154e40c5b1363b87c14c14c 100644 --- a/dune/gfe/globalgfetestfunctionbasis.hh +++ b/dune/gfe/globalgfetestfunctionbasis.hh @@ -21,7 +21,7 @@ class LocalTestFunctionWrapper; * The other LocalFiniteElement methods are not wrapped/implemented by now but it shouldn't be too difficult to do so when they are * needed. */ -template <class Basis, class TargetSpace> +template <class Basis, class TargetSpace, class CoefficientType> class GlobalGFETestFunctionBasis : public FunctionSpaceBasis<typename Basis::GridView, typename TargetSpace::EmbeddedTangentVector, LocalTestFunctionWrapper<typename Basis::LocalFiniteElement, TargetSpace> > { public: @@ -37,7 +37,7 @@ private: const static int tangentDim = TargetSpace::TangentVector::dimension; public: - GlobalGFETestFunctionBasis(const Basis& basis, std::vector<TargetSpace>& baseCoefficients) : + GlobalGFETestFunctionBasis(const Basis& basis, const CoefficientType& baseCoefficients) : Base(basis.getGridView()), basis_(basis), baseCoefficients_(baseCoefficients), @@ -89,7 +89,7 @@ private: //! The global basis determining the weights const Basis& basis_; //! The coefficients of the configuration the tangent spaces are from. */ - const std::vector<TargetSpace>& baseCoefficients_; + const CoefficientType& baseCoefficients_; //! Save the last local finite element - do I need to do this? mutable LocalFiniteElement* lfe_; };