From: Wolfgang Bangerth Date: Wed, 13 Sep 2017 03:08:02 +0000 (-0600) Subject: Make the set_dof_indices() function more general. X-Git-Tag: v9.0.0-rc1~1087^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F5070%2Fhead;p=dealii.git Make the set_dof_indices() function more general. --- diff --git a/include/deal.II/dofs/dof_accessor.templates.h b/include/deal.II/dofs/dof_accessor.templates.h index a678737fca..50e54ed9d1 100644 --- a/include/deal.II/dofs/dof_accessor.templates.h +++ b/include/deal.II/dofs/dof_accessor.templates.h @@ -2952,13 +2952,15 @@ namespace internal set_dof_indices (DoFCellAccessor, level_dof_access> &accessor, const std::vector &local_dof_indices) { + const unsigned int dim = 3; + Assert (accessor.has_children() == false, ExcInternalError()); - const unsigned int dofs_per_vertex = accessor.get_fe().dofs_per_vertex, - dofs_per_line = accessor.get_fe().dofs_per_line, - dofs_per_quad = accessor.get_fe().dofs_per_quad, - dofs_per_hex = accessor.get_fe().dofs_per_hex, + const unsigned int dofs_per_vertex = accessor.get_fe().template n_dofs_per_object<0>(), + dofs_per_line = accessor.get_fe().template n_dofs_per_object<1>(), + dofs_per_quad = accessor.get_fe().template n_dofs_per_object<2>(), + dofs_per_hex = accessor.get_fe().template n_dofs_per_object<3>(), dofs_per_cell = accessor.get_fe().dofs_per_cell; (void)dofs_per_cell; @@ -2967,7 +2969,7 @@ namespace internal unsigned int index = 0; - for (unsigned int vertex=0; vertex<8; ++vertex) + for (unsigned int vertex=0; vertex::vertices_per_cell; ++vertex) for (unsigned int d=0; d::lines_per_cell; ++line) for (unsigned int d=0; dset_dof_index(accessor.dof_handler->get_fe(). adjust_line_dof_index_for_line_orientation(d, @@ -2993,7 +2995,7 @@ namespace internal // adjust the shape function indices that we see to correspond // to the correct (cell-local) ordering. The same applies, if // the face_rotation or face_orientation is non-standard - for (unsigned int quad=0; quad<6; ++quad) + for (unsigned int quad=0; quad::quads_per_cell; ++quad) for (unsigned int d=0; dset_dof_index(accessor.dof_handler->get_fe(). adjust_quad_dof_index_for_face_orientation(d,