diff --git a/dune/solvers/norms/fullnorm.hh b/dune/solvers/norms/fullnorm.hh index 6a34d891cb1c1c57b05310190387d9699669d942..d4f9f93b2157fc420e9498277904df44a7452e62 100644 --- a/dune/solvers/norms/fullnorm.hh +++ b/dune/solvers/norms/fullnorm.hh @@ -18,10 +18,11 @@ * \tparam LowRankFactor the type of the factor used to represent the low rank operator * \tparam VectorType the vector type the norm may be applied to */ -template <class LowRankFactor=Dune::BlockVector<Dune::FieldVector <double,1> >, class VectorType=Dune::BlockVector<Dune::FieldVector <double,1> > > -class FullNorm: public Norm<VectorType> +template <class LowRankFactor=Dune::BlockVector<Dune::FieldVector <double,1> >, class V=Dune::BlockVector<Dune::FieldVector <double,1> > > +class FullNorm: public Norm<V> { public: + typedef V VectorType; typedef typename VectorType::field_type field_type; FullNorm(const field_type alpha, const LowRankFactor &lowRankFactor) : @@ -70,12 +71,13 @@ template<> class FullNorm<Dune::BlockVector<Dune::FieldVector<double,1> >, Dune::BlockVector<Dune::FieldVector<double,1> > >: public Norm<Dune::BlockVector<Dune::FieldVector<double,1> > > { - typedef Dune::BlockVector<Dune::FieldVector<double,1> > VectorType; - typedef VectorType::size_type SizeType; - + public: typedef double field_type; - + typedef Dune::BlockVector<Dune::FieldVector<field_type,1> > VectorType; + private: + typedef VectorType::size_type SizeType; public: + FullNorm(const field_type alpha, const VectorType &m) : m(m), alpha(alpha)