From 27c600daa7347e47cebaee02bf58f660c8c302eb Mon Sep 17 00:00:00 2001 From: Jonathan Youett <youett@math.fu-berlin.de> Date: Mon, 9 Oct 2017 17:14:27 +0200 Subject: [PATCH] Cleanup using range-based for-loops and keyword 'auto' --- dune/solvers/test/common.hh | 55 ++++++++++++------------------------- 1 file changed, 17 insertions(+), 38 deletions(-) diff --git a/dune/solvers/test/common.hh b/dune/solvers/test/common.hh index 0894a26c..028dad40 100644 --- a/dune/solvers/test/common.hh +++ b/dune/solvers/test/common.hh @@ -92,17 +92,13 @@ void addToDiagonal(Dune::FieldMatrix<T, n, m>& M, const F& x) template<class GridView, class Matrix> void assemblePQ1Stiffness(const GridView& gridView, Matrix& matrix) { - static const int dim = GridView::Grid::dimension; - static const int dimworld = GridView::Grid::dimensionworld; + static constexpr int dim = GridView::Grid::dimension; + static constexpr int dimworld = GridView::Grid::dimensionworld; - typedef typename GridView::template Codim<0>::Entity Element; - typedef typename GridView::template Codim<0>::Entity::Geometry Geometry; typedef typename Dune::PQkLocalFiniteElementCache<double, double, dim, 1> FiniteElementCache; typedef typename FiniteElementCache::FiniteElementType FiniteElement; - typedef typename Dune::FieldVector<double,dim> LocalCoordinate; - typedef typename Dune::FieldVector<double,dimworld> GlobalCoordinate; - typedef typename Element::Geometry::JacobianInverseTransposed JacobianInverseTransposed; + typedef typename Dune::FieldVector<double, dimworld> GlobalCoordinate; typedef typename FiniteElement::Traits::LocalBasisType::Traits::JacobianType JacobianType; const auto& indexSet = gridView.indexSet(); @@ -110,7 +106,7 @@ void assemblePQ1Stiffness(const GridView& gridView, Matrix& matrix) for (const auto& element : elements(gridView)) { - const Geometry geometry = element.geometry(); + const auto& geometry = element.geometry(); const FiniteElement& fe = cache.get(element.type()); int localSize = fe.size(); @@ -125,13 +121,13 @@ void assemblePQ1Stiffness(const GridView& gridView, Matrix& matrix) std::vector<JacobianType> referenceGradients(localSize); std::vector<GlobalCoordinate> gradients(localSize); - for (size_t pt=0; pt < quad.size(); ++pt) + for (const auto& pt : quad) { // get quadrature point - const LocalCoordinate& quadPos = quad[pt].position(); + const auto& quadPos = pt.position(); // get transposed inverse of Jacobian of transformation - const JacobianInverseTransposed invJacobian = geometry.jacobianInverseTransposed(quadPos); + const auto invJacobian = geometry.jacobianInverseTransposed(quadPos); // get integration factor const double integrationElement = geometry.integrationElement(quadPos); @@ -144,7 +140,7 @@ void assemblePQ1Stiffness(const GridView& gridView, Matrix& matrix) invJacobian.mv(referenceGradients[i][0], gradients[i]); // compute matrix entries - double z = quad[pt].weight() * integrationElement; + double z = pt.weight() * integrationElement; for (int i = 0; i < localSize; ++i) { int iGlobal = indexSet.subIndex(element, fe.localCoefficients().localKey(i).subEntity(), dim); @@ -169,11 +165,9 @@ void assemblePQ1Mass(const GridView& gridView, Matrix& matrix) { static const int dim = GridView::Grid::dimension; - typedef typename GridView::template Codim<0>::Entity::Geometry Geometry; typedef typename Dune::PQkLocalFiniteElementCache<double, double, dim, 1> FiniteElementCache; typedef typename FiniteElementCache::FiniteElementType FiniteElement; - typedef typename Dune::FieldVector<double,dim> LocalCoordinate; typedef typename FiniteElement::Traits::LocalBasisType::Traits::RangeType RangeType; const auto& indexSet = gridView.indexSet(); @@ -181,7 +175,7 @@ void assemblePQ1Mass(const GridView& gridView, Matrix& matrix) for (const auto& element : elements(gridView)) { - const Geometry geometry = element.geometry(); + const auto& geometry = element.geometry(); const FiniteElement& fe = cache.get(element.type()); int localSize = fe.size(); @@ -198,7 +192,7 @@ void assemblePQ1Mass(const GridView& gridView, Matrix& matrix) for (size_t pt=0; pt < quad.size(); ++pt) { // get quadrature point - const LocalCoordinate& quadPos = quad[pt].position(); + const auto& quadPos = quad[pt].position(); // get integration factor const double integrationElement = geometry.integrationElement(quadPos); @@ -233,11 +227,9 @@ void assemblePQ1RHS(const GridView& gridView, Vector& r, const Function& f) { static const int dim = GridView::Grid::dimension; - typedef typename GridView::template Codim<0>::Entity::Geometry Geometry; typedef typename Dune::PQkLocalFiniteElementCache<double, double, dim, 1> FiniteElementCache; typedef typename FiniteElementCache::FiniteElementType FiniteElement; - typedef typename Dune::template FieldVector<double,dim> LocalCoordinate; typedef typename FiniteElement::Traits::LocalBasisType::Traits::RangeType RangeType; typedef typename Function::RangeType FunctionRangeType; @@ -246,7 +238,7 @@ void assemblePQ1RHS(const GridView& gridView, Vector& r, const Function& f) for (const auto& element : elements(gridView)) { - const Geometry geometry = element.geometry(); + const auto& geometry = element.geometry(); const FiniteElement& fe = cache.get(element.type()); int localSize = fe.size(); @@ -261,10 +253,10 @@ void assemblePQ1RHS(const GridView& gridView, Vector& r, const Function& f) // store values of shape functions std::vector<RangeType> values(localSize); - for (size_t pt=0; pt < quad.size(); ++pt) + for (const auto& pt : quad) { // get quadrature point - const LocalCoordinate& quadPos = quad[pt].position(); + const auto& quadPos = pt.position(); // get integration factor const double integrationElement = geometry.integrationElement(quadPos); @@ -277,7 +269,7 @@ void assemblePQ1RHS(const GridView& gridView, Vector& r, const Function& f) f.evaluate(geometry.global(quadPos), fAtPos); // add vector entries - double z = quad[pt].weight() * integrationElement; + double z = pt.weight() * integrationElement; for (int i = 0; i < localSize; ++i) { int iGlobal = indexSet.subIndex(element, fe.localCoefficients().localKey(i).subEntity(), dim); @@ -296,8 +288,7 @@ bool intersectionContainsVertex(const Intersection& i, int vertexInInsideElement int faceIdx = i.indexInInside(); - const Dune::ReferenceElement<double,dim>& refElement - = Dune::ReferenceElements<double, dim>::general(i.inside().type()); + const auto& refElement = Dune::ReferenceElements<double, dim>::general(i.inside().type()); for (int j = 0; j<refElement.size(faceIdx, 1, dim); ++j) { @@ -316,31 +307,19 @@ void markBoundaryDOFs(const GridView& gridView, BitVector& isBoundary) static const int dim = GridView::Grid::dimension; typedef typename GridView::IndexSet IndexSet; - typedef typename GridView::template Codim<0>::Iterator ElementIterator; - typedef typename GridView::template Codim<0>::Entity Element; - typedef typename GridView::IntersectionIterator IntersectionIterator; - typedef typename GridView::Intersection Intersection; typedef typename Dune::PQkLocalFiniteElementCache<double, double, dim, 1> FiniteElementCache; typedef typename FiniteElementCache::FiniteElementType FiniteElement; const IndexSet& indexSet = gridView.indexSet(); FiniteElementCache cache; - ElementIterator it = gridView.template begin<0>(); - ElementIterator end = gridView.template end<0>(); - for (; it != end; ++it) + for (const auto& e : elements(gridView)) { - const Element& e = *it; const FiniteElement& fe = cache.get(e.type()); int localSize = fe.localBasis().size(); - IntersectionIterator nIt = gridView.ibegin(e); - IntersectionIterator nEnd = gridView.iend(e); - - for (; nIt!=nEnd; ++nIt) + for (const auto& i : intersections(gridView, e)) { - const Intersection& i = *nIt; - if (i.boundary()) { for (int j = 0; j < localSize; ++j) -- GitLab