]> https://gitweb.dealii.org/ - dealii.git/commitdiff
GridGenerator: Remove CGAL implementation
authorMatthias Maier <tamiko@43-1.org>
Sat, 11 Jun 2022 02:48:20 +0000 (21:48 -0500)
committerMatthias Maier <tamiko@43-1.org>
Sat, 11 Jun 2022 02:56:11 +0000 (21:56 -0500)
source/grid/grid_generator.cc
source/grid/grid_generator.inst.in

index e4a2afbcdcba238b03a8533b2563562850285469..d1e491dcc6c3d1a50e677c84c4589d218462e305 100644 (file)
 
 #include <deal.II/physics/transformations.h>
 
-#ifdef DEAL_II_WITH_CGAL
-// Functions needed by the CGAL mesh generation utilities are inside
-#  include <deal.II/cgal/triangulation.h>
-#endif
-
 #include <array>
 #include <cmath>
 #include <limits>
@@ -8643,123 +8638,6 @@ namespace GridGenerator
         AssertThrow(false, ExcNotImplemented())
       }
   }
-
-
-
-  template <int dim>
-  void
-  implicit_function(Triangulation<dim, 3> &tria,
-                    const Function<3> &    dealii_implicit_function,
-                    const CGALWrappers::AdditionalData<dim> &data,
-                    const Point<3> &                         interior_point,
-                    const double &                           outer_ball_radius)
-  {
-#  ifdef DEAL_II_WITH_CGAL
-    Assert(dealii_implicit_function.n_components == 1,
-           ExcMessage(
-             "The implicit function must have exactly one component."));
-    Assert(dealii_implicit_function.value(interior_point) < 0,
-           ExcMessage(
-             "The implicit function must be negative at the interior point."));
-    Assert(outer_ball_radius > 0,
-           ExcMessage("The outer ball radius must be positive."));
-    Assert(tria.n_active_cells() == 0,
-           ExcMessage("The triangulation must be empty."));
-
-    if constexpr (dim == 3)
-      {
-        using K          = CGAL::Exact_predicates_inexact_constructions_kernel;
-        using NumberType = K::FT;
-        using Point_3    = K::Point_3;
-        using Sphere_3   = K::Sphere_3;
-
-        using Mesh_domain = CGAL::Labeled_mesh_domain_3<K>;
-        using Tr =
-          CGAL::Mesh_triangulation_3<Mesh_domain,
-                                     CGAL::Default,
-                                     CGALWrappers::ConcurrencyTag>::type;
-        using C3t3 = CGAL::Mesh_complex_3_in_triangulation_3<Tr, int, int>;
-        using Mesh_criteria = CGAL::Mesh_criteria_3<Tr>;
-
-
-        auto cgal_implicit_function = [&](const Point_3 &p) {
-          return NumberType(
-            dealii_implicit_function.value(Point<3>(p.x(), p.y(), p.z())));
-        };
-
-        Mesh_domain domain = Mesh_domain::create_implicit_mesh_domain(
-          cgal_implicit_function,
-          K::Sphere_3(
-            Point_3(interior_point[0], interior_point[1], interior_point[2]),
-            outer_ball_radius * outer_ball_radius));
-
-        Mesh_criteria criteria(CGAL::parameters::facet_size  = data.facet_size,
-                               CGAL::parameters::facet_angle = data.facet_angle,
-                               CGAL::parameters::facet_distance =
-                                 data.facet_distance,
-                               CGAL::parameters::cell_radius_edge_ratio =
-                                 data.cell_radius_edge_ratio,
-                               CGAL::parameters::cell_size = data.cell_size);
-
-        auto cgal_triangulation = CGAL::make_mesh_3<C3t3>(domain, criteria);
-        CGALWrappers::cgal_triangulation_to_dealii_triangulation(
-          cgal_triangulation, tria);
-      }
-    else if constexpr (dim == 2)
-      {
-        // default triangulation for Surface_mesher
-        using Tr       = CGAL::Surface_mesh_default_triangulation_3;
-        using C2t3     = CGAL::Complex_2_in_triangulation_3<Tr>;
-        using GT       = Tr::Geom_traits;
-        using Sphere_3 = GT::Sphere_3;
-        using Point_3  = GT::Point_3;
-        using FT       = GT::FT;
-        typedef FT (*Function)(Point_3);
-        using Surface_3    = CGAL::Implicit_surface_3<GT, Function>;
-        using Surface_mesh = CGAL::Surface_mesh<Point_3>;
-
-
-        auto cgal_implicit_function = [&](const Point_3 &p) {
-          return FT(
-            dealii_implicit_function.value(Point<3>(p.x(), p.y(), p.z())));
-        };
-
-        Surface_3 surface(cgal_implicit_function,
-                          Sphere_3(Point_3(interior_point[0],
-                                           interior_point[1],
-                                           interior_point[2]),
-                                   outer_ball_radius * outer_ball_radius));
-
-        Tr           tr;
-        C2t3         c2t3(tr);
-        Surface_mesh mesh;
-
-        CGAL::Surface_mesh_default_criteria_3<Tr> criteria(data.angular_bound,
-                                                           data.radius_bound,
-                                                           data.distance_bound);
-        CGAL::make_surface_mesh(c2t3,
-                                surface,
-                                criteria,
-                                CGAL::Non_manifold_tag());
-        CGAL::facets_in_complex_2_to_triangle_mesh(c2t3, mesh);
-        CGALWrappers::cgal_surface_mesh_to_dealii_triangulation(mesh, tria);
-      }
-    else
-      {
-        Assert(false, ExcImpossibleInDim(dim));
-      }
-
-#  else
-
-    (void)tria;
-    (void)dealii_implicit_function;
-    (void)data;
-    (void)interior_point;
-    (void)outer_ball_radius;
-    AssertThrow(false, ExcMessage("This function needs CGAL to be installed."));
-
-#  endif
-  }
 } // namespace GridGenerator
 
 // explicit instantiations
index 0ef6acbddf9c1712b2af61058ef167b4fecee702..05d1fff1c24cf1f39894b5854ebce97b3d725031 100644 (file)
@@ -228,14 +228,6 @@ for (deal_II_dimension : DIMENSIONS)
       hyper_ball_balanced<deal_II_dimension>(Triangulation<deal_II_dimension> &,
                                              const Point<deal_II_dimension> &,
                                              const double);
-
-      template void
-      implicit_function<deal_II_dimension>(
-        Triangulation<deal_II_dimension, 3> &,
-        const Function<3> &,
-        const CGALWrappers::AdditionalData<deal_II_dimension> &,
-        const Point<3> &,
-        const double &);
 #endif
     \}
   }

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.