]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Rename Functions::LevelSet -> Functions::SignedDistance 12846/head
authorPeter Munch <peterrmuench@gmail.com>
Tue, 19 Oct 2021 07:34:47 +0000 (09:34 +0200)
committerPeter Munch <peterrmuench@gmail.com>
Tue, 19 Oct 2021 07:34:47 +0000 (09:34 +0200)
doc/news/changes/incompatibilities/20211019Munch [new file with mode: 0644]
include/deal.II/base/function_level_set.h
include/deal.II/base/function_signed_distance.h [new file with mode: 0644]
source/base/CMakeLists.txt
source/base/function_signed_distance.cc [moved from source/base/function_level_set.cc with 95% similarity]
source/base/function_signed_distance.inst.in [moved from source/base/function_level_set.inst.in with 82% similarity]

diff --git a/doc/news/changes/incompatibilities/20211019Munch b/doc/news/changes/incompatibilities/20211019Munch
new file mode 100644 (file)
index 0000000..a501b92
--- /dev/null
@@ -0,0 +1,4 @@
+Renamed: The namespace Functions::LevelSet has been renamed to
+Functions::SignedDistance.
+<br>
+(Peter Munch, 2021/10/19)
index 6af6c082c71bbfa18ef07b032766dc89cec1d011..bbe096e9de13ea868a26cddd5f2de510955d4ddd 100644 (file)
@@ -18,7 +18,7 @@
 
 #include <deal.II/base/config.h>
 
-#include <deal.II/base/function.h>
+#include <deal.II/base/function_signed_distance.h>
 
 DEAL_II_NAMESPACE_OPEN
 
@@ -26,103 +26,11 @@ namespace Functions
 {
   namespace LevelSet
   {
-    /**
-     * Signed-distance level set function of a sphere:
-     * $\psi(x) = \| x - x^c \| - R$.
-     * Here, $x^c$ is the center of the sphere and $R$ is its radius. This
-     * function is thus zero on the sphere, negative "inside" the ball having
-     * the sphere as its boundary, and positive in the rest of
-     * $\mathbb{R}^{dim}$.
-     *
-     * This function has gradient and Hessian equal to
-     * $\partial_i \psi(x) = (x - x^c)/\| x - x^c \|$,
-     * $\partial_i \partial_j \psi =
-     * \delta_{ij}/\| x - x^c \| - (x_i - x_i^c)(x_j - x_j^c)/\| x - x^c \|^3$,
-     * where $\delta_{ij}$ is the Kronecker delta function.
-     *
-     * @ingroup functions
-     */
     template <int dim>
-    class Sphere : public Function<dim>
-    {
-    public:
-      /**
-       * Constructor, takes the center and radius of the sphere.
-       */
-      Sphere(const Point<dim> &center = Point<dim>(), const double radius = 1);
+    using Sphere DEAL_II_DEPRECATED = SignedDistance::Sphere<dim>;
 
-      double
-      value(const Point<dim> & point,
-            const unsigned int component = 0) const override;
-
-      /**
-       * @copydoc Function::gradient()
-       *
-       * @note The gradient is singular at the center of the sphere. If the
-       * incoming @p point is too close to the center, a floating-point
-       * exception may be thrown or entries in the gradient may be +inf/-inf
-       * or +nan/-nan, depending on how the point is located relative to the
-       * singularity.
-       */
-      Tensor<1, dim>
-      gradient(const Point<dim> & point,
-               const unsigned int component = 0) const override;
-
-      /**
-       * @copydoc Function::hessian()
-       *
-       * @note The Hessian is singular at the center of the sphere. If the
-       * incoming @p point is too close to the center, a floating-point
-       * exception may be thrown or entries in the Hessian may be +inf/-inf
-       * or +nan/-nan, depending on how the point is located relative to the
-       * singularity.
-       */
-      SymmetricTensor<2, dim>
-      hessian(const Point<dim> & point,
-              const unsigned int component = 0) const override;
-
-    private:
-      const Point<dim> center;
-      const double     radius;
-    };
-
-
-    /**
-     * Signed level set function of a plane in $\mathbb{R}^{dim}$:
-     * $\psi(x) = n \cdot (x - x_p)$.
-     * Here, $n$ is the plane normal and $x_p$ is a point in the plane.
-     * Thus, with respect to the direction of the normal, this function is
-     * positive above the plane, zero in the plane, and negative below the
-     * plane. If the normal is normalized, $\psi$ will be the signed distance to
-     * the closest point in the plane.
-     *
-     * @ingroup functions
-     */
     template <int dim>
-    class Plane : public Function<dim>
-    {
-    public:
-      /**
-       * Constructor, takes a point in the plane and the plane normal.
-       */
-      Plane(const Point<dim> &point, const Tensor<1, dim> &normal);
-
-      double
-      value(const Point<dim> & point,
-            const unsigned int component = 0) const override;
-
-      Tensor<1, dim>
-      gradient(const Point<dim> &,
-               const unsigned int component = 0) const override;
-
-      SymmetricTensor<2, dim>
-      hessian(const Point<dim> &,
-              const unsigned int component = 0) const override;
-
-    private:
-      const Point<dim>     point_in_plane;
-      const Tensor<1, dim> normal;
-    };
+    using Plane DEAL_II_DEPRECATED = SignedDistance::Plane<dim>;
 
   } // namespace LevelSet
 } // namespace Functions
diff --git a/include/deal.II/base/function_signed_distance.h b/include/deal.II/base/function_signed_distance.h
new file mode 100644 (file)
index 0000000..253aaec
--- /dev/null
@@ -0,0 +1,132 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2019 - 2021 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+#ifndef dealii_function_signed_distance_h
+#define dealii_function_signed_distance_h
+
+#include <deal.II/base/config.h>
+
+#include <deal.II/base/function.h>
+
+DEAL_II_NAMESPACE_OPEN
+
+namespace Functions
+{
+  namespace SignedDistance
+  {
+    /**
+     * Signed-distance level set function of a sphere:
+     * $\psi(x) = \| x - x^c \| - R$.
+     * Here, $x^c$ is the center of the sphere and $R$ is its radius. This
+     * function is thus zero on the sphere, negative "inside" the ball having
+     * the sphere as its boundary, and positive in the rest of
+     * $\mathbb{R}^{dim}$.
+     *
+     * This function has gradient and Hessian equal to
+     * $\partial_i \psi(x) = (x - x^c)/\| x - x^c \|$,
+     * $\partial_i \partial_j \psi =
+     * \delta_{ij}/\| x - x^c \| - (x_i - x_i^c)(x_j - x_j^c)/\| x - x^c \|^3$,
+     * where $\delta_{ij}$ is the Kronecker delta function.
+     *
+     * @ingroup functions
+     */
+    template <int dim>
+    class Sphere : public Function<dim>
+    {
+    public:
+      /**
+       * Constructor, takes the center and radius of the sphere.
+       */
+      Sphere(const Point<dim> &center = Point<dim>(), const double radius = 1);
+
+      double
+      value(const Point<dim> & point,
+            const unsigned int component = 0) const override;
+
+      /**
+       * @copydoc Function::gradient()
+       *
+       * @note The gradient is singular at the center of the sphere. If the
+       * incoming @p point is too close to the center, a floating-point
+       * exception may be thrown or entries in the gradient may be +inf/-inf
+       * or +nan/-nan, depending on how the point is located relative to the
+       * singularity.
+       */
+      Tensor<1, dim>
+      gradient(const Point<dim> & point,
+               const unsigned int component = 0) const override;
+
+      /**
+       * @copydoc Function::hessian()
+       *
+       * @note The Hessian is singular at the center of the sphere. If the
+       * incoming @p point is too close to the center, a floating-point
+       * exception may be thrown or entries in the Hessian may be +inf/-inf
+       * or +nan/-nan, depending on how the point is located relative to the
+       * singularity.
+       */
+      SymmetricTensor<2, dim>
+      hessian(const Point<dim> & point,
+              const unsigned int component = 0) const override;
+
+    private:
+      const Point<dim> center;
+      const double     radius;
+    };
+
+
+    /**
+     * Signed level set function of a plane in $\mathbb{R}^{dim}$:
+     * $\psi(x) = n \cdot (x - x_p)$.
+     * Here, $n$ is the plane normal and $x_p$ is a point in the plane.
+     * Thus, with respect to the direction of the normal, this function is
+     * positive above the plane, zero in the plane, and negative below the
+     * plane. If the normal is normalized, $\psi$ will be the signed distance to
+     * the closest point in the plane.
+     *
+     * @ingroup functions
+     */
+    template <int dim>
+    class Plane : public Function<dim>
+    {
+    public:
+      /**
+       * Constructor, takes a point in the plane and the plane normal.
+       */
+      Plane(const Point<dim> &point, const Tensor<1, dim> &normal);
+
+      double
+      value(const Point<dim> & point,
+            const unsigned int component = 0) const override;
+
+      Tensor<1, dim>
+      gradient(const Point<dim> &,
+               const unsigned int component = 0) const override;
+
+      SymmetricTensor<2, dim>
+      hessian(const Point<dim> &,
+              const unsigned int component = 0) const override;
+
+    private:
+      const Point<dim>     point_in_plane;
+      const Tensor<1, dim> normal;
+    };
+
+  } // namespace SignedDistance
+} // namespace Functions
+
+DEAL_II_NAMESPACE_CLOSE
+
+#endif
index 59674c60e1a60fc3fb67fcff8f711e9753a5a3ae..bb9e2bcfd0ec9e9648d5777ad41ec654cc9dce1c 100644 (file)
@@ -32,7 +32,7 @@ SET(_unity_include_src
   function.cc
   function_cspline.cc
   function_derivative.cc
-  function_level_set.cc
+  function_signed_distance.cc
   function_lib.cc
   function_lib_cutoff.cc
   function_parser.cc
@@ -131,7 +131,7 @@ SET(_inst
   bounding_box.inst.in
   data_out_base.inst.in
   function.inst.in
-  function_level_set.inst.in
+  function_signed_distance.inst.in
   function_restriction.inst.in
   function_time.inst.in
   function_tools.inst.in
similarity index 95%
rename from source/base/function_level_set.cc
rename to source/base/function_signed_distance.cc
index b51080b36e072b8d42ceab410edd19dd585b6a80..114b358e1725d392b41a059a89a9f405839bc902 100644 (file)
 // ---------------------------------------------------------------------
 
 #include <deal.II/base/exceptions.h>
-#include <deal.II/base/function_level_set.h>
+#include <deal.II/base/function_signed_distance.h>
 
 DEAL_II_NAMESPACE_OPEN
 
 namespace Functions
 {
-  namespace LevelSet
+  namespace SignedDistance
   {
     template <int dim>
     Sphere<dim>::Sphere(const Point<dim> &center, const double radius)
@@ -126,9 +126,9 @@ namespace Functions
       return SymmetricTensor<2, dim>();
     }
 
-  } // namespace LevelSet
+  } // namespace SignedDistance
 } // namespace Functions
 
-#include "function_level_set.inst"
+#include "function_signed_distance.inst"
 
 DEAL_II_NAMESPACE_CLOSE
similarity index 82%
rename from source/base/function_level_set.inst.in
rename to source/base/function_signed_distance.inst.in
index 8b32cd1e347f646d4645c0b562298e3c11ab54d4..9227b430013ff9bb34f3ad5f08bd8a68a95a3d3d 100644 (file)
@@ -15,6 +15,6 @@
 
 for (deal_II_dimension : SPACE_DIMENSIONS)
   {
-    template class Functions::LevelSet::Sphere<deal_II_dimension>;
-    template class Functions::LevelSet::Plane<deal_II_dimension>;
+    template class Functions::SignedDistance::Sphere<deal_II_dimension>;
+    template class Functions::SignedDistance::Plane<deal_II_dimension>;
   }

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.