fe_index,
[&](const auto d) {
return fe.adjust_quad_dof_index_for_face_orientation(
- d,
- face_no,
- accessor.face_orientation(face_no),
- accessor.face_flip(face_no),
- accessor.face_rotation(face_no));
+ d, face_no, combined_orientation);
},
std::integral_constant<int, 2>(),
dof_indices_ptr,
const unsigned int face_no = 0) const;
/**
- * For faces with non-standard face_orientation in 3d, the dofs on faces
- * (quads) have to be permuted in order to be combined with the correct
- * shape functions. Given a local dof @p index on a quad, return the local
- * index, if the face has non-standard face_orientation, face_flip or
- * face_rotation. In 2d and 1d there is no need for permutation and
- * consequently an exception is thrown.
+ * Given a local dof @p index on a quad, return the local index accounting for
+ * the face orientation @p combined_orientation. This is only necessary in 3d:
+ * consequently, if this function is called in 1d or 2d then an exception is
+ * thrown.
*/
unsigned int
- adjust_quad_dof_index_for_face_orientation(const unsigned int index,
- const unsigned int face_no,
- const bool face_orientation,
- const bool face_flip,
- const bool face_rotation) const;
+ adjust_quad_dof_index_for_face_orientation(
+ const unsigned int index,
+ const unsigned int face_no,
+ const unsigned char combined_orientation) const;
/**
* Given an index in the natural ordering of indices on a face, return the
template <int dim, int spacedim>
unsigned int
FiniteElement<dim, spacedim>::adjust_quad_dof_index_for_face_orientation(
- const unsigned int index,
- const unsigned int face,
- const bool face_orientation,
- const bool face_flip,
- const bool face_rotation) const
+ const unsigned int index,
+ const unsigned int face,
+ const unsigned char combined_orientation) const
{
// general template for 1d and 2d: not
// implemented. in fact, the function
this->n_dofs_per_quad(face),
ExcInternalError());
return index + adjust_quad_dof_index_for_face_orientation_table[table_n](
- index,
- internal::combined_face_orientation(face_orientation,
- face_rotation,
- face_flip));
+ index, combined_orientation);
}