void
MGDoFAccessor<structdim, dim, spacedim>::set_mg_dof_handler (MGDoFHandler<dim,spacedim> *dh)
{
- typedef DoFAccessor<dim,DoFHandler<dim> > BaseClass;
+ typedef DoFAccessor<dim,DoFHandler<dim, spacedim> > BaseClass;
Assert (dh != 0, typename BaseClass::ExcInvalidObject());
mg_dof_handler = dh;
}
void
MGDoFAccessor<structdim, dim, spacedim>::copy_from (const MGDoFAccessor &a)
{
- DoFAccessor<structdim, DoFHandler<dim> >::copy_from (a);
+ DoFAccessor<structdim, DoFHandler<dim, spacedim> >::copy_from (a);
this->set_mg_dof_handler (a.mg_dof_handler);
}
+
#if deal_II_dimension == 1
-template class MGDoFAccessor<1, 1>;
+template class MGDoFAccessor<1, 1, 1>;
+template class MGDoFAccessor<1, 1, 2>;
template class MGDoFCellAccessor<1>;
#endif
#if deal_II_dimension == 2
-template class MGDoFAccessor<1, 2>;
-template class MGDoFAccessor<2, 2>;
+template class MGDoFAccessor<1, 2, 2>;
+template class MGDoFAccessor<2, 2, 2>;
+
+template class MGDoFAccessor<1, 2, 3>;
+template class MGDoFAccessor<2, 2, 3>;
template class MGDoFCellAccessor<2>;
-template class TriaRawIterator <MGDoFAccessor<1, 2> >;
-template class TriaIterator <MGDoFAccessor<1, 2> >;
-template class TriaActiveIterator<MGDoFAccessor<1, 2> >;
+template class TriaRawIterator <MGDoFAccessor<1, 2, 2> >;
+template class TriaIterator <MGDoFAccessor<1, 2, 2> >;
+template class TriaActiveIterator<MGDoFAccessor<1, 2, 2> >;
+
+template class TriaRawIterator <MGDoFAccessor<1, 2, 3> >;
+template class TriaIterator <MGDoFAccessor<1, 2, 3> >;
+template class TriaActiveIterator<MGDoFAccessor<1, 2, 3> >;
template class TriaRawIterator <MGDoFCellAccessor<2> >;
template class TriaIterator <MGDoFCellAccessor<2> >;
#if deal_II_dimension == 3
-template class MGDoFAccessor<1, 3>;
-template class MGDoFAccessor<2, 3>;
-template class MGDoFAccessor<3, 3>;
+template class MGDoFAccessor<1, 3, 3>;
+template class MGDoFAccessor<2, 3, 3>;
+template class MGDoFAccessor<3, 3, 3>;
template class MGDoFCellAccessor<3>;
-template class TriaRawIterator <MGDoFAccessor<1, 3> >;
-template class TriaIterator <MGDoFAccessor<1, 3> >;
-template class TriaActiveIterator<MGDoFAccessor<1, 3> >;
+template class TriaRawIterator <MGDoFAccessor<1, 3, 3> >;
+template class TriaIterator <MGDoFAccessor<1, 3, 3> >;
+template class TriaActiveIterator<MGDoFAccessor<1, 3, 3> >;
-template class TriaRawIterator <MGDoFAccessor<2, 3> >;
-template class TriaIterator <MGDoFAccessor<2, 3> >;
-template class TriaActiveIterator<MGDoFAccessor<2, 3> >;
+template class TriaRawIterator <MGDoFAccessor<2, 3, 3> >;
+template class TriaIterator <MGDoFAccessor<2, 3, 3> >;
+template class TriaActiveIterator<MGDoFAccessor<2, 3, 3> >;
template class TriaRawIterator <MGDoFCellAccessor<3> >;
template class TriaIterator <MGDoFCellAccessor<3> >;
Assert (indices != 0, ExcNoMemory ());
for (unsigned int i=0; i<n_levels*dofs_per_vertex; ++i)
- indices[i] = DoFHandler<dim>::invalid_dof_index;
+ indices[i] = DoFHandler<dim, spacedim>::invalid_dof_index;
}
template <int dim, int spacedim>
MGDoFHandler<dim,spacedim>::MGDoFHandler (const Triangulation<dim,spacedim> &tria) :
- DoFHandler<dim> (tria),
+ DoFHandler<dim,spacedim> (tria),
mg_faces (NULL)
{}
unsigned int
MGDoFHandler<dim,spacedim>::memory_consumption() const
{
- unsigned int mem = DoFHandler<dim>::memory_consumption();
+ unsigned int mem = DoFHandler<dim,spacedim>::memory_consumption();
for (unsigned int l=0;l<mg_levels.size();++l)
mem += mg_levels[l]->memory_consumption();
const unsigned int offset)
{
// first distribute global dofs
- DoFHandler<dim>::distribute_dofs (fe);
+ DoFHandler<dim,spacedim>::distribute_dofs (fe);
// reserve space for the MG dof numbers
// let base class release its mem
// as well
- DoFHandler<dim>::clear ();
+ DoFHandler<dim,spacedim>::clear ();
}
// explicit instantiations
template class MGDoFHandler<deal_II_dimension>;
+#if deal_II_dimension==1 || deal_II_dimension==2
+template class MGDoFHandler<deal_II_dimension,deal_II_dimension+1>;
+#endif
+
DEAL_II_NAMESPACE_CLOSE