}
+ template<int dim, int spacedim>
+ static
+ types::global_dof_index
+ mg_vertex_dof_index (const dealii::DoFHandler<dim,spacedim> &dof_handler,
+ const int level,
+ const unsigned int vertex_index,
+ const unsigned int i)
+ {
+ return dof_handler.mg_vertex_dofs[vertex_index].get_index (level, i);
+ }
+
+
+ template<int dim, int spacedim>
+ static
+ types::global_dof_index
+ mg_vertex_dof_index (const dealii::hp::DoFHandler<dim,spacedim> &,
+ const int,
+ const unsigned int,
+ const unsigned int)
+ {
+ Assert (false, ExcMessage ("hp::DoFHandler does not implement multilevel DoFs."));
+ return numbers::invalid_dof_index;
+ }
+
+
+ template<int dim, int spacedim>
+ static
+ void
+ set_mg_vertex_dof_index (dealii::DoFHandler<dim,spacedim> &dof_handler,
+ const int level,
+ const unsigned int vertex_index,
+ const unsigned int i,
+ types::global_dof_index index)
+ {
+ return dof_handler.mg_vertex_dofs[vertex_index].set_index (level, i, index);
+ }
+
+
+ template<int dim, int spacedim>
+ static
+ void
+ set_mg_vertex_dof_index (dealii::hp::DoFHandler<dim,spacedim> &,
+ const int,
+ const unsigned int,
+ const unsigned int,
+ types::global_dof_index)
+ {
+ Assert (false, ExcMessage ("hp::DoFHandler does not implement multilevel DoFs."));
+ }
+
+
+
template <int structdim, int dim, int spacedim>
static
bool
{
(void)fe_index;
Assert (this->dof_handler != nullptr, ExcInvalidObject ());
- Assert (vertex < GeometryInfo<structdim>::vertices_per_cell, ExcIndexRange (vertex, 0, GeometryInfo<structdim>::vertices_per_cell));
- Assert (i < this->dof_handler->get_fe ()[fe_index].dofs_per_vertex, ExcIndexRange (i, 0, this->dof_handler->get_fe ()[fe_index].dofs_per_vertex));
- return this->dof_handler->mg_vertex_dofs[this->vertex_index (vertex)].get_index (level, i);
+ Assert (vertex < GeometryInfo<structdim>::vertices_per_cell,
+ ExcIndexRange (vertex, 0, GeometryInfo<structdim>::vertices_per_cell));
+ Assert (i < this->dof_handler->get_fe ()[fe_index].dofs_per_vertex,
+ ExcIndexRange (i, 0, this->dof_handler->get_fe ()[fe_index].dofs_per_vertex));
+
+ return
+ dealii::internal::DoFAccessor::Implementation::mg_vertex_dof_index
+ (*this->dof_handler,
+ level,
+ this->vertex_index(vertex),
+ i);
}
{
(void)fe_index;
Assert (this->dof_handler != nullptr, ExcInvalidObject ());
- Assert (vertex < GeometryInfo<structdim>::vertices_per_cell, ExcIndexRange (vertex, 0, GeometryInfo<structdim>::vertices_per_cell));
- Assert (i < this->dof_handler->get_fe ()[fe_index].dofs_per_vertex, ExcIndexRange (i, 0, this->dof_handler->get_fe ()[fe_index].dofs_per_vertex));
- this->dof_handler->mg_vertex_dofs[this->vertex_index (vertex)].set_index (level, i, index);
+ Assert (vertex < GeometryInfo<structdim>::vertices_per_cell,
+ ExcIndexRange (vertex, 0, GeometryInfo<structdim>::vertices_per_cell));
+ Assert (i < this->dof_handler->get_fe ()[fe_index].dofs_per_vertex,
+ ExcIndexRange (i, 0, this->dof_handler->get_fe ()[fe_index].dofs_per_vertex));
+
+ return
+ dealii::internal::DoFAccessor::Implementation::set_mg_vertex_dof_index
+ (*this->dof_handler,
+ level,
+ this->vertex_index(vertex),
+ i,
+ index);
}
*/
DoFHandler &operator = (const DoFHandler &);
- class MGVertexDoFs
- {
- public:
- MGVertexDoFs ();
- ~MGVertexDoFs ();
- types::global_dof_index get_index (const unsigned int level, const unsigned int dof_number) const;
- void set_index (const unsigned int level, const unsigned int dof_number, const types::global_dof_index index);
- };
-
/**
* Free all used memory.
*/
*/
std::vector<types::global_dof_index> vertex_dofs_offsets;
- std::vector<MGVertexDoFs> mg_vertex_dofs; // we should really remove this field!
-
/**
* Array to store the information if a cell on some level has children or
* not. It is used by the signal slots as a persistent buffer during the
return *tria;
}
-
-
- template<int dim, int spacedim>
- inline
- DoFHandler<dim, spacedim>::MGVertexDoFs::MGVertexDoFs()
- {
- Assert (false, ExcNotImplemented ());
- }
-
- template<int dim, int spacedim>
- inline
- DoFHandler<dim, spacedim>::MGVertexDoFs::~MGVertexDoFs()
- {
- Assert (false, ExcNotImplemented ());
- }
-
- template<int dim, int spacedim>
- inline
- types::global_dof_index DoFHandler<dim, spacedim>::MGVertexDoFs::get_index (const unsigned int,
- const unsigned int) const
- {
- Assert (false, ExcNotImplemented ());
- return invalid_dof_index;
- }
-
- template<int dim, int spacedim>
- inline
- void DoFHandler<dim, spacedim>::MGVertexDoFs::set_index (const unsigned int,
- const unsigned int,
- types::global_dof_index)
- {
- Assert (false, ExcNotImplemented ());
- }
-
-
#endif
}