// can be called even if level_dof_access==false.
(void)count_level_dofs;
- AssertDimension(dof_indices.size(),
- n_dof_indices(accessor, fe_index, count_level_dofs));
+ AssertIndexRange(n_dof_indices(accessor, fe_index, count_level_dofs),
+ dof_indices.size() + 1);
const auto &fe = accessor.get_fe(fe_index);
dof_indices,
fe_index);
- AssertDimension(dof_indices.size(), index);
+ AssertDimension(n_dof_indices(accessor, fe_index, count_level_dofs),
+ index);
+
+ // PM: This is a part that should not be reached since it indicates that
+ // an object (and/or its subobjects) is not active. However,
+ // unfortunately this function is called by
+ // DoFTools::set_periodicity_constraints() indirectly by
+ // get_dof_indices() also for artificial faces to determine if a face
+ // is artificial.
+ for (; index < dof_indices.size(); ++index)
+ dof_operation.process_non_active_dof(dof_indices, index);
}
{
Assert(false, ExcInternalError());
}
+
+ /**
+ * Process non-active DoF.
+ */
+ DEAL_II_ALWAYS_INLINE void
+ process_non_active_dof(
+ std::vector<types::global_dof_index> &dof_indices,
+ const unsigned int index) const
+ {
+ dof_indices[index] = numbers::invalid_dof_index;
+ }
};
{
Assert(false, ExcInternalError());
}
+
+ /**
+ * Process non-active DoF.
+ */
+ DEAL_II_ALWAYS_INLINE void
+ process_non_active_dof(const std::vector<types::global_dof_index> &,
+ const unsigned int) const
+ {
+ Assert(false, ExcInternalError());
+ }
};
Assert(false, ExcInternalError());
}
+ /**
+ * Process non-active DoF.
+ */
+ DEAL_II_ALWAYS_INLINE void
+ process_non_active_dof(std::vector<types::global_dof_index> &,
+ const unsigned int) const
+ {
+ Assert(false, ExcInternalError());
+ }
+
private:
const FiniteElement<dim, spacedim> &fe;
const unsigned int level;
Assert(false, ExcInternalError());
}
+ /**
+ * Process non-active DoF.
+ */
+ DEAL_II_ALWAYS_INLINE void
+ process_non_active_dof(const std::vector<types::global_dof_index> &,
+ const unsigned int) const
+ {
+ Assert(false, ExcInternalError());
+ }
+
private:
const FiniteElement<dim, spacedim> &fe;
const unsigned int level;