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>
123 : update_each(update_default)
128 template <
int dim,
int spacedim>
132 return sizeof(*this);
141 #include "mapping.inst"
144 DEAL_II_NAMESPACE_CLOSE