]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Make things work correctly.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Sat, 13 Feb 2010 15:52:23 +0000 (15:52 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Sat, 13 Feb 2010 15:52:23 +0000 (15:52 +0000)
git-svn-id: https://svn.dealii.org/trunk@20593 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/source/multigrid/mg_tools.cc

index c1ea3c7c70a66ab01e641b31b1d4838e5778eb6c..805bc755978565f76e32b7dcd5cadd465aa949c8 100644 (file)
@@ -1150,10 +1150,12 @@ MGTools::make_boundary_list(
                                    // field to store the indices
   std::vector<unsigned int> face_dofs;
   face_dofs.reserve (DoFTools::max_dofs_per_face(dof));
-  std::fill (face_dofs.begin (), face_dofs.end (), DoFHandler<dim,spacedim>::invalid_dof_index);
+  std::fill (face_dofs.begin (), face_dofs.end (),
+            DoFHandler<dim,spacedim>::invalid_dof_index);
 
-  typename MGDoFHandler<dim,spacedim>::cell_iterator cell = dof.begin(),
-                                           endc = dof.end();
+  typename MGDoFHandler<dim,spacedim>::cell_iterator
+    cell = dof.begin(),
+    endc = dof.end();
   for (; cell!=endc; ++cell)
     for (unsigned int face_no = 0; face_no < GeometryInfo<dim>::faces_per_cell;
          ++face_no)
@@ -1306,12 +1308,16 @@ make_boundary_list(const MGDoFHandler<dim,spacedim>& dof,
                   std::vector<IndexSet>& boundary_indices,
                   const std::vector<bool>& component_mask)
 {
+  Assert (boundary_indices.size() == dof.get_tria().n_levels(),
+         ExcDimensionMismatch (boundary_indices.size(),
+                               dof.get_tria().n_levels()));
+
   std::vector<std::set<unsigned int> >
-    my_boundary_indices (boundary_indices.size());
+    my_boundary_indices (dof.get_tria().n_levels());
   make_boundary_list (dof, function_map, my_boundary_indices, component_mask);
-  for (unsigned int i=0; i<boundary_indices.size(); ++i)
+  for (unsigned int i=0; i<dof.get_tria().n_levels(); ++i)
     {
-      boundary_indices[i] = IndexSet (my_boundary_indices[i].size());
+      boundary_indices[i] = IndexSet (dof.n_dofs(i));
       boundary_indices[i].add_indices (my_boundary_indices[i].begin(),
                                       my_boundary_indices[i].end());
     }

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.