From: Martin Kronbichler Date: Fri, 1 May 2020 06:30:02 +0000 (+0200) Subject: Convert some loops over cells to range-based for loops X-Git-Tag: v9.2.0-rc1~151^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F10002%2Fhead;p=dealii.git Convert some loops over cells to range-based for loops --- diff --git a/include/deal.II/matrix_free/matrix_free.templates.h b/include/deal.II/matrix_free/matrix_free.templates.h index 783378cdee..f905389333 100644 --- a/include/deal.II/matrix_free/matrix_free.templates.h +++ b/include/deal.II/matrix_free/matrix_free.templates.h @@ -616,9 +616,6 @@ MatrixFree::initialize_dof_handlers( for (unsigned int no = 0; no < dof_handlers.n_dof_handlers; ++no) dof_info[no].vectorization_length = VectorizedArrayType::size(); - // Go through cells on zeroth level and then successively step down into - // children. This gives a z-ordering of the cells, which is beneficial when - // setting up neighboring relations between cells for thread parallelization const unsigned int n_mpi_procs = task_info.n_procs; const unsigned int my_pid = task_info.my_pid; @@ -629,15 +626,18 @@ MatrixFree::initialize_dof_handlers( { if (n_mpi_procs == 1) cell_level_index.reserve(tria.n_active_cells()); - typename Triangulation::cell_iterator cell = tria.begin(0), - end_cell = tria.end(0); // For serial Triangulations always take all cells const unsigned int subdomain_id = (dynamic_cast *>( &dof_handler[0]->get_triangulation()) != nullptr) ? my_pid : numbers::invalid_subdomain_id; - for (; cell != end_cell; ++cell) + + // Go through cells on zeroth level and then successively step down into + // children. This gives a z-ordering of the cells, which is beneficial + // when setting up neighboring relations between cells for thread + // parallelization + for (const auto &cell : tria.cell_iterators_on_level(0)) internal::MatrixFreeFunctions::resolve_cell(cell, cell_level_index, subdomain_id); @@ -652,9 +652,7 @@ MatrixFree::initialize_dof_handlers( if (level < tria.n_levels()) { cell_level_index.reserve(tria.n_cells(level)); - typename Triangulation::cell_iterator cell = tria.begin(level), - end_cell = tria.end(level); - for (; cell != end_cell; ++cell) + for (const auto &cell : tria.cell_iterators_on_level(level)) if (cell->level_subdomain_id() == my_pid) cell_level_index.emplace_back(cell->level(), cell->index()); } @@ -688,9 +686,6 @@ MatrixFree::initialize_dof_handlers( for (unsigned int no = 0; no < dof_handlers.n_dof_handlers; ++no) dof_info[no].vectorization_length = VectorizedArrayType::size(); - // go through cells on zeroth level and then successively step down into - // children. This gives a z-ordering of the cells, which is beneficial when - // setting up neighboring relations between cells for thread parallelization const unsigned int n_mpi_procs = task_info.n_procs; const unsigned int my_pid = task_info.my_pid; @@ -699,18 +694,19 @@ MatrixFree::initialize_dof_handlers( const Triangulation &tria = dof_handler[0]->get_triangulation(); if (n_mpi_procs == 1) - { - cell_level_index.reserve(tria.n_active_cells()); - } - typename hp::DoFHandler::cell_iterator cell = dof_handler[0]->begin(0), - end_cell = dof_handler[0]->end(0); + cell_level_index.reserve(tria.n_active_cells()); + // For serial Triangulations always take all cells const unsigned int subdomain_id = (dynamic_cast *>( &dof_handler[0]->get_triangulation()) != nullptr) ? my_pid : numbers::invalid_subdomain_id; - for (; cell != end_cell; ++cell) + + // go through cells on zeroth level and then successively step down into + // children. This gives a z-ordering of the cells, which is beneficial when + // setting up neighboring relations between cells for thread parallelization + for (const auto &cell : tria.cell_iterators_on_level(0)) internal::MatrixFreeFunctions::resolve_cell(cell, cell_level_index, subdomain_id);