]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Remove the base-case overload of cell_measure. 12219/head
authorDavid Wells <drwells@email.unc.edu>
Sun, 16 May 2021 17:20:02 +0000 (13:20 -0400)
committerDavid Wells <drwells@email.unc.edu>
Sun, 16 May 2021 17:20:02 +0000 (13:20 -0400)
This isn't necessary any more since we have an ArrayView overload.

While we are at it - deprecate the array-based version of this function since it
cannot work with simplices.

doc/news/changes/incompatibilities/20210516DavidWells [new file with mode: 0644]
include/deal.II/grid/grid_tools.h
source/grid/grid_tools.cc

diff --git a/doc/news/changes/incompatibilities/20210516DavidWells b/doc/news/changes/incompatibilities/20210516DavidWells
new file mode 100644 (file)
index 0000000..772a332
--- /dev/null
@@ -0,0 +1,6 @@
+Removed: An additional overload of GridTools::cell_measure(), which only
+existed to aid generic programming and only threw an exception, has been
+removed. If you use this function then the best fix is to ensure that
+you are not explicitly providing a template parameter to the function itself.
+<br>
+(David Wells, 2021/05/16)
index f86d9d9882a34599621505c1e6187e6e93e9c4a0..1975c01b5bd8e9be5fe3d7e80eecfdd9db2ac3a2 100644 (file)
@@ -225,36 +225,36 @@ namespace GridTools
    * get the same result using <code>cell-@>measure()</code>, but this
    * function also works for cells that do not exist except that you make it
    * up by naming its vertices from the list.
+   *
+   * @deprecated Use the more general function which takes an ArrayView instead.
    */
   template <int dim>
-  double
+  DEAL_II_DEPRECATED_EARLY double
   cell_measure(
     const std::vector<Point<dim>> &all_vertices,
     const unsigned int (&vertex_indices)[GeometryInfo<dim>::vertices_per_cell]);
 
   /**
-   * A variant of cell_measure() accepting an ArrayView instead of a
-   * fixed-sized array for @p vertex_indices.
+   * Given a list of vertices (typically obtained using
+   * Triangulation::get_vertices()) as the first, and a list of vertex indices
+   * that characterize a single cell as the second argument, return the
+   * measure (area, volume) of this cell. If this is a real cell, then you can
+   * get the same result using <code>cell-@>measure()</code>, but this
+   * function also works for cells that do not exist except that you make it
+   * up by naming its vertices from the list.
    *
    * The parameter @p vertex_indices is expected to have
    * GeometryInfo<dim>::vertices_per_cell entries. A std::vector is implicitly
    * convertible to an ArrayView, so it can be passed directly. See the
    * ArrayView class for more information.
+   *
+   * @note This function is only implemented for codimension zero objects.
    */
   template <int dim>
   double
   cell_measure(const std::vector<Point<dim>> &      all_vertices,
                const ArrayView<const unsigned int> &vertex_indices);
 
-  /**
-   * A version of the function above that can accept input for nonzero
-   * codimension cases. This function only exists to aid generic programming
-   * and calling it will just raise an exception.
-   */
-  template <int dim, typename T>
-  double
-  cell_measure(const T &, ...);
-
   /**
    * This function computes an affine approximation of the map from the unit
    * coordinates to the real coordinates of the form $p_\text{real} = A
@@ -3361,14 +3361,6 @@ namespace GridTools
     return cell_measure(all_vertices, view);
   }
 
-  template <int dim, typename T>
-  double
-  cell_measure(const T &, ...)
-  {
-    Assert(false, ExcNotImplemented());
-    return std::numeric_limits<double>::quiet_NaN();
-  }
-
 
 
   // This specialization is defined here so that the general template in the
index f3561ae4b74f32f777f4cdc16fc97c5b3e80183f..2341a60299a650630cee8e1311ca49f66eeeea79 100644 (file)
@@ -876,7 +876,7 @@ namespace GridTools
                  ReferenceCells::get_hypercube<dim>().n_vertices(),
                ExcNotImplemented());
         const ArrayView<const unsigned int> vertices(cell.vertices);
-        if (GridTools::cell_measure<dim>(all_vertices, vertices) < 0)
+        if (GridTools::cell_measure(all_vertices, vertices) < 0)
           {
             ++n_negative_cells;
 
@@ -898,8 +898,7 @@ namespace GridTools
             // Check whether the resulting cell is now ok.
             // If not, then the grid is seriously broken and
             // we just give up.
-            AssertThrow(GridTools::cell_measure<dim>(all_vertices, vertices) >
-                          0,
+            AssertThrow(GridTools::cell_measure(all_vertices, vertices) > 0,
                         ExcInternalError());
           }
       }

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.