TimerOutput::Scope scope(computing_timer,
"offline_data - compute |c_ij|, and n_ij");
- const std_cxx20::ranges::iota_view<unsigned int> indices(
+ const std_cxx20::ranges::iota_view<unsigned int, unsigned int> indices(
0, n_locally_relevant);
const auto on_subranges = //
- [&](std_cxx20::ranges::iota_view<unsigned int>::iterator i1,
- const std_cxx20::ranges::iota_view<unsigned int>::iterator i2) {
+ [&](
+ std_cxx20::ranges::iota_view<unsigned int, unsigned int>::iterator i1,
+ const std_cxx20::ranges::iota_view<unsigned int,
+ unsigned int>::iterator i2) {
for (const auto row_index :
- std_cxx20::ranges::iota_view<unsigned int>(*i1, *i2))
+ std_cxx20::ranges::iota_view<unsigned int, unsigned int>(*i1,
+ *i2))
{
// First column-loop: we compute and store the entries of the
// matrix norm_matrix and write normalized entries into the
const auto &n_locally_owned = offline_data->n_locally_owned;
const auto &n_locally_relevant = offline_data->n_locally_relevant;
- const std_cxx20::ranges::iota_view<unsigned int> indices_owned(
- 0, n_locally_owned);
- const std_cxx20::ranges::iota_view<unsigned int> indices_relevant(
- 0, n_locally_relevant);
+ const std_cxx20::ranges::iota_view<unsigned int, unsigned int>
+ indices_owned(0, n_locally_owned);
+ const std_cxx20::ranges::iota_view<unsigned int, unsigned int>
+ indices_relevant(0, n_locally_relevant);
const auto &sparsity = offline_data->sparsity_pattern;
"time_stepping - 1 compute d_ij");
const auto on_subranges = //
- [&](std_cxx20::ranges::iota_view<unsigned int>::iterator i1,
- const std_cxx20::ranges::iota_view<unsigned int>::iterator i2) {
+ [&](
+ std_cxx20::ranges::iota_view<unsigned int, unsigned int>::iterator i1,
+ const std_cxx20::ranges::iota_view<unsigned int,
+ unsigned int>::iterator i2) {
for (const auto i :
- std_cxx20::ranges::iota_view<unsigned int>(*i1, *i2))
+ std_cxx20::ranges::iota_view<unsigned int, unsigned int>(*i1,
+ *i2))
{
const auto U_i = gather(U, i);
// locally.
const auto on_subranges = //
- [&](std_cxx20::ranges::iota_view<unsigned int>::iterator i1,
- const std_cxx20::ranges::iota_view<unsigned int>::iterator i2) {
+ [&](
+ std_cxx20::ranges::iota_view<unsigned int, unsigned int>::iterator i1,
+ const std_cxx20::ranges::iota_view<unsigned int,
+ unsigned int>::iterator i2) {
double tau_max_on_subrange = std::numeric_limits<double>::infinity();
for (const auto i :
- std_cxx20::ranges::iota_view<unsigned int>(*i1, *i2))
+ std_cxx20::ranges::iota_view<unsigned int, unsigned int>(*i1,
+ *i2))
{
double d_sum = 0.;
"time_stepping - 3 perform update");
const auto on_subranges =
- [&](std_cxx20::ranges::iota_view<unsigned int>::iterator i1,
- const std_cxx20::ranges::iota_view<unsigned int>::iterator i2) {
+ [&](
+ std_cxx20::ranges::iota_view<unsigned int, unsigned int>::iterator i1,
+ const std_cxx20::ranges::iota_view<unsigned int,
+ unsigned int>::iterator i2) {
for (const auto i : boost::make_iterator_range(i1, i2))
{
Assert(i < n_locally_owned, ExcInternalError());
const auto &n_locally_owned = offline_data->n_locally_owned;
const auto indices =
- std_cxx20::ranges::iota_view<unsigned int>(0, n_locally_owned);
+ std_cxx20::ranges::iota_view<unsigned int, unsigned int>(0,
+ n_locally_owned);
// We define the r_i_max and r_i_min in the current MPI process as
// atomic doubles in order to avoid race conditions between threads:
// global maxima and minima of the gradients.
{
const auto on_subranges = //
- [&](std_cxx20::ranges::iota_view<unsigned int>::iterator i1,
- const std_cxx20::ranges::iota_view<unsigned int>::iterator i2) {
+ [&](
+ std_cxx20::ranges::iota_view<unsigned int, unsigned int>::iterator i1,
+ const std_cxx20::ranges::iota_view<unsigned int,
+ unsigned int>::iterator i2) {
double r_i_max_on_subrange = 0.;
double r_i_min_on_subrange = std::numeric_limits<double>::infinity();
{
const auto on_subranges = //
- [&](std_cxx20::ranges::iota_view<unsigned int>::iterator i1,
- const std_cxx20::ranges::iota_view<unsigned int>::iterator i2) {
+ [&](
+ std_cxx20::ranges::iota_view<unsigned int, unsigned int>::iterator i1,
+ const std_cxx20::ranges::iota_view<unsigned int,
+ unsigned int>::iterator i2) {
for (const auto i : boost::make_iterator_range(i1, i2))
{
Assert(i < n_locally_owned, ExcInternalError());
* taking on all valid indices for faces (zero and one in 1d, zero
* through three in 2d, and zero through 5 in 3d).
*/
- static std_cxx20::ranges::iota_view<unsigned int>
+ static std_cxx20::ranges::iota_view<unsigned int, unsigned int>
face_indices();
/**
* Here, we are looping over all vertices of all cells, with `vertex_index`
* taking on all valid indices.
*/
- static std_cxx20::ranges::iota_view<unsigned int>
+ static std_cxx20::ranges::iota_view<unsigned int, unsigned int>
vertex_indices();
/**
template <int dim>
-inline std_cxx20::ranges::iota_view<unsigned int>
+inline std_cxx20::ranges::iota_view<unsigned int, unsigned int>
GeometryInfo<dim>::face_indices()
{
- return std_cxx20::ranges::iota_view<unsigned int>(0U, faces_per_cell);
+ return {0U, faces_per_cell};
}
template <int dim>
-inline std_cxx20::ranges::iota_view<unsigned int>
+inline std_cxx20::ranges::iota_view<unsigned int, unsigned int>
GeometryInfo<dim>::vertex_indices()
{
- return std_cxx20::ranges::iota_view<unsigned int>(0U, vertices_per_cell);
+ return {0U, vertices_per_cell};
}