TensorProductPolynomials<dim-1>(Polynomials::LagrangeEquidistant::generate_complete_basis(degree)),
FiniteElementData<dim>(get_dpo_vector(degree), 1, degree, FiniteElementData<dim>::L2),
std::vector<bool>(1,true))
-{}
+{
+ // initialize unit face support points
+ const unsigned int codim = dim-1;
+ this->unit_face_support_points.resize(Utilities::fixed_power<codim>(this->degree+1));
+
+ if (this->degree == 0)
+ for (unsigned int d=0; d<codim; ++d)
+ this->unit_face_support_points[0][d] = 0.5;
+ else
+ {
+ const double step = 1./this->degree;
+ Point<codim> p;
+
+ unsigned int k=0;
+ for (unsigned int iz=0; iz <= ((codim>2) ? this->degree : 0) ; ++iz)
+ for (unsigned int iy=0; iy <= ((codim>1) ? this->degree : 0) ; ++iy)
+ for (unsigned int ix=0; ix<=this->degree; ++ix)
+ {
+ p(0) = ix * step;
+ if (codim>1)
+ p(1) = iy * step;
+ if (codim>2)
+ p(2) = iz * step;
+
+ this->unit_face_support_points[k++] = p;
+ }
+ AssertDimension (k, this->unit_face_support_points.size());
+ }
+}
template <int dim, int spacedim>
DEAL::degree=0
DEAL::conformity= L2
DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=1
DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=1
DEAL::face_to_equivalent_cell_index: 0
DEAL::face_to_cell_index: 0
DEAL::face_to_cell_index: 1
DEAL::degree=1
DEAL::conformity= L2
DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=2
DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=2
DEAL::face_to_equivalent_cell_index: 0 1
DEAL::face_to_cell_index: 0 1
DEAL::face_to_cell_index: 2 3
DEAL::degree=3
DEAL::conformity= L2
DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=4
DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=4
DEAL::face_to_equivalent_cell_index: 0 1 2 3
DEAL::face_to_cell_index: 0 1 2 3
DEAL::face_to_cell_index: 4 5 6 7
DEAL::degree=0
DEAL::conformity= L2
DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=1
DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=1
DEAL::face_to_equivalent_cell_index: 0
DEAL::face_to_cell_index: 0
DEAL::face_to_cell_index: 1
DEAL::degree=1
DEAL::conformity= L2
DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=4
DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=4
DEAL::face_to_equivalent_cell_index: 0 1 2 3
DEAL::face_to_cell_index: 0 1 2 3
DEAL::face_to_cell_index: 4 5 6 7
DEAL::degree=3
DEAL::conformity= L2
DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=16
DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=16
DEAL::face_to_equivalent_cell_index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DEAL::face_to_cell_index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DEAL::face_to_cell_index: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31