* ordering: dofs on vertex 0, dofs on vertex 1, etc, dofs on line
* 0, dofs on line 1, etc, dofs on quad 0, etc.
*
+ * The cells needs to be an active cell (and not artificial in a
+ * parallel distributed computation).
+ *
* The vector has to have the right size before being passed to this
* function.
*
- * @note The behavior descibed below for non-active cells will
- * be removed in a future release. It is not very intuitive and its
- * use is limited to FE_Q elements of degree 1.
- *
- * This function is most often used on active objects (edges, faces,
- * cells). It can be used on non-active objects as well
- * (i.e. objects that have children), but only if the finite element
- * under consideration has degrees of freedom exclusively on
- * vertices. Otherwise, the function doesn't make much sense, since
- * for example inactive edges do not have degrees of freedom
- * associated with them at all.
- *
* The last argument denotes the finite element index. For the
* standard ::DoFHandler class, this value must be equal to its
* default value since that class only supports the same finite
* dofs on line 0, dofs on line 1, etc,
* dofs on quad 0, etc.
*
+ * The cells needs to be an active cell (and not artificial in a
+ * parallel distributed computation).
+ *
* The vector has to have the
* right size before being passed
* to this function.
*
- * This function is most often
- * used on active objects (edges,
- * faces, cells). It can be used
- * on non-active objects as well
- * (i.e. objects that have
- * children), but only if the
- * finite element under
- * consideration has degrees of
- * freedom exclusively on
- * vertices. Otherwise, the
- * function doesn't make much
- * sense, since for example
- * inactive edges do not have
- * degrees of freedom associated
- * with them at all.
- *
* The last argument denotes the
* finite element index. For the
* standard ::DoFHandler class,
* function overwrites the one in
* the base class.
*
- * This is a function which requires that the cell be active.
+ * This is a function which requires that the cell is active.
*
* Also see get_active_or_mg_dof_indices().
- *
- * @deprecated Currently, this function can also be called for non-active cells, if all degrees of freedom of the FiniteElement are located in vertices. This functionality will vanish in a future release.
*/
void get_dof_indices (std::vector<unsigned int> &dof_indices) const;
{
AssertDimension (dof_indices.size(), accessor.get_fe().dofs_per_cell);
- // check as in documentation that
- // cell is either active, or dofs
- // are only in vertices
- Assert (!accessor.has_children()
- ||
- (accessor.get_fe().dofs_per_cell ==
- accessor.get_fe().dofs_per_vertex * GeometryInfo<dim>::vertices_per_cell),
- ExcMessage ("Cell must either be active, or all DoFs must be in vertices"));
+ Assert (!accessor.has_children(),
+ ExcMessage ("Cell must be active."));
unsigned int *cache = &accessor.dof_handler->levels[accessor.level()]
->cell_dof_indices_cache[accessor.present_index * accessor.get_fe().dofs_per_cell];
Assert (values.size() == accessor.get_dof_handler().n_dofs(),
typename BaseClass::ExcVectorDoesNotMatch());
- // check as in documentation that
- // cell is either active, or dofs
- // are only in vertices
- Assert (!accessor.has_children()
- ||
- (accessor.get_fe().dofs_per_cell ==
- accessor.get_fe().dofs_per_vertex * GeometryInfo<dim>::vertices_per_cell),
- ExcMessage ("Cell must either be active, or all DoFs must be in vertices"));
+ Assert (!accessor.has_children(),
+ ExcMessage ("Cell must be active."));
unsigned int *cache = &accessor.dof_handler->levels[accessor.level()]
->cell_dof_indices_cache[accessor.present_index *
Assert (values.size() == accessor.get_dof_handler().n_dofs(),
typename BaseClass::ExcVectorDoesNotMatch());
- // check as in documentation that
- // cell is either active, or dofs
- // are only in vertices
- Assert (!accessor.has_children()
- ||
- (accessor.get_fe().dofs_per_cell ==
- accessor.get_fe().dofs_per_vertex * GeometryInfo<dim>::vertices_per_cell),
- ExcMessage ("Cell must either be active, or all DoFs must be in vertices"));
+ Assert (!accessor.has_children(),
+ ExcMessage ("Cell must be active."));
unsigned int *cache = &accessor.dof_handler->levels[accessor.level()]
->cell_dof_indices_cache[accessor.present_index *
Assert (values.size() == accessor.get_dof_handler().n_dofs(),
typename BaseClass::ExcVectorDoesNotMatch());
- // check as in documentation that
- // cell is either active, or dofs
- // are only in vertices
- Assert (!accessor.has_children()
- ||
- (accessor.get_fe().dofs_per_cell ==
- accessor.get_fe().dofs_per_vertex * GeometryInfo<dim>::vertices_per_cell),
- ExcMessage ("Cell must either be active, or all DoFs must be in vertices"));
+ Assert (!accessor.has_children(),
+ ExcMessage ("Cell must be active."));
unsigned int *cache = &accessor.dof_handler->levels[accessor.level()]
->cell_dof_indices_cache[accessor.present_index * accessor.get_fe().dofs_per_cell];
Assert (accessor.dof_handler->n_dofs() == global_destination.size(),
typename BaseClass::ExcVectorDoesNotMatch());
- // check as in documentation that
- // cell is either active, or dofs
- // are only in vertices
- Assert (!accessor.has_children()
- ||
- (accessor.get_fe().dofs_per_cell ==
- accessor.get_fe().dofs_per_vertex * GeometryInfo<dim>::vertices_per_cell),
- ExcMessage ("Cell must either be active, or all DoFs must be in vertices"));
+ Assert (!accessor.has_children(),
+ ExcMessage ("Cell must be active"));
const unsigned int n_dofs = local_source_end - local_source_begin;
Assert (accessor.dof_handler->n_dofs() == global_destination.size(),
typename BaseClass::ExcVectorDoesNotMatch());
- // check as in documentation that
- // cell is either active, or dofs
- // are only in vertices
- Assert (!accessor.has_children()
- ||
- (accessor.get_fe().dofs_per_cell ==
- accessor.get_fe().dofs_per_vertex * GeometryInfo<dim>::vertices_per_cell),
- ExcMessage ("Cell must either be active, or all DoFs must be in vertices"));
+ Assert (!accessor.has_children(),
+ ExcMessage ("Cell must be active."));
const unsigned int n_dofs = local_source_end - local_source_begin;
Assert (accessor.dof_handler->n_dofs() == global_destination.n(),
typename BaseClass::ExcMatrixDoesNotMatch());
- // check as in documentation that
- // cell is either active, or dofs
- // are only in vertices
- Assert (!accessor.has_children()
- ||
- (accessor.get_fe().dofs_per_cell ==
- accessor.get_fe().dofs_per_vertex * GeometryInfo<dim>::vertices_per_cell),
- ExcMessage ("Cell must either be active, or all DoFs must be in vertices"));
+ Assert (!accessor.has_children(),
+ ExcMessage ("Cell must be active."));
const unsigned int n_dofs = local_source.m();
Assert (accessor.dof_handler->n_dofs() == global_vector.size(),
typename BaseClass::ExcVectorDoesNotMatch());
- // check as in documentation that
- // cell is either active, or dofs
- // are only in vertices
- Assert (!accessor.has_children()
- ||
- (accessor.get_fe().dofs_per_cell ==
- accessor.get_fe().dofs_per_vertex * GeometryInfo<dim>::vertices_per_cell),
- ExcMessage ("Cell must either be active, or all DoFs must be in vertices"));
+ Assert (!accessor.has_children(),
+ ExcMessage ("Cell must be active."));
const unsigned int n_dofs = accessor.get_fe().dofs_per_cell;
unsigned int *dofs = &accessor.dof_handler->levels[accessor.level()]
void
DoFCellAccessor<DH,lda>::get_dof_indices (std::vector<unsigned int> &dof_indices) const
{
+ Assert (this->active(), ExcMessage ("get_dof_indices() only works on active cells."));
Assert (this->is_artificial() == false,
ExcMessage ("Can't ask for DoF indices on artificial cells."));
AssertDimension (dof_indices.size(), this->get_fe().dofs_per_cell);