]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Fix numerous bugs in GridTools::find_cells_adjacent_to_vertex.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 30 May 2012 10:34:55 +0000 (10:34 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 30 May 2012 10:34:55 +0000 (10:34 +0000)
git-svn-id: https://svn.dealii.org/trunk@25567 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/doc/news/changes.h
deal.II/include/deal.II/grid/grid_tools.h
deal.II/source/grid/grid_tools.cc
tests/bits/find_cells_adjacent_to_vertex_2.cc
tests/bits/find_cells_adjacent_to_vertex_2/cmp/generic
tests/bits/find_cells_adjacent_to_vertex_5.cc [new file with mode: 0644]
tests/bits/find_cells_adjacent_to_vertex_5/cmp/generic [new file with mode: 0644]
tests/bits/find_cells_adjacent_to_vertex_6.cc [new file with mode: 0644]
tests/bits/find_cells_adjacent_to_vertex_6/cmp/generic [new file with mode: 0644]

index ac33954c444b5898ee346c6f4e2714d4e9b40179..68f51af9530d64a04c30a387002a9629848cb430 100644 (file)
@@ -210,7 +210,7 @@ enabled due to a missing include file in file
 <li> Fixed: Bug in 3d with hanging nodes in GridTools::find_cells_adjacent_to_vertex()
 that caused find_active_cell_around_point() to fail in those cases.
 <br>
-(Timo Heister, 2012/05/29)
+(Timo Heister, Wolfgang Bangerth 2012/05/30)
 
 <li> New: The GridIn::read_unv function can now read meshes generated
 by the Salome framework, see http://www.salome-platform.org/ .
index 7c2a4217963247aace76cacf11624a6e0197ce3c..31d9e344c3207bda1f0290a63e41ef1658ed6016 100644 (file)
@@ -276,12 +276,11 @@ namespace GridTools
                                     *
                                     * For locally refined grids, the
                                     * vertex itself might not be a vertex
-                                    * of all adjacent cells, but will
-                                    * always be located on a face or an
-                                    * edge of the adjacent cells returned.
-                                    *
-                                    * @author Ralf B. Schulz,
-                                    * Wolfgang Bangerth, 2006
+                                    * of all adjacent cells that are returned.
+                                    * However, it will
+                                    * always be either a vertex of a cell of be
+                                    * a hanging node located on a face or an
+                                    * edge of it.
                                     */
   template<int dim, template <int, int> class Container, int spacedim>
   std::vector<typename Container<dim,spacedim>::active_cell_iterator>
index d107d2e9c5a0c986f56bdf4f1a5a02b4e42152da..1d8aceb57a00b224b0fa82a03a69bc40334c2221 100644 (file)
@@ -670,128 +670,113 @@ namespace GridTools
     Assert(get_tria(container).get_used_vertices()[vertex],
            ExcVertexNotUsed(vertex));
 
-                                     // We use a set instead of a vector
+                                     // use a set instead of a vector
                                      // to ensure that cells are inserted only
-                                     // once. A bug in the previous version
-                                     // prevented some cases to be
-                                     // treated correctly
-    std::set<typename Container<dim,spacedim>::active_cell_iterator> adj_cells_set;
+                                     // once
+    std::set<typename Container<dim,spacedim>::active_cell_iterator> adjacent_cells;
 
     typename Container<dim,spacedim>::active_cell_iterator
       cell = container.begin_active(),
       endc = container.end();
 
-                                     // go through all active cells and look
-                                     // if the vertex is part of that cell
+    // go through all active cells and look. if the vertex is part of that cell
+    //
+    // in 1d, this is all we need to care about. in 2d/3d we also need to worry
+    // that the vertex might be a hanging node on a face or edge of a cell; in
+    // this case, we would want to add those cells as well on whose faces the
+    // vertex is located but for which it is not a vertex itself.
+    //
+    // getting this right is a lot simpler in 2d than in 3d. in 2d, a hanging
+    // node can only be in the middle of a face and we can query the neighboring
+    // cell from the current cell. on the other hand, in 3d a hanging node
+    // vertex can also be on an edge but there can be many other cells on
+    // this edge and we can not access them from the cell we are currently
+    // on.
+    //
+    // so, in the 3d case, if we run the algorithm as in 2d, we catch all
+    // those cells for which the vertex we seek is on a *subface*, but we
+    // miss the case of cells for which the vertex we seek is on a
+    // sub-edge for which there is no corresponding sub-face (because the
+    // immediate neighbor behind this face is not refined), see for example
+    // the bits/find_cells_adjacent_to_vertex_6 testcase. thus, if we
+    // haven't yet found the vertex for the current cell we also need to
+    // look at the mid-points of edges
     for (; cell != endc; ++cell)
-      for (unsigned v = 0; v < GeometryInfo<dim>::vertices_per_cell; v++)
-        if (cell->vertex_index(v) == vertex)
-          {
-                                             // OK, we found a cell that contains
-                                             // the particular vertex. We add it
-                                             // to the list.
-            adj_cells_set.insert(cell);
-
-                                             // Now we need to make sure that the
-                                             // vertex is not a locally refined
-                                             // vertex not being part of the
-                                             // neighboring cells. So we loop over
-                                             // all faces to which this vertex
-                                             // belongs, check the level of
-                                             // the neighbor, and if it is coarser,
-                                             // then check whether the vertex is
-                                             // part of that neighbor or not.
-            for (unsigned vface = 0; vface < dim; vface++)
-              {
-                const unsigned face =
-                  GeometryInfo<dim>::vertex_to_face[v][vface];
-                if (!cell->at_boundary(face))
+      {
+        for (unsigned v = 0; v < GeometryInfo<dim>::vertices_per_cell; v++)
+          if (cell->vertex_index(v) == vertex)
+            {
+              // OK, we found a cell that contains
+              // the given vertex. We add it
+              // to the list.
+              adjacent_cells.insert(cell);
+
+              // as explained above, in 2+d we need to check whether
+              // this vertex is on a face behind which there is a coarser
+              // neighbor. if this is the case, then we need to also
+              // add this neighbor
+              if (dim >= 2)
+                for (unsigned vface = 0; vface < dim; vface++)
                   {
-                    typename Container<dim,spacedim>::cell_iterator
-                      nb = cell->neighbor(face);
-
-                                                     // Here we
-                                                     // check
-                                                     // whether
-                                                     // the
-                                                     // neighbor
-                                                     // is
-                                                     // coarser. If
-                                                     // it is, we
-                                                     // search
-                                                     // for the
-                                                     // vertex in
-                                                     // this
-                                                     // coarser
-                                                     // cell and
-                                                     // only if
-                                                     // not found
-                                                     // we will
-                                                     // add the
-                                                     // coarser
-                                                     // cell
-                                                     // itself
-                    if (nb->level() < cell->level())
+                    const unsigned int face =
+                        GeometryInfo<dim>::vertex_to_face[v][vface];
+
+                    if (!cell->at_boundary(face)
+                        &&
+                        (cell->neighbor(face)->level() < cell->level()))
                       {
-                        bool found = false;
-                        for (unsigned v=0; v<GeometryInfo<dim>::vertices_per_cell; v++)
-                          if (nb->vertex_index(v) == vertex)
-                            {
-                              found = true;
-                              break;
-                            }
-                        if (!found)
-                         {
-                                                            //TODO: it is not
-                                                            //enough to walk
-                                                            //over faces to
-                                                            //the neighbors
-                                                            //because the
-                                                            //point may lie
-                                                            //in a cell that
-                                                            //only shares an
-                                                            //edge with cell
-                                                            //in 3d. Current
-                                                            //workaround: add
-                                                            //all neighbors
-                                                            //of all
-                                                            //neighbors if
-                                                            //this vertex is
-                                                            //a hanging node
-                                                            //in 3d. [TH]
-                          adj_cells_set.insert(nb);
-                         if (dim==3)
-                           {
-                             for (unsigned faceindex = 0; faceindex < GeometryInfo<dim>::faces_per_cell; faceindex++)
-                               {
-                                 if (!nb->at_boundary(faceindex) && nb->neighbor(faceindex)->active())
-                                   adj_cells_set.insert(nb->neighbor(faceindex));
-                               }
-                           }
-                         }
-                       
+                        // there is a coarser cell behind a face to which the
+                        // vertex belongs. the vertex we are looking at is
+                        // then either a vertex of that coarser neighbor,
+                        // or it is a hanging node on one of the faces of
+                        // that cell. in either case, it is adjacent
+                        // to the vertex, so add it to the list as well
+                        // (if the cell was already in the list then
+                        // the std::set makes sure that we get it only once)
+                        adjacent_cells.insert (cell->neighbor(face));
+                        goto next_cell;
                       }
                   }
-              }
 
-            break;
-          }
+              // in any case, we have found a cell, so go to the next cell
+              goto next_cell;
+            }
 
-    std::vector<typename Container<dim,spacedim>::active_cell_iterator>
-      adjacent_cells;
+        // in 3d also loop over the edges
+        if (dim >= 3)
+          {
+            for (unsigned e=0; e<GeometryInfo<dim>::lines_per_cell; ++e)
+              if (cell->line(e)->has_children())
+                // the only place where this vertex could have been
+                // hiding is on the mid-edge point of the edge we
+                // are looking at
+                if (cell->line(e)->child(0)->vertex_index(1) == vertex)
+                  {
+                    adjacent_cells.insert(cell);
+
+                    // jump out of this tangle of nested loops
+                    goto next_cell;
+                  }
+          }
 
-                                     // We now produce the output vector
-                                     // from the set that we assembled above.
-    typename std::set<typename Container<dim,spacedim>::active_cell_iterator>::iterator
-      it = adj_cells_set.begin(),
-      endit = adj_cells_set.end();
-    for(; it != endit; ++it)
-      adjacent_cells.push_back(*it);
+        // in more than 3d we would probably have to do the same as
+        // above also for even lower-dimensional objects
+        Assert (dim <= 3, ExcNotImplemented());
 
+        // move on to the next cell if we have found the
+        // vertex on the current one
+        next_cell:
+        ;
+      }
 
-    Assert(adjacent_cells.size() > 0, ExcInternalError());
+    // if this was an active vertex then there needs to have been
+    // at least one cell to which it is adjacent!
+    Assert (adjacent_cells.size() > 0, ExcInternalError());
 
-    return adjacent_cells;
+    // return the result as a vector, rather than the set we built above
+    return
+    std::vector<typename Container<dim,spacedim>::active_cell_iterator>
+    (adjacent_cells.begin(), adjacent_cells.end());
   }
 
 
index 08923262509fee09866619d8745287aa04e18086..ac8a4b6a138ccf3552ec6245ee26ff5e797e4c50 100644 (file)
@@ -37,11 +37,8 @@ void check (Triangulation<3> &tria)
 
       deallog << "Vertex " << i << " at " << tria.get_vertices()[i] << ": " << cells.size() << " cells" << std::endl;
 
-      for(unsigned c=0; c<cells.size(); c++) {
-       for (unsigned int v=0; v<GeometryInfo<3>::vertices_per_cell; ++v)
-         deallog << "<" << cells[c]->vertex(v) << "> ";
-       deallog << std::endl;
-      }
+      for(unsigned c=0; c<cells.size(); c++)
+       deallog << "   " << cells[c] << std::endl;
     }
 }
 
index 75a703a6c9028f2e8e84b4d88cd9920896b66f23..f3e4d24eddda49048ba1d565872f0d4ef8f385b2 100644 (file)
 
 DEAL::Vertex 0 at 0.00000 0.00000 0.00000: 1 cells
-DEAL::<0.00000 0.00000 0.00000> <0.250000 0.00000 0.00000> <0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> 
+DEAL::   2.0
 DEAL::Vertex 1 at 1.00000 0.00000 0.00000: 1 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
+DEAL::   1.1
 DEAL::Vertex 2 at 0.00000 1.00000 0.00000: 1 cells
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
+DEAL::   1.2
 DEAL::Vertex 3 at 1.00000 1.00000 0.00000: 1 cells
-DEAL::<0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 1.00000 0.00000> <1.00000 1.00000 0.00000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> 
+DEAL::   1.3
 DEAL::Vertex 4 at 0.00000 0.00000 1.00000: 1 cells
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
+DEAL::   1.4
 DEAL::Vertex 5 at 1.00000 0.00000 1.00000: 1 cells
-DEAL::<0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 0.00000 1.00000> <1.00000 0.00000 1.00000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> 
+DEAL::   1.5
 DEAL::Vertex 6 at 0.00000 1.00000 1.00000: 1 cells
-DEAL::<0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> <0.00000 1.00000 1.00000> <0.500000 1.00000 1.00000> 
+DEAL::   1.6
 DEAL::Vertex 7 at 1.00000 1.00000 1.00000: 1 cells
-DEAL::<0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> <0.500000 1.00000 1.00000> <1.00000 1.00000 1.00000> 
+DEAL::   1.7
 DEAL::Vertex 8 at 0.500000 0.00000 0.00000: 2 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.250000 0.00000 0.00000> <0.500000 0.00000 0.00000> <0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> 
+DEAL::   1.1
+DEAL::   2.1
 DEAL::Vertex 9 at 0.00000 0.500000 0.00000: 2 cells
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.500000 0.00000> <0.250000 0.500000 0.00000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> 
+DEAL::   1.2
+DEAL::   2.2
 DEAL::Vertex 10 at 0.00000 0.00000 0.500000: 2 cells
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.00000 0.500000> <0.250000 0.00000 0.500000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> 
+DEAL::   1.4
+DEAL::   2.4
 DEAL::Vertex 11 at 1.00000 0.500000 0.00000: 2 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 1.00000 0.00000> <1.00000 1.00000 0.00000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> 
+DEAL::   1.1
+DEAL::   1.3
 DEAL::Vertex 12 at 1.00000 0.00000 0.500000: 2 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 0.00000 1.00000> <1.00000 0.00000 1.00000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> 
+DEAL::   1.1
+DEAL::   1.5
 DEAL::Vertex 13 at 0.500000 1.00000 0.00000: 2 cells
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 1.00000 0.00000> <1.00000 1.00000 0.00000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> 
+DEAL::   1.2
+DEAL::   1.3
 DEAL::Vertex 14 at 0.00000 1.00000 0.500000: 2 cells
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> <0.00000 1.00000 1.00000> <0.500000 1.00000 1.00000> 
+DEAL::   1.2
+DEAL::   1.6
 DEAL::Vertex 15 at 1.00000 1.00000 0.500000: 2 cells
-DEAL::<0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 1.00000 0.00000> <1.00000 1.00000 0.00000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> 
-DEAL::<0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> <0.500000 1.00000 1.00000> <1.00000 1.00000 1.00000> 
+DEAL::   1.3
+DEAL::   1.7
 DEAL::Vertex 16 at 0.500000 0.00000 1.00000: 2 cells
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 0.00000 1.00000> <1.00000 0.00000 1.00000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> 
+DEAL::   1.4
+DEAL::   1.5
 DEAL::Vertex 17 at 0.00000 0.500000 1.00000: 2 cells
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> <0.00000 1.00000 1.00000> <0.500000 1.00000 1.00000> 
+DEAL::   1.4
+DEAL::   1.6
 DEAL::Vertex 18 at 1.00000 0.500000 1.00000: 2 cells
-DEAL::<0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 0.00000 1.00000> <1.00000 0.00000 1.00000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> 
-DEAL::<0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> <0.500000 1.00000 1.00000> <1.00000 1.00000 1.00000> 
+DEAL::   1.5
+DEAL::   1.7
 DEAL::Vertex 19 at 0.500000 1.00000 1.00000: 2 cells
-DEAL::<0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> <0.00000 1.00000 1.00000> <0.500000 1.00000 1.00000> 
-DEAL::<0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> <0.500000 1.00000 1.00000> <1.00000 1.00000 1.00000> 
+DEAL::   1.6
+DEAL::   1.7
 DEAL::Vertex 20 at 0.500000 0.00000 0.500000: 4 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 0.00000 1.00000> <1.00000 0.00000 1.00000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> 
-DEAL::<0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> 
+DEAL::   1.1
+DEAL::   1.4
+DEAL::   1.5
+DEAL::   2.5
 DEAL::Vertex 21 at 0.500000 0.500000 0.00000: 4 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 1.00000 0.00000> <1.00000 1.00000 0.00000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> 
-DEAL::<0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> 
+DEAL::   1.1
+DEAL::   1.2
+DEAL::   1.3
+DEAL::   2.3
 DEAL::Vertex 22 at 0.00000 0.500000 0.500000: 4 cells
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> <0.00000 1.00000 1.00000> <0.500000 1.00000 1.00000> 
-DEAL::<0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> <0.00000 0.500000 0.500000> <0.250000 0.500000 0.500000> 
+DEAL::   1.2
+DEAL::   1.4
+DEAL::   1.6
+DEAL::   2.6
 DEAL::Vertex 23 at 1.00000 0.500000 0.500000: 4 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 1.00000 0.00000> <1.00000 1.00000 0.00000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> 
-DEAL::<0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 0.00000 1.00000> <1.00000 0.00000 1.00000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> 
-DEAL::<0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> <0.500000 1.00000 1.00000> <1.00000 1.00000 1.00000> 
+DEAL::   1.1
+DEAL::   1.3
+DEAL::   1.5
+DEAL::   1.7
 DEAL::Vertex 24 at 0.500000 1.00000 0.500000: 4 cells
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 1.00000 0.00000> <1.00000 1.00000 0.00000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> 
-DEAL::<0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> <0.00000 1.00000 1.00000> <0.500000 1.00000 1.00000> 
-DEAL::<0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> <0.500000 1.00000 1.00000> <1.00000 1.00000 1.00000> 
+DEAL::   1.2
+DEAL::   1.3
+DEAL::   1.6
+DEAL::   1.7
 DEAL::Vertex 25 at 0.500000 0.500000 1.00000: 4 cells
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 0.00000 1.00000> <1.00000 0.00000 1.00000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> 
-DEAL::<0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> <0.00000 1.00000 1.00000> <0.500000 1.00000 1.00000> 
-DEAL::<0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> <0.500000 1.00000 1.00000> <1.00000 1.00000 1.00000> 
+DEAL::   1.4
+DEAL::   1.5
+DEAL::   1.6
+DEAL::   1.7
 DEAL::Vertex 26 at 0.500000 0.500000 0.500000: 8 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 1.00000 0.00000> <1.00000 1.00000 0.00000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> 
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 0.00000 1.00000> <1.00000 0.00000 1.00000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> 
-DEAL::<0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> <0.00000 1.00000 1.00000> <0.500000 1.00000 1.00000> 
-DEAL::<0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> <0.500000 1.00000 0.500000> <1.00000 1.00000 0.500000> <0.500000 0.500000 1.00000> <1.00000 0.500000 1.00000> <0.500000 1.00000 1.00000> <1.00000 1.00000 1.00000> 
-DEAL::<0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> <0.250000 0.500000 0.500000> <0.500000 0.500000 0.500000> 
+DEAL::   1.1
+DEAL::   1.2
+DEAL::   1.3
+DEAL::   1.4
+DEAL::   1.5
+DEAL::   1.6
+DEAL::   1.7
+DEAL::   2.7
 DEAL::Vertex 27 at 0.250000 0.00000 0.00000: 2 cells
-DEAL::<0.00000 0.00000 0.00000> <0.250000 0.00000 0.00000> <0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> 
-DEAL::<0.250000 0.00000 0.00000> <0.500000 0.00000 0.00000> <0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> 
+DEAL::   2.0
+DEAL::   2.1
 DEAL::Vertex 28 at 0.00000 0.250000 0.00000: 2 cells
-DEAL::<0.00000 0.00000 0.00000> <0.250000 0.00000 0.00000> <0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> 
-DEAL::<0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.500000 0.00000> <0.250000 0.500000 0.00000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> 
+DEAL::   2.0
+DEAL::   2.2
 DEAL::Vertex 29 at 0.00000 0.00000 0.250000: 2 cells
-DEAL::<0.00000 0.00000 0.00000> <0.250000 0.00000 0.00000> <0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> 
-DEAL::<0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.00000 0.500000> <0.250000 0.00000 0.500000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> 
+DEAL::   2.0
+DEAL::   2.4
 DEAL::Vertex 30 at 0.250000 0.00000 0.500000: 3 cells
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.00000 0.500000> <0.250000 0.00000 0.500000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> 
-DEAL::<0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> 
+DEAL::   1.4
+DEAL::   2.4
+DEAL::   2.5
 DEAL::Vertex 31 at 0.500000 0.00000 0.250000: 3 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.250000 0.00000 0.00000> <0.500000 0.00000 0.00000> <0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> 
-DEAL::<0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> 
+DEAL::   1.1
+DEAL::   2.1
+DEAL::   2.5
 DEAL::Vertex 32 at 0.500000 0.250000 0.00000: 3 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.250000 0.00000 0.00000> <0.500000 0.00000 0.00000> <0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> 
-DEAL::<0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> 
+DEAL::   1.1
+DEAL::   2.1
+DEAL::   2.3
 DEAL::Vertex 33 at 0.250000 0.500000 0.00000: 3 cells
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.500000 0.00000> <0.250000 0.500000 0.00000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> 
-DEAL::<0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> 
+DEAL::   1.2
+DEAL::   2.2
+DEAL::   2.3
 DEAL::Vertex 34 at 0.00000 0.500000 0.250000: 3 cells
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.500000 0.00000> <0.250000 0.500000 0.00000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> 
-DEAL::<0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> <0.00000 0.500000 0.500000> <0.250000 0.500000 0.500000> 
+DEAL::   1.2
+DEAL::   2.2
+DEAL::   2.6
 DEAL::Vertex 35 at 0.00000 0.250000 0.500000: 3 cells
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.00000 0.500000> <0.250000 0.00000 0.500000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> 
-DEAL::<0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> <0.00000 0.500000 0.500000> <0.250000 0.500000 0.500000> 
-DEAL::Vertex 36 at 0.500000 0.500000 0.250000: 4 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> 
-DEAL::<0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> <0.250000 0.500000 0.500000> <0.500000 0.500000 0.500000> 
-DEAL::Vertex 37 at 0.250000 0.500000 0.500000: 4 cells
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> <0.00000 0.500000 0.500000> <0.250000 0.500000 0.500000> 
-DEAL::<0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> <0.250000 0.500000 0.500000> <0.500000 0.500000 0.500000> 
-DEAL::Vertex 38 at 0.500000 0.250000 0.500000: 4 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> 
-DEAL::<0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> <0.250000 0.500000 0.500000> <0.500000 0.500000 0.500000> 
+DEAL::   1.4
+DEAL::   2.4
+DEAL::   2.6
+DEAL::Vertex 36 at 0.500000 0.500000 0.250000: 5 cells
+DEAL::   1.1
+DEAL::   1.2
+DEAL::   1.3
+DEAL::   2.3
+DEAL::   2.7
+DEAL::Vertex 37 at 0.250000 0.500000 0.500000: 5 cells
+DEAL::   1.2
+DEAL::   1.4
+DEAL::   1.6
+DEAL::   2.6
+DEAL::   2.7
+DEAL::Vertex 38 at 0.500000 0.250000 0.500000: 5 cells
+DEAL::   1.1
+DEAL::   1.4
+DEAL::   1.5
+DEAL::   2.5
+DEAL::   2.7
 DEAL::Vertex 39 at 0.250000 0.00000 0.250000: 4 cells
-DEAL::<0.00000 0.00000 0.00000> <0.250000 0.00000 0.00000> <0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> 
-DEAL::<0.250000 0.00000 0.00000> <0.500000 0.00000 0.00000> <0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> 
-DEAL::<0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.00000 0.500000> <0.250000 0.00000 0.500000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> 
-DEAL::<0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> 
+DEAL::   2.0
+DEAL::   2.1
+DEAL::   2.4
+DEAL::   2.5
 DEAL::Vertex 40 at 0.250000 0.250000 0.00000: 4 cells
-DEAL::<0.00000 0.00000 0.00000> <0.250000 0.00000 0.00000> <0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> 
-DEAL::<0.250000 0.00000 0.00000> <0.500000 0.00000 0.00000> <0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> 
-DEAL::<0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.500000 0.00000> <0.250000 0.500000 0.00000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> 
-DEAL::<0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> 
+DEAL::   2.0
+DEAL::   2.1
+DEAL::   2.2
+DEAL::   2.3
 DEAL::Vertex 41 at 0.00000 0.250000 0.250000: 4 cells
-DEAL::<0.00000 0.00000 0.00000> <0.250000 0.00000 0.00000> <0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> 
-DEAL::<0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.500000 0.00000> <0.250000 0.500000 0.00000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> 
-DEAL::<0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.00000 0.500000> <0.250000 0.00000 0.500000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> 
-DEAL::<0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> <0.00000 0.500000 0.500000> <0.250000 0.500000 0.500000> 
+DEAL::   2.0
+DEAL::   2.2
+DEAL::   2.4
+DEAL::   2.6
 DEAL::Vertex 42 at 0.250000 0.250000 0.500000: 5 cells
-DEAL::<0.00000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 0.00000 1.00000> <0.500000 0.00000 1.00000> <0.00000 0.500000 1.00000> <0.500000 0.500000 1.00000> 
-DEAL::<0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.00000 0.500000> <0.250000 0.00000 0.500000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> 
-DEAL::<0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> 
-DEAL::<0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> <0.00000 0.500000 0.500000> <0.250000 0.500000 0.500000> 
-DEAL::<0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> <0.250000 0.500000 0.500000> <0.500000 0.500000 0.500000> 
+DEAL::   1.4
+DEAL::   2.4
+DEAL::   2.5
+DEAL::   2.6
+DEAL::   2.7
 DEAL::Vertex 43 at 0.250000 0.500000 0.250000: 5 cells
-DEAL::<0.00000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.00000 1.00000 0.00000> <0.500000 1.00000 0.00000> <0.00000 0.500000 0.500000> <0.500000 0.500000 0.500000> <0.00000 1.00000 0.500000> <0.500000 1.00000 0.500000> 
-DEAL::<0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.500000 0.00000> <0.250000 0.500000 0.00000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> 
-DEAL::<0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> 
-DEAL::<0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> <0.00000 0.500000 0.500000> <0.250000 0.500000 0.500000> 
-DEAL::<0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> <0.250000 0.500000 0.500000> <0.500000 0.500000 0.500000> 
+DEAL::   1.2
+DEAL::   2.2
+DEAL::   2.3
+DEAL::   2.6
+DEAL::   2.7
 DEAL::Vertex 44 at 0.500000 0.250000 0.250000: 5 cells
-DEAL::<0.500000 0.00000 0.00000> <1.00000 0.00000 0.00000> <0.500000 0.500000 0.00000> <1.00000 0.500000 0.00000> <0.500000 0.00000 0.500000> <1.00000 0.00000 0.500000> <0.500000 0.500000 0.500000> <1.00000 0.500000 0.500000> 
-DEAL::<0.250000 0.00000 0.00000> <0.500000 0.00000 0.00000> <0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> 
-DEAL::<0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> 
-DEAL::<0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> 
-DEAL::<0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> <0.250000 0.500000 0.500000> <0.500000 0.500000 0.500000> 
+DEAL::   1.1
+DEAL::   2.1
+DEAL::   2.3
+DEAL::   2.5
+DEAL::   2.7
 DEAL::Vertex 45 at 0.250000 0.250000 0.250000: 8 cells
-DEAL::<0.00000 0.00000 0.00000> <0.250000 0.00000 0.00000> <0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> 
-DEAL::<0.250000 0.00000 0.00000> <0.500000 0.00000 0.00000> <0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> 
-DEAL::<0.00000 0.250000 0.00000> <0.250000 0.250000 0.00000> <0.00000 0.500000 0.00000> <0.250000 0.500000 0.00000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> 
-DEAL::<0.250000 0.250000 0.00000> <0.500000 0.250000 0.00000> <0.250000 0.500000 0.00000> <0.500000 0.500000 0.00000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> 
-DEAL::<0.00000 0.00000 0.250000> <0.250000 0.00000 0.250000> <0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.00000 0.500000> <0.250000 0.00000 0.500000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> 
-DEAL::<0.250000 0.00000 0.250000> <0.500000 0.00000 0.250000> <0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.00000 0.500000> <0.500000 0.00000 0.500000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> 
-DEAL::<0.00000 0.250000 0.250000> <0.250000 0.250000 0.250000> <0.00000 0.500000 0.250000> <0.250000 0.500000 0.250000> <0.00000 0.250000 0.500000> <0.250000 0.250000 0.500000> <0.00000 0.500000 0.500000> <0.250000 0.500000 0.500000> 
-DEAL::<0.250000 0.250000 0.250000> <0.500000 0.250000 0.250000> <0.250000 0.500000 0.250000> <0.500000 0.500000 0.250000> <0.250000 0.250000 0.500000> <0.500000 0.250000 0.500000> <0.250000 0.500000 0.500000> <0.500000 0.500000 0.500000> 
+DEAL::   2.0
+DEAL::   2.1
+DEAL::   2.2
+DEAL::   2.3
+DEAL::   2.4
+DEAL::   2.5
+DEAL::   2.6
+DEAL::   2.7
diff --git a/tests/bits/find_cells_adjacent_to_vertex_5.cc b/tests/bits/find_cells_adjacent_to_vertex_5.cc
new file mode 100644 (file)
index 0000000..e703772
--- /dev/null
@@ -0,0 +1,103 @@
+//  ---------------- find_cells_adjacent_to_vertex_5.cc  ------------------
+//    $Id$
+//    Version: $Name$
+//
+//    Copyright (C) 2006, 2012 by the deal.II authors and Ralf B. Schulz
+//
+//    This file is subject to QPL and may not be  distributed
+//    without copyright and license information. Please refer
+//    to the file deal.II/doc/license.html for the  text  and
+//    further information on this license.
+//
+//  ---------------- find_cells_adjacent_to_vertex_5.cc  ------------------
+
+
+// similar to the _3 test: a mesh where 8 2d cells meet at one
+// point. we then extrude this mesh into the z-direction
+//
+// this test does not use any local refinement
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/grid/tria.h>
+#include <deal.II/grid/tria_accessor.h>
+#include <deal.II/grid/tria_iterator.h>
+#include <deal.II/grid/grid_tools.h>
+
+#include <fstream>
+
+
+void check (Triangulation<3> &tria)
+{
+  for(unsigned i=0; i<tria.n_vertices(); i++)
+    {
+      std::vector<Triangulation<3>::active_cell_iterator>
+       cells = GridTools::find_cells_adjacent_to_vertex(tria, i);
+
+      deallog << "Vertex " << i << " at "
+             << tria.get_vertices()[i] << ": "
+             << cells.size() << " cells" << std::endl;
+
+      for(unsigned c=0; c<cells.size(); c++)
+       deallog << "   " << cells[c] << std::endl;
+    }
+}
+
+
+int main ()
+{
+  std::ofstream logfile("find_cells_adjacent_to_vertex_5/output");
+  deallog.attach(logfile);
+  deallog.depth_console(0);
+  deallog.threshold_double(1.e-10);
+
+  try
+    {
+                                      // set up the vertices of the
+                                      // cells: the center plus 16
+                                      // points on the perimeter of a
+                                      // circle
+      const unsigned int dim = 3;
+      std::vector<Point<dim> > vertices;
+      vertices.push_back (Point<dim>(0,0,0));
+
+      for (unsigned int i=0; i<16; ++i)
+       vertices.push_back (Point<dim>(std::cos(i*2*numbers::PI/16),
+                                      std::sin(i*2*numbers::PI/16),
+                                      0));
+
+                                      // then extrude the mesh into
+                                      // z-direction
+      for (unsigned int i=0; i<17; ++i)
+       vertices.push_back (Point<dim>(vertices[i][0],
+                                      vertices[i][1],
+                                      1));
+
+                                      // now create the 8 cells
+      std::vector<CellData<dim> > cells;
+      for (unsigned int c=0; c<8; ++c)
+       {
+         CellData<dim> d;
+         d.vertices[0] = 0;
+         d.vertices[1] = 1+2*c;
+         d.vertices[2] = 1+((2*c+2) % 16);
+         d.vertices[3] = 1+2*c+1;
+
+         for (unsigned int v=4; v<8; ++v)
+           d.vertices[v] = d.vertices[v-4]+17;
+
+         cells.push_back(d);
+       }
+
+      Triangulation<dim> coarse_grid;
+      coarse_grid.create_triangulation (vertices, cells,
+                                       SubCellData());
+      check (coarse_grid);
+    }
+  catch (const std::exception &exc)
+    {
+                                      // we shouldn't get here...
+      deallog << "Caught an error..." << std::endl;
+      deallog << exc.what() << std::endl;
+    }
+}
diff --git a/tests/bits/find_cells_adjacent_to_vertex_5/cmp/generic b/tests/bits/find_cells_adjacent_to_vertex_5/cmp/generic
new file mode 100644 (file)
index 0000000..ae9afdd
--- /dev/null
@@ -0,0 +1,99 @@
+
+DEAL::Vertex 0 at 0.00000 0.00000 0.00000: 8 cells
+DEAL::   0.0
+DEAL::   0.1
+DEAL::   0.2
+DEAL::   0.3
+DEAL::   0.4
+DEAL::   0.5
+DEAL::   0.6
+DEAL::   0.7
+DEAL::Vertex 1 at 1.00000 0.00000 0.00000: 2 cells
+DEAL::   0.0
+DEAL::   0.7
+DEAL::Vertex 2 at 0.923880 0.382683 0.00000: 1 cells
+DEAL::   0.0
+DEAL::Vertex 3 at 0.707107 0.707107 0.00000: 2 cells
+DEAL::   0.0
+DEAL::   0.1
+DEAL::Vertex 4 at 0.382683 0.923880 0.00000: 1 cells
+DEAL::   0.1
+DEAL::Vertex 5 at 6.12323e-17 1.00000 0.00000: 2 cells
+DEAL::   0.1
+DEAL::   0.2
+DEAL::Vertex 6 at -0.382683 0.923880 0.00000: 1 cells
+DEAL::   0.2
+DEAL::Vertex 7 at -0.707107 0.707107 0.00000: 2 cells
+DEAL::   0.2
+DEAL::   0.3
+DEAL::Vertex 8 at -0.923880 0.382683 0.00000: 1 cells
+DEAL::   0.3
+DEAL::Vertex 9 at -1.00000 1.22465e-16 0.00000: 2 cells
+DEAL::   0.3
+DEAL::   0.4
+DEAL::Vertex 10 at -0.923880 -0.382683 0.00000: 1 cells
+DEAL::   0.4
+DEAL::Vertex 11 at -0.707107 -0.707107 0.00000: 2 cells
+DEAL::   0.4
+DEAL::   0.5
+DEAL::Vertex 12 at -0.382683 -0.923880 0.00000: 1 cells
+DEAL::   0.5
+DEAL::Vertex 13 at -1.83697e-16 -1.00000 0.00000: 2 cells
+DEAL::   0.5
+DEAL::   0.6
+DEAL::Vertex 14 at 0.382683 -0.923880 0.00000: 1 cells
+DEAL::   0.6
+DEAL::Vertex 15 at 0.707107 -0.707107 0.00000: 2 cells
+DEAL::   0.6
+DEAL::   0.7
+DEAL::Vertex 16 at 0.923880 -0.382683 0.00000: 1 cells
+DEAL::   0.7
+DEAL::Vertex 17 at 0.00000 0.00000 1.00000: 8 cells
+DEAL::   0.0
+DEAL::   0.1
+DEAL::   0.2
+DEAL::   0.3
+DEAL::   0.4
+DEAL::   0.5
+DEAL::   0.6
+DEAL::   0.7
+DEAL::Vertex 18 at 1.00000 0.00000 1.00000: 2 cells
+DEAL::   0.0
+DEAL::   0.7
+DEAL::Vertex 19 at 0.923880 0.382683 1.00000: 1 cells
+DEAL::   0.0
+DEAL::Vertex 20 at 0.707107 0.707107 1.00000: 2 cells
+DEAL::   0.0
+DEAL::   0.1
+DEAL::Vertex 21 at 0.382683 0.923880 1.00000: 1 cells
+DEAL::   0.1
+DEAL::Vertex 22 at 6.12323e-17 1.00000 1.00000: 2 cells
+DEAL::   0.1
+DEAL::   0.2
+DEAL::Vertex 23 at -0.382683 0.923880 1.00000: 1 cells
+DEAL::   0.2
+DEAL::Vertex 24 at -0.707107 0.707107 1.00000: 2 cells
+DEAL::   0.2
+DEAL::   0.3
+DEAL::Vertex 25 at -0.923880 0.382683 1.00000: 1 cells
+DEAL::   0.3
+DEAL::Vertex 26 at -1.00000 1.22465e-16 1.00000: 2 cells
+DEAL::   0.3
+DEAL::   0.4
+DEAL::Vertex 27 at -0.923880 -0.382683 1.00000: 1 cells
+DEAL::   0.4
+DEAL::Vertex 28 at -0.707107 -0.707107 1.00000: 2 cells
+DEAL::   0.4
+DEAL::   0.5
+DEAL::Vertex 29 at -0.382683 -0.923880 1.00000: 1 cells
+DEAL::   0.5
+DEAL::Vertex 30 at -1.83697e-16 -1.00000 1.00000: 2 cells
+DEAL::   0.5
+DEAL::   0.6
+DEAL::Vertex 31 at 0.382683 -0.923880 1.00000: 1 cells
+DEAL::   0.6
+DEAL::Vertex 32 at 0.707107 -0.707107 1.00000: 2 cells
+DEAL::   0.6
+DEAL::   0.7
+DEAL::Vertex 33 at 0.923880 -0.382683 1.00000: 1 cells
+DEAL::   0.7
diff --git a/tests/bits/find_cells_adjacent_to_vertex_6.cc b/tests/bits/find_cells_adjacent_to_vertex_6.cc
new file mode 100644 (file)
index 0000000..5eb4a64
--- /dev/null
@@ -0,0 +1,113 @@
+//  ---------------- find_cells_adjacent_to_vertex_6.cc  ------------------
+//    $Id$
+//    Version: $Name$
+//
+//    Copyright (C) 2006, 2012 by the deal.II authors and Ralf B. Schulz
+//
+//    This file is subject to QPL and may not be  distributed
+//    without copyright and license information. Please refer
+//    to the file deal.II/doc/license.html for the  text  and
+//    further information on this license.
+//
+//  ---------------- find_cells_adjacent_to_vertex_6.cc  ------------------
+
+
+// similar to the _3 test: a mesh where 8 2d cells meet at one
+// point. we then extrude this mesh into the z-direction
+//
+// this test then refines one cell. this creates a number of
+// interesting problems in that the vertex in the middle of the
+// original edge along the axis of the domain is a vertex of 2 cells,
+// but is also adjacent to all 7 of the remaining level-0 cells even
+// though only two of those are neighbors of the two small cells of
+// which the vertex is a part of.
+
+#include "../tests.h"
+#include <deal.II/base/logstream.h>
+#include <deal.II/grid/tria.h>
+#include <deal.II/grid/tria_accessor.h>
+#include <deal.II/grid/tria_iterator.h>
+#include <deal.II/grid/grid_tools.h>
+
+#include <fstream>
+
+
+void check (Triangulation<3> &tria)
+{
+  for(unsigned i=0; i<tria.n_vertices(); i++)
+    {
+      std::vector<Triangulation<3>::active_cell_iterator>
+       cells = GridTools::find_cells_adjacent_to_vertex(tria, i);
+
+      deallog << "Vertex " << i << " at "
+             << tria.get_vertices()[i] << ": "
+             << cells.size() << " cells" << std::endl;
+
+      for(unsigned c=0; c<cells.size(); c++)
+       deallog << "   " << cells[c] << std::endl;
+    }
+}
+
+
+int main ()
+{
+  std::ofstream logfile("find_cells_adjacent_to_vertex_6/output");
+  deallog.attach(logfile);
+  deallog.depth_console(0);
+  deallog.threshold_double(1.e-10);
+
+  try
+    {
+                                      // set up the vertices of the
+                                      // cells: the center plus 16
+                                      // points on the perimeter of a
+                                      // circle
+      const unsigned int dim = 3;
+      std::vector<Point<dim> > vertices;
+      vertices.push_back (Point<dim>(0,0,0));
+
+      for (unsigned int i=0; i<16; ++i)
+       vertices.push_back (Point<dim>(std::cos(i*2*numbers::PI/16),
+                                      std::sin(i*2*numbers::PI/16),
+                                      0));
+
+                                      // then extrude the mesh into
+                                      // z-direction
+      for (unsigned int i=0; i<17; ++i)
+       vertices.push_back (Point<dim>(vertices[i][0],
+                                      vertices[i][1],
+                                      1));
+
+                                      // now create the 8 cells
+      std::vector<CellData<dim> > cells;
+      for (unsigned int c=0; c<8; ++c)
+       {
+         CellData<dim> d;
+         d.vertices[0] = 0;
+         d.vertices[1] = 1+2*c;
+         d.vertices[2] = 1+((2*c+2) % 16);
+         d.vertices[3] = 1+2*c+1;
+
+         for (unsigned int v=4; v<8; ++v)
+           d.vertices[v] = d.vertices[v-4]+17;
+
+         cells.push_back(d);
+       }
+
+      Triangulation<dim> coarse_grid;
+      coarse_grid.create_triangulation (vertices, cells,
+                                       SubCellData());
+
+                                      // now also refine one cell
+      coarse_grid.begin_active()->set_refine_flag();
+      coarse_grid.execute_coarsening_and_refinement();
+
+      check (coarse_grid);
+    }
+  catch (const std::exception &exc)
+    {
+                                      // we shouldn't get here...
+      deallog << "Caught an error..." << std::endl;
+      deallog << exc.what() << std::endl;
+    }
+}
diff --git a/tests/bits/find_cells_adjacent_to_vertex_6/cmp/generic b/tests/bits/find_cells_adjacent_to_vertex_6/cmp/generic
new file mode 100644 (file)
index 0000000..df705ec
--- /dev/null
@@ -0,0 +1,189 @@
+
+DEAL::Vertex 0 at 0.00000 0.00000 0.00000: 8 cells
+DEAL::   0.1
+DEAL::   0.2
+DEAL::   0.3
+DEAL::   0.4
+DEAL::   0.5
+DEAL::   0.6
+DEAL::   0.7
+DEAL::   1.0
+DEAL::Vertex 1 at 1.00000 0.00000 0.00000: 2 cells
+DEAL::   0.7
+DEAL::   1.1
+DEAL::Vertex 2 at 0.923880 0.382683 0.00000: 1 cells
+DEAL::   1.3
+DEAL::Vertex 3 at 0.707107 0.707107 0.00000: 2 cells
+DEAL::   0.1
+DEAL::   1.2
+DEAL::Vertex 4 at 0.382683 0.923880 0.00000: 1 cells
+DEAL::   0.1
+DEAL::Vertex 5 at 6.12323e-17 1.00000 0.00000: 2 cells
+DEAL::   0.1
+DEAL::   0.2
+DEAL::Vertex 6 at -0.382683 0.923880 0.00000: 1 cells
+DEAL::   0.2
+DEAL::Vertex 7 at -0.707107 0.707107 0.00000: 2 cells
+DEAL::   0.2
+DEAL::   0.3
+DEAL::Vertex 8 at -0.923880 0.382683 0.00000: 1 cells
+DEAL::   0.3
+DEAL::Vertex 9 at -1.00000 1.22465e-16 0.00000: 2 cells
+DEAL::   0.3
+DEAL::   0.4
+DEAL::Vertex 10 at -0.923880 -0.382683 0.00000: 1 cells
+DEAL::   0.4
+DEAL::Vertex 11 at -0.707107 -0.707107 0.00000: 2 cells
+DEAL::   0.4
+DEAL::   0.5
+DEAL::Vertex 12 at -0.382683 -0.923880 0.00000: 1 cells
+DEAL::   0.5
+DEAL::Vertex 13 at -1.83697e-16 -1.00000 0.00000: 2 cells
+DEAL::   0.5
+DEAL::   0.6
+DEAL::Vertex 14 at 0.382683 -0.923880 0.00000: 1 cells
+DEAL::   0.6
+DEAL::Vertex 15 at 0.707107 -0.707107 0.00000: 2 cells
+DEAL::   0.6
+DEAL::   0.7
+DEAL::Vertex 16 at 0.923880 -0.382683 0.00000: 1 cells
+DEAL::   0.7
+DEAL::Vertex 17 at 0.00000 0.00000 1.00000: 8 cells
+DEAL::   0.1
+DEAL::   0.2
+DEAL::   0.3
+DEAL::   0.4
+DEAL::   0.5
+DEAL::   0.6
+DEAL::   0.7
+DEAL::   1.4
+DEAL::Vertex 18 at 1.00000 0.00000 1.00000: 2 cells
+DEAL::   0.7
+DEAL::   1.5
+DEAL::Vertex 19 at 0.923880 0.382683 1.00000: 1 cells
+DEAL::   1.7
+DEAL::Vertex 20 at 0.707107 0.707107 1.00000: 2 cells
+DEAL::   0.1
+DEAL::   1.6
+DEAL::Vertex 21 at 0.382683 0.923880 1.00000: 1 cells
+DEAL::   0.1
+DEAL::Vertex 22 at 6.12323e-17 1.00000 1.00000: 2 cells
+DEAL::   0.1
+DEAL::   0.2
+DEAL::Vertex 23 at -0.382683 0.923880 1.00000: 1 cells
+DEAL::   0.2
+DEAL::Vertex 24 at -0.707107 0.707107 1.00000: 2 cells
+DEAL::   0.2
+DEAL::   0.3
+DEAL::Vertex 25 at -0.923880 0.382683 1.00000: 1 cells
+DEAL::   0.3
+DEAL::Vertex 26 at -1.00000 1.22465e-16 1.00000: 2 cells
+DEAL::   0.3
+DEAL::   0.4
+DEAL::Vertex 27 at -0.923880 -0.382683 1.00000: 1 cells
+DEAL::   0.4
+DEAL::Vertex 28 at -0.707107 -0.707107 1.00000: 2 cells
+DEAL::   0.4
+DEAL::   0.5
+DEAL::Vertex 29 at -0.382683 -0.923880 1.00000: 1 cells
+DEAL::   0.5
+DEAL::Vertex 30 at -1.83697e-16 -1.00000 1.00000: 2 cells
+DEAL::   0.5
+DEAL::   0.6
+DEAL::Vertex 31 at 0.382683 -0.923880 1.00000: 1 cells
+DEAL::   0.6
+DEAL::Vertex 32 at 0.707107 -0.707107 1.00000: 2 cells
+DEAL::   0.6
+DEAL::   0.7
+DEAL::Vertex 33 at 0.923880 -0.382683 1.00000: 1 cells
+DEAL::   0.7
+DEAL::Vertex 34 at 0.500000 0.00000 0.00000: 3 cells
+DEAL::   0.7
+DEAL::   1.0
+DEAL::   1.1
+DEAL::Vertex 35 at 0.353553 0.353553 0.00000: 3 cells
+DEAL::   0.1
+DEAL::   1.0
+DEAL::   1.2
+DEAL::Vertex 36 at 0.00000 0.00000 0.500000: 9 cells
+DEAL::   0.1
+DEAL::   0.2
+DEAL::   0.3
+DEAL::   0.4
+DEAL::   0.5
+DEAL::   0.6
+DEAL::   0.7
+DEAL::   1.0
+DEAL::   1.4
+DEAL::Vertex 37 at 0.961940 0.191342 0.00000: 2 cells
+DEAL::   1.1
+DEAL::   1.3
+DEAL::Vertex 38 at 1.00000 0.00000 0.500000: 3 cells
+DEAL::   0.7
+DEAL::   1.1
+DEAL::   1.5
+DEAL::Vertex 39 at 0.923880 0.382683 0.500000: 2 cells
+DEAL::   1.3
+DEAL::   1.7
+DEAL::Vertex 40 at 0.815493 0.544895 0.00000: 2 cells
+DEAL::   1.2
+DEAL::   1.3
+DEAL::Vertex 41 at 0.707107 0.707107 0.500000: 3 cells
+DEAL::   0.1
+DEAL::   1.2
+DEAL::   1.6
+DEAL::Vertex 42 at 0.500000 0.00000 1.00000: 3 cells
+DEAL::   0.7
+DEAL::   1.4
+DEAL::   1.5
+DEAL::Vertex 43 at 0.353553 0.353553 1.00000: 3 cells
+DEAL::   0.1
+DEAL::   1.4
+DEAL::   1.6
+DEAL::Vertex 44 at 0.961940 0.191342 1.00000: 2 cells
+DEAL::   1.5
+DEAL::   1.7
+DEAL::Vertex 45 at 0.815493 0.544895 1.00000: 2 cells
+DEAL::   1.6
+DEAL::   1.7
+DEAL::Vertex 46 at 0.500000 0.00000 0.500000: 5 cells
+DEAL::   0.7
+DEAL::   1.0
+DEAL::   1.1
+DEAL::   1.4
+DEAL::   1.5
+DEAL::Vertex 47 at 0.657747 0.272448 0.00000: 4 cells
+DEAL::   1.0
+DEAL::   1.1
+DEAL::   1.2
+DEAL::   1.3
+DEAL::Vertex 48 at 0.353553 0.353553 0.500000: 5 cells
+DEAL::   0.1
+DEAL::   1.0
+DEAL::   1.2
+DEAL::   1.4
+DEAL::   1.6
+DEAL::Vertex 49 at 0.961940 0.191342 0.500000: 4 cells
+DEAL::   1.1
+DEAL::   1.3
+DEAL::   1.5
+DEAL::   1.7
+DEAL::Vertex 50 at 0.815493 0.544895 0.500000: 4 cells
+DEAL::   1.2
+DEAL::   1.3
+DEAL::   1.6
+DEAL::   1.7
+DEAL::Vertex 51 at 0.657747 0.272448 1.00000: 4 cells
+DEAL::   1.4
+DEAL::   1.5
+DEAL::   1.6
+DEAL::   1.7
+DEAL::Vertex 52 at 0.657747 0.272448 0.500000: 8 cells
+DEAL::   1.0
+DEAL::   1.1
+DEAL::   1.2
+DEAL::   1.3
+DEAL::   1.4
+DEAL::   1.5
+DEAL::   1.6
+DEAL::   1.7

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.