I modified step-59 function run() so that in only makes grid and does local refinement and initializes MatrixFree object. This triggers an assertion when calling
in system_setup().
Point<dim> upper_right;
upper_right[0] = 2.5;
for (unsigned int d = 1; d < dim; ++d)
upper_right[d] = 2.8;
GridGenerator::hyper_rectangle(triangulation,
Point<dim>(),
upper_right);
triangulation.begin_active()->face(0)->set_boundary_id(10);
triangulation.begin_active()->face(1)->set_boundary_id(11);
triangulation.begin_active()->face(2)->set_boundary_id(0);
for (unsigned int f = 3; f < GeometryInfo<dim>::faces_per_cell; ++f)
triangulation.begin_active()->face(f)->set_boundary_id(1);
std::vector<GridTools::PeriodicFacePair<
typename Triangulation<dim>::cell_iterator>>
periodic_faces;
GridTools::collect_periodic_faces(
triangulation, 10, 11, 0, periodic_faces);
triangulation.add_periodicity(periodic_faces);
triangulation.refine_global(1);
Vector<float> estimated_error_per_cell(triangulation.n_active_cells());
for (unsigned int i = 0; i < estimated_error_per_cell.size(); ++i)
estimated_error_per_cell[i] = std::sin(i) * std::sin(i);
parallel::distributed::GridRefinement::refine_and_coarsen_fixed_number(
triangulation, estimated_error_per_cell, 0.3, 0.0);
triangulation.execute_coarsening_and_refinement();
setup_system();
--------------------------------------------------------
An error occurred in line <4993> of file </home/mwichro/lib/dealii/source/fe/fe_values.cc> in function
void dealii::FESubfaceValues<dim, spacedim>::reinit(const typename dealii::Triangulation<dim, spacedim>::cell_iterator&, unsigned int, unsigned int) [with int dim = 3; int spacedim = 3; typename dealii::Triangulation<dim, spacedim>::cell_iterator = dealii::TriaIterator<dealii::CellAccessor<3, 3> >]
The violated condition was:
subface_no < cell->face(face_no)->n_children()
Additional information:
Index 0 is not in the half-open range [0,0). In the current case, this half-open range is in fact empty, suggesting that you are accessing an element of an empty collection such as a vector that has not been set to the correct size.
Stacktrace:
-----------