From: Luca Heltai Date: Tue, 7 Sep 2010 09:08:23 +0000 (+0000) Subject: Fixed creation of middle points for straight boundaries in dim = <1,2> X-Git-Tag: v8.0.0~5589 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54090b8b6d660dd8afda63ac0798d4daa9ede70a;p=dealii.git Fixed creation of middle points for straight boundaries in dim = <1,2> git-svn-id: https://svn.dealii.org/trunk@21863 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/source/grid/tria_boundary.cc b/deal.II/deal.II/source/grid/tria_boundary.cc index f8809ce231..e9aefe59d4 100644 --- a/deal.II/deal.II/source/grid/tria_boundary.cc +++ b/deal.II/deal.II/source/grid/tria_boundary.cc @@ -355,15 +355,26 @@ get_intermediate_points_on_line (const Triangulation<1>::line_iterator &, Assert(false, ExcImpossibleInDim(1)); } - template <> void -StraightBoundary<1,2>:: -get_intermediate_points_on_line (const Triangulation<1,2>::line_iterator &, - std::vector > &) const +StraightBoundary<1, 2>:: +get_intermediate_points_on_line (const Triangulation<1, 2>::line_iterator &line, + std::vector > &points) const { - Assert(false, ExcImpossibleInDim(1)); + const unsigned int spacedim = 2; + const unsigned int n=points.size(); + Assert(n>0, ExcInternalError()); + + const double dx=1./(n+1); + double x=dx; + + const Point vertices[2] = { line->vertex(0), + line->vertex(1) }; + + for (unsigned int i=0; i::quad_iterator &quad, #endif +#if deal_II_dimension == 2 + +template <> +void +StraightBoundary<2,3>:: +get_intermediate_points_on_quad (const Triangulation<2,3>::quad_iterator &quad, + std::vector > &points) const +{ + const unsigned int spacedim = 3; + + const unsigned int n=points.size(), + m=static_cast(std::sqrt(static_cast(n))); + // is n a square number + Assert(m*m==n, ExcInternalError()); + + const double ds=1./(m+1); + double y=ds; + + const Point vertices[4] = { quad->vertex(0), + quad->vertex(1), + quad->vertex(2), + quad->vertex(3) }; + + for (unsigned int i=0; i:: get_normals_at_vertices (const Triangulation<1,2>::face_iterator &, Boundary<1,2>::FaceVertexNormals &) const { - Assert (false, ExcImpossibleInDim(1)); + Assert (false, ExcNotImplemented()); } #endif