]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Also adjust the error message for the dim=2, spacedim>2 case.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Sun, 22 Mar 2015 10:42:04 +0000 (05:42 -0500)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Sun, 22 Mar 2015 10:42:04 +0000 (05:42 -0500)
source/grid/tria.cc

index 0bbb1cc664915575259609e679163ebe9b78666a..fd09c2ac065438c6bf17c6e179a4221465906173 100644 (file)
@@ -1840,11 +1840,37 @@ namespace internal
              line!=triangulation.end_line(); ++line)
           {
             const unsigned int n_adj_cells = adjacent_cells[line->index()].size();
-            // assert that every line has
-            // one or two adjacent cells
-            AssertThrow ((n_adj_cells >= 1) &&
-                         (n_adj_cells <= 2),
-                         ExcInternalError());
+
+            // assert that every line has one or two adjacent cells.
+            // this has to be the case for 2d triangulations in 2d.
+            // in higher dimensions, this may happen but is not
+            // implemented
+            if (spacedim==2)
+              AssertThrow ((n_adj_cells >= 1) &&
+                           (n_adj_cells <= 2),
+                           ExcInternalError())
+            else
+              AssertThrow ((n_adj_cells >= 1) &&
+                           (n_adj_cells <= 2),
+                           ExcMessage ("You have a line in your triangulation "
+                                       "at which more than two cells come together. "
+                                       "\n\n"
+                                       "This is not currently supported because the "
+                                       "Triangulation class makes the assumption that "
+                                       "every cell has zero or one neighbors behind "
+                                       "each face (here, behind each line), but in your "
+                                       "situation there would be more than one."
+                                       "\n\n"
+                                       "Support for this is not currently implemented. "
+                                       "If you need to work with triangulations where "
+                                       "more than two cells come together at a line, "
+                                       "duplicate the vertices once per cell (i.e., put "
+                                       "multiple vertices at the same physical location, "
+                                       "but using different vertex indices for each) "
+                                       "and then ensure continuity of the solution by "
+                                       "explicitly creating constraints that the degrees "
+                                       "of freedom at these lines have the same "
+                                       "value, using the ConstraintMatrix class."));
 
             // if only one cell: line is at
             // boundary -> give it the

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.