diff --git a/dune/fufem/assemblers/functionalassembler.hh b/dune/fufem/assemblers/functionalassembler.hh index 89e385415331f737f3dc3ce387a3219c479e6b81..644a0285b540c63987fd00dad4432c4a9019f9c3 100644 --- a/dune/fufem/assemblers/functionalassembler.hh +++ b/dune/fufem/assemblers/functionalassembler.hh @@ -30,7 +30,6 @@ class FunctionalAssembler template <class LocalFunctionalAssemblerType, class GlobalVectorType> void assemble(LocalFunctionalAssemblerType& localAssembler, GlobalVectorType& b, bool initializeVector=true) const { - typedef typename GridView::template Codim<0>::Iterator ElementIterator; typedef typename LocalFunctionalAssemblerType::LocalVector LocalVector; typedef typename TrialBasis::LinearCombination LinearCombination; @@ -42,19 +41,17 @@ class FunctionalAssembler b=0.0; } - ElementIterator it = tBasis_.getGridView().template begin<0>(); - ElementIterator end = tBasis_.getGridView().template end<0>(); - for (; it != end; ++it) + for (const auto& element : elements(tBasis_.getGridView())) { // get shape functions - const typename TrialBasis::LocalFiniteElement& tFE = tBasis_.getLocalFiniteElement(*it); + const typename TrialBasis::LocalFiniteElement& tFE = tBasis_.getLocalFiniteElement(element); LocalVector localB(tFE.localBasis().size()); - localAssembler.assemble(*it, localB, tFE); + localAssembler.assemble(element, localB, tFE); for (size_t i=0; i<tFE.localBasis().size(); ++i) { - int idx = tBasis_.index(*it, i); + int idx = tBasis_.index(element, i); const LinearCombination& constraints = tBasis_.constraints(idx); bool isConstrained = tBasis_.isConstrained(idx); if (isConstrained)