]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Implement the missing functions in HalfHyperShellBoundary.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 10 Apr 2001 17:36:16 +0000 (17:36 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 10 Apr 2001 17:36:16 +0000 (17:36 +0000)
git-svn-id: https://svn.dealii.org/trunk@4423 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/grid/tria_boundary_lib.h
deal.II/deal.II/source/grid/tria_boundary_lib.cc

index 5d1673ae977405ab8428b13841d8b3e5a3e1c411..f11996fef9642caf920a368cc72fbdf6c64294f8 100644 (file)
@@ -308,6 +308,32 @@ class HalfHyperShellBoundary : public HyperShellBoundary<dim>
     virtual Point<dim>
     get_new_point_on_quad (const typename Triangulation<dim>::quad_iterator &quad) const;
 
+                                    /**
+                                     * Refer to the general
+                                     * documentation of this class
+                                     * and the documentation of the
+                                     * base class.
+                                     *
+                                     * Calls
+                                     * @p{get_intermediate_points_between_points}.
+                                     */
+    virtual void
+    get_intermediate_points_on_line (const typename Triangulation<dim>::line_iterator &line,
+                                    typename std::vector<Point<dim> > &points) const;
+
+                                    /**
+                                     * Refer to the general
+                                     * documentation of this class
+                                     * and the documentation of the
+                                     * base class.
+                                     *
+                                     * Only implemented for @p{dim=3}
+                                     * and for @p{points.size()==1}.
+                                     */
+    virtual void
+    get_intermediate_points_on_quad (const typename Triangulation<dim>::quad_iterator &quad,
+                                    typename std::vector<Point<dim> > &points) const;
+
                                     /**
                                      * Compute the normals to the
                                      * boundary at the vertices of
index 448876192e57199293f63b2511db264ef3bec5e5..8d14f058de73547e7c39c70aa9457f39443475eb 100644 (file)
@@ -511,6 +511,59 @@ get_new_point_on_quad (const typename Triangulation<dim>::quad_iterator &quad) c
 
 
 
+template <int dim>
+void
+HalfHyperShellBoundary<dim>::
+get_intermediate_points_on_line (const typename Triangulation<dim>::line_iterator &line,
+                                typename std::vector<Point<dim> > &points) const
+{
+                                  // check whether center of object is
+                                  // at x==0, since then it belongs
+                                  // to the plane part of the
+                                  // boundary
+  const Point<dim> line_center = line->center();
+  if (line_center(0) == center(0))
+    return StraightBoundary<dim>::get_intermediate_points_on_line (line, points);
+  else
+    return HyperShellBoundary<dim>::get_intermediate_points_on_line (line, points);
+};
+
+
+
+template <int dim>
+void
+HalfHyperShellBoundary<dim>::
+get_intermediate_points_on_quad (const typename Triangulation<dim>::quad_iterator &quad,
+                                typename std::vector<Point<dim> > &points) const
+{
+                                  // check whether center of object is
+                                  // at x==0, since then it belongs
+                                  // to the plane part of the
+                                  // boundary
+  const Point<dim> quad_center = quad->center();
+  if (quad_center(0) == center(0))
+    StraightBoundary<dim>::get_intermediate_points_on_quad (quad, points);
+  else
+    HyperShellBoundary<dim>::get_intermediate_points_on_quad (quad, points);
+};
+
+
+
+#if deal_II_dimension == 1
+
+template <>
+void
+HalfHyperShellBoundary<1>::
+get_intermediate_points_on_quad (const Triangulation<1>::quad_iterator &,
+                                std::vector<Point<1> > &) const
+{
+  Assert (false, ExcInternalError());
+};
+
+#endif
+
+
+
 #if deal_II_dimension == 1
 
 template <>

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.