]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Remove/deprecate Tensor::begin/end_raw().
authorWolfgang Bangerth <bangerth@colostate.edu>
Tue, 26 Mar 2024 23:23:06 +0000 (17:23 -0600)
committerWolfgang Bangerth <bangerth@colostate.edu>
Tue, 26 Mar 2024 23:23:06 +0000 (17:23 -0600)
include/deal.II/base/array_view.h
include/deal.II/base/tensor.h
include/deal.II/grid/grid_tools_geometry.h

index 3b553c78dc651b5c13dc0fc4e5ace71853c524e4..8b020af5dab0033fd529f9c6105e07f75eab1498 100644 (file)
@@ -1055,6 +1055,11 @@ template <int rank, int dim, typename Number>
 DEAL_II_DEPRECATED inline ArrayView<const Number>
 make_array_view(const Tensor<rank, dim, Number> &tensor)
 {
+  static_assert(rank == 1,
+                "This function is only available for rank-1 tensors "
+                "because higher-rank tensors may not store their elements "
+                "in a contiguous array.");
+
   return make_array_view(tensor.begin_raw(), tensor.end_raw());
 }
 
@@ -1085,6 +1090,11 @@ template <int rank, int dim, typename Number>
 DEAL_II_DEPRECATED inline ArrayView<Number>
 make_array_view(Tensor<rank, dim, Number> &tensor)
 {
+  static_assert(rank == 1,
+                "This function is only available for rank-1 tensors "
+                "because higher-rank tensors may not store their elements "
+                "in a contiguous array.");
+
   return make_array_view(tensor.begin_raw(), tensor.end_raw());
 }
 
index 5548dc4807fb0e8dc8058335799089b52fb8482d..79de40fb9589acaef80dea629a1c6926d2dae5c0 100644 (file)
@@ -191,55 +191,6 @@ public:
   Tensor(Tensor<0, dim, Number> &&other) noexcept;
 #endif
 
-  /**
-   * Return a pointer to the first element of the underlying storage.
-   *
-   * @deprecated This function suggests that the elements of a Tensor
-   *   object are stored as a contiguous array, but this is not in fact true
-   *   and one should not pretend that this so. As a consequence, this function
-   *   is deprecated.
-   */
-  DEAL_II_DEPRECATED
-  Number *
-  begin_raw();
-
-  /**
-   * Return a const pointer to the first element of the underlying storage.
-   *
-   * @deprecated This function suggests that the elements of a Tensor
-   *   object are stored as a contiguous array, but this is not in fact true
-   *   and one should not pretend that this so. As a consequence, this function
-   *   is deprecated.
-   */
-  DEAL_II_DEPRECATED
-  const Number *
-  begin_raw() const;
-
-  /**
-   * Return a pointer to the element past the end of the underlying storage.
-   *
-   * @deprecated This function suggests that the elements of a Tensor
-   *   object are stored as a contiguous array, but this is not in fact true
-   *   and one should not pretend that this so. As a consequence, this function
-   *   is deprecated.
-   */
-  DEAL_II_DEPRECATED
-  Number *
-  end_raw();
-
-  /**
-   * Return a const pointer to the element past the end of the underlying
-   * storage.
-   *
-   * @deprecated This function suggests that the elements of a Tensor
-   *   object are stored as a contiguous array, but this is not in fact true
-   *   and one should not pretend that this so. As a consequence, this function
-   *   is deprecated.
-   */
-  DEAL_II_DEPRECATED
-  const Number *
-  end_raw() const;
-
   /**
    * Return a reference to the encapsulated Number object. Since rank-0
    * tensors are scalars, this is a natural operation.
@@ -668,24 +619,28 @@ public:
   /**
    * Return a pointer to the first element of the underlying storage.
    */
+  DEAL_II_DEPRECATED_EARLY
   Number *
   begin_raw();
 
   /**
    * Return a const pointer to the first element of the underlying storage.
    */
+  DEAL_II_DEPRECATED_EARLY
   const Number *
   begin_raw() const;
 
   /**
    * Return a pointer to the element past the end of the underlying storage.
    */
+  DEAL_II_DEPRECATED_EARLY
   Number *
   end_raw();
 
   /**
    * Return a pointer to the element past the end of the underlying storage.
    */
+  DEAL_II_DEPRECATED_EARLY
   const Number *
   end_raw() const;
 
@@ -1030,41 +985,6 @@ Tensor<0, dim, Number>::Tensor(Tensor<0, dim, Number> &&other) noexcept
 #  endif
 
 
-template <int dim, typename Number>
-inline Number *
-Tensor<0, dim, Number>::begin_raw()
-{
-  return std::addressof(value);
-}
-
-
-
-template <int dim, typename Number>
-inline const Number *
-Tensor<0, dim, Number>::begin_raw() const
-{
-  return std::addressof(value);
-}
-
-
-
-template <int dim, typename Number>
-inline Number *
-Tensor<0, dim, Number>::end_raw()
-{
-  return begin_raw() + n_independent_components;
-}
-
-
-
-template <int dim, typename Number>
-const Number *
-Tensor<0, dim, Number>::end_raw() const
-{
-  return begin_raw() + n_independent_components;
-}
-
-
 
 template <int dim, typename Number>
 constexpr DEAL_II_HOST_DEVICE_ALWAYS_INLINE
@@ -1584,6 +1504,11 @@ template <int rank_, int dim, typename Number>
 inline Number *
 Tensor<rank_, dim, Number>::begin_raw()
 {
+  static_assert(rank_ == 1,
+                "This function is only available for rank-1 tensors "
+                "because higher-rank tensors may not store their elements "
+                "in a contiguous array.");
+
   return std::addressof(
     this->operator[](this->unrolled_to_component_indices(0)));
 }
@@ -1594,6 +1519,11 @@ template <int rank_, int dim, typename Number>
 inline const Number *
 Tensor<rank_, dim, Number>::begin_raw() const
 {
+  static_assert(rank_ == 1,
+                "This function is only available for rank-1 tensors "
+                "because higher-rank tensors may not store their elements "
+                "in a contiguous array.");
+
   return std::addressof(
     this->operator[](this->unrolled_to_component_indices(0)));
 }
@@ -1604,6 +1534,11 @@ template <int rank_, int dim, typename Number>
 inline Number *
 Tensor<rank_, dim, Number>::end_raw()
 {
+  static_assert(rank_ == 1,
+                "This function is only available for rank-1 tensors "
+                "because higher-rank tensors may not store their elements "
+                "in a contiguous array.");
+
   return begin_raw() + n_independent_components;
 }
 
@@ -1613,6 +1548,11 @@ template <int rank_, int dim, typename Number>
 inline const Number *
 Tensor<rank_, dim, Number>::end_raw() const
 {
+  static_assert(rank_ == 1,
+                "This function is only available for rank-1 tensors "
+                "because higher-rank tensors may not store their elements "
+                "in a contiguous array.");
+
   return begin_raw() + n_independent_components;
 }
 
index b7e29cea8049ffa68e025c4d570f89b293fb602b..d1055ca1f1d63f88bd63c098fd58c32f04d5a13f 100644 (file)
@@ -593,6 +593,8 @@ namespace GridTools
     }
   } // namespace internal
 
+
+
   template <typename Iterator>
   Point<Iterator::AccessorType::space_dimension>
   project_to_object(

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.