17 #include <deal.II/boost_adaptors/bounding_box.h> 19 #include <deal.II/fe/mapping.h> 21 #include <deal.II/grid/tria.h> 23 DEAL_II_NAMESPACE_OPEN
26 template <
int dim,
int spacedim>
32 for (
unsigned int i = 0; i < GeometryInfo<dim>::vertices_per_cell; ++i)
34 vertices[i] = cell->vertex(i);
41 template <
int dim,
int spacedim>
45 const bool map_center_of_reference_cell)
const 47 if (map_center_of_reference_cell)
50 for (
unsigned int d = 0; d < dim; ++d)
51 reference_center[d] = .5;
52 return transform_unit_to_real_cell(cell, reference_center);
56 const auto vertices = get_vertices(cell);
58 for (
const auto &v : vertices)
66 template <
int dim,
int spacedim>
71 if (preserves_vertex_locations())
72 return cell->bounding_box();
79 template <
int dim,
int spacedim>
83 const unsigned int face_no,
91 Point<dim> unit_cell_pt = transform_real_to_unit_cell(cell, p);
93 const unsigned int unit_normal_direction =
98 if (unit_normal_direction == 0)
99 return Point<dim - 1>{unit_cell_pt(1)};
100 else if (unit_normal_direction == 1)
101 return Point<dim - 1>{unit_cell_pt(0)};
105 if (unit_normal_direction == 0)
106 return Point<dim - 1>{unit_cell_pt(1), unit_cell_pt(2)};
107 else if (unit_normal_direction == 1)
108 return Point<dim - 1>{unit_cell_pt(0), unit_cell_pt(2)};
109 else if (unit_normal_direction == 2)
110 return Point<dim - 1>{unit_cell_pt(0), unit_cell_pt(1)};
121 template <
int dim,
int spacedim>
128 template <
int dim,
int spacedim>
132 return sizeof(*this);
141 #include "mapping.inst" 144 DEAL_II_NAMESPACE_CLOSE
Point< dim - 1 > project_real_point_to_unit_point_on_face(const typename Triangulation< dim, spacedim >::cell_iterator &cell, const unsigned int face_no, const Point< spacedim > &p) const
virtual Point< spacedim > get_center(const typename Triangulation< dim, spacedim >::cell_iterator &cell, const bool map_center_of_reference_cell=true) const
virtual std::size_t memory_consumption() const
virtual std::array< Point< spacedim >, GeometryInfo< dim >::vertices_per_cell > get_vertices(const typename Triangulation< dim, spacedim >::cell_iterator &cell) const
#define Assert(cond, exc)
virtual BoundingBox< spacedim > get_bounding_box(const typename Triangulation< dim, spacedim >::cell_iterator &cell) const
static ::ExceptionBase & ExcNotImplemented()
static ::ExceptionBase & ExcInternalError()