]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Move most of the hp stuff to its own namespace.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Wed, 4 Jan 2006 16:11:16 +0000 (16:11 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Wed, 4 Jan 2006 16:11:16 +0000 (16:11 +0000)
git-svn-id: https://svn.dealii.org/trunk@11948 0785d39b-7218-0410-832d-ea1e28bc413d

33 files changed:
deal.II/deal.II/include/dofs/dof_accessor.h
deal.II/deal.II/include/dofs/dof_accessor.templates.h
deal.II/deal.II/include/dofs/dof_tools.h
deal.II/deal.II/include/dofs/hp_dof_handler.h
deal.II/deal.II/include/dofs/hp_dof_levels.h
deal.II/deal.II/include/fe/fe_collection.h
deal.II/deal.II/include/fe/fe_tools.h
deal.II/deal.II/include/fe/fe_values.h
deal.II/deal.II/include/fe/hp_fe_values.h
deal.II/deal.II/include/fe/mapping_collection.h
deal.II/deal.II/include/fe/q_collection.h
deal.II/deal.II/include/fe/select_fe_values.h
deal.II/deal.II/include/grid/tria.h
deal.II/deal.II/include/numerics/derivative_approximation.h
deal.II/deal.II/include/numerics/vectors.h
deal.II/deal.II/include/numerics/vectors.templates.h
deal.II/deal.II/source/dofs/dof_accessor.cc
deal.II/deal.II/source/dofs/dof_renumbering.cc
deal.II/deal.II/source/dofs/dof_tools.cc
deal.II/deal.II/source/dofs/hp_dof_handler.cc
deal.II/deal.II/source/dofs/hp_dof_levels.cc
deal.II/deal.II/source/fe/fe_values.cc
deal.II/deal.II/source/fe/hp_fe_values.cc
deal.II/deal.II/source/numerics/data_out.cc
deal.II/deal.II/source/numerics/data_out_faces.cc
deal.II/deal.II/source/numerics/data_out_stack.cc
deal.II/deal.II/source/numerics/derivative_approximation.cc
deal.II/deal.II/source/numerics/vectors.cc
deal.II/examples/step-17/step-17.cc
deal.II/examples/step-19/Makefile
deal.II/examples/step-20/Makefile
deal.II/examples/step-21/step-21.cc
tests/hp/hp_dof_handler.cc

index 6ab7793bf50744d2751ed22047ffd2730f3786a9..550c99fa3d16768343db94bee7ce23b963c126ae 100644 (file)
@@ -23,7 +23,7 @@ template <typename number> class SparseMatrix;
 template <typename number> class Vector;
 
 template <int dim> class DoFHandler;
-template <int dim> class hpDoFHandler;
+template <int dim> class hp::DoFHandler;
 template <int dim> class FiniteElement;
 
 template <int celldim, int dim, template <int> class DH> class DoFObjectAccessor;
@@ -1579,80 +1579,80 @@ DoFCellAccessor<3, DoFHandler>::face (const unsigned int i) const;
 
 template <>
 const FiniteElement<1> &
-DoFObjectAccessor<1,1,hpDoFHandler>::get_fe () const;
+DoFObjectAccessor<1,1,hp::DoFHandler>::get_fe () const;
 template <>
 const FiniteElement<2> &
-DoFObjectAccessor<1,2,hpDoFHandler>::get_fe () const;
+DoFObjectAccessor<1,2,hp::DoFHandler>::get_fe () const;
 template <>
 const FiniteElement<3> &
-DoFObjectAccessor<1,3,hpDoFHandler>::get_fe () const;
+DoFObjectAccessor<1,3,hp::DoFHandler>::get_fe () const;
 template <>
 const FiniteElement<2> &
-DoFObjectAccessor<2,2,hpDoFHandler>::get_fe () const;
+DoFObjectAccessor<2,2,hp::DoFHandler>::get_fe () const;
 template <>
 const FiniteElement<3> &
-DoFObjectAccessor<2,3,hpDoFHandler>::get_fe () const;
+DoFObjectAccessor<2,3,hp::DoFHandler>::get_fe () const;
 template <>
 const FiniteElement<3> &
-DoFObjectAccessor<3,3,hpDoFHandler>::get_fe () const;
+DoFObjectAccessor<3,3,hp::DoFHandler>::get_fe () const;
 
 template <>
-void DoFObjectAccessor<1,1,hpDoFHandler>::set_dof_index (const unsigned int,
+void DoFObjectAccessor<1,1,hp::DoFHandler>::set_dof_index (const unsigned int,
                                                          const unsigned int) const;
 template <>
-void DoFObjectAccessor<1,2,hpDoFHandler>::set_dof_index (const unsigned int,
+void DoFObjectAccessor<1,2,hp::DoFHandler>::set_dof_index (const unsigned int,
                                                          const unsigned int) const;
 template <>
-void DoFObjectAccessor<1,3,hpDoFHandler>::set_dof_index (const unsigned int,
+void DoFObjectAccessor<1,3,hp::DoFHandler>::set_dof_index (const unsigned int,
                                                          const unsigned int) const;
 template <>
-void DoFObjectAccessor<2,2,hpDoFHandler>::set_dof_index (const unsigned int,
+void DoFObjectAccessor<2,2,hp::DoFHandler>::set_dof_index (const unsigned int,
                                                          const unsigned int) const;
 template <>
-void DoFObjectAccessor<2,3,hpDoFHandler>::set_dof_index (const unsigned int,
+void DoFObjectAccessor<2,3,hp::DoFHandler>::set_dof_index (const unsigned int,
                                                          const unsigned int) const;
 template <>
-void DoFObjectAccessor<3,3,hpDoFHandler>::set_dof_index (const unsigned int,
+void DoFObjectAccessor<3,3,hp::DoFHandler>::set_dof_index (const unsigned int,
                                                          const unsigned int) const;
 
 
 template <>
 unsigned int
-DoFObjectAccessor<1,1,hpDoFHandler>::active_fe_index () const;
+DoFObjectAccessor<1,1,hp::DoFHandler>::active_fe_index () const;
 template <>
 unsigned int
-DoFObjectAccessor<1,2,hpDoFHandler>::active_fe_index () const;
+DoFObjectAccessor<1,2,hp::DoFHandler>::active_fe_index () const;
 template <>
 unsigned int
-DoFObjectAccessor<1,3,hpDoFHandler>::active_fe_index () const;
+DoFObjectAccessor<1,3,hp::DoFHandler>::active_fe_index () const;
 template <>
 unsigned int
-DoFObjectAccessor<2,2,hpDoFHandler>::active_fe_index () const;
+DoFObjectAccessor<2,2,hp::DoFHandler>::active_fe_index () const;
 template <>
 unsigned int
-DoFObjectAccessor<2,3,hpDoFHandler>::active_fe_index () const;
+DoFObjectAccessor<2,3,hp::DoFHandler>::active_fe_index () const;
 template <>
 unsigned int
-DoFObjectAccessor<3,3,hpDoFHandler>::active_fe_index () const;
+DoFObjectAccessor<3,3,hp::DoFHandler>::active_fe_index () const;
 
 template <>
 void
-DoFObjectAccessor<1,1,hpDoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<1,1,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
 template <>
 void
-DoFObjectAccessor<1,2,hpDoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<1,2,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
 template <>
 void
-DoFObjectAccessor<1,3,hpDoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<1,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
 template <>
 void
-DoFObjectAccessor<2,2,hpDoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<2,2,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
 template <>
 void
-DoFObjectAccessor<2,3,hpDoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<2,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
 template <>
 void
-DoFObjectAccessor<3,3,hpDoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<3,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
 
 
 // include more templates
index f769bf0ee2ee0940d223b806dc0fbb95cde67e7c..e75d761c05774b7fdbb81233097e2183df01aaf5 100644 (file)
@@ -1027,12 +1027,12 @@ DoFObjectAccessor<3,dim,DH>::operator != (const DoFObjectAccessor<3,dim,DH> &a)
 }
 
 
-/*--------------- Functions: DoFObjectAccessor<1,dim,hpDoFHandler> -----------*/
+/*--------------- Functions: DoFObjectAccessor<1,dim,hp::DoFHandler> -----------*/
 
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,1,hpDoFHandler>::dof_index (const unsigned int i) const
+DoFObjectAccessor<1,1,hp::DoFHandler>::dof_index (const unsigned int i) const
 {
                                   // since the exception classes are
                                   // from a template dependent base
@@ -1043,7 +1043,7 @@ DoFObjectAccessor<1,1,hpDoFHandler>::dof_index (const unsigned int i) const
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<1, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<1, hp::DoFHandler> BaseClass;
   
   Assert (this->dof_handler != 0, BaseClass::ExcInvalidObject());
                                   // make sure a FE has been selected
@@ -1062,7 +1062,7 @@ DoFObjectAccessor<1,1,hpDoFHandler>::dof_index (const unsigned int i) const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,2,hpDoFHandler>::dof_index (const unsigned int i) const
+DoFObjectAccessor<1,2,hp::DoFHandler>::dof_index (const unsigned int i) const
 {
                                   // since the exception classes are
                                   // from a template dependent base
@@ -1073,7 +1073,7 @@ DoFObjectAccessor<1,2,hpDoFHandler>::dof_index (const unsigned int i) const
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<2, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<2, hp::DoFHandler> BaseClass;
   
   Assert (this->dof_handler != 0, BaseClass::ExcInvalidObject());
                                   // make sure a FE has been selected
@@ -1092,7 +1092,7 @@ DoFObjectAccessor<1,2,hpDoFHandler>::dof_index (const unsigned int i) const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,3,hpDoFHandler>::dof_index (const unsigned int i) const
+DoFObjectAccessor<1,3,hp::DoFHandler>::dof_index (const unsigned int i) const
 {
                                   // since the exception classes are
                                   // from a template dependent base
@@ -1103,7 +1103,7 @@ DoFObjectAccessor<1,3,hpDoFHandler>::dof_index (const unsigned int i) const
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<3, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
   
   Assert (this->dof_handler != 0, BaseClass::ExcInvalidObject());
                                   // make sure a FE has been selected
@@ -1123,10 +1123,10 @@ DoFObjectAccessor<1,3,hpDoFHandler>::dof_index (const unsigned int i) const
 template <>
 inline
 void
-DoFObjectAccessor<1, 1, hpDoFHandler>::set_dof_index (const unsigned int i,
+DoFObjectAccessor<1, 1, hp::DoFHandler>::set_dof_index (const unsigned int i,
                                                       const unsigned int index) const
 {
-  typedef DoFAccessor<1, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<1, hp::DoFHandler> BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1147,10 +1147,10 @@ DoFObjectAccessor<1, 1, hpDoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 void
-DoFObjectAccessor<1, 2, hpDoFHandler>::set_dof_index (const unsigned int i,
+DoFObjectAccessor<1, 2, hp::DoFHandler>::set_dof_index (const unsigned int i,
                                                       const unsigned int index) const
 {
-  typedef DoFAccessor<2, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<2, hp::DoFHandler> BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1175,10 +1175,10 @@ DoFObjectAccessor<1, 2, hpDoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 void
-DoFObjectAccessor<1, 3, hpDoFHandler>::set_dof_index (const unsigned int i,
+DoFObjectAccessor<1, 3, hp::DoFHandler>::set_dof_index (const unsigned int i,
                                                       const unsigned int index) const
 {
-  typedef DoFAccessor<3, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1201,21 +1201,21 @@ DoFObjectAccessor<1, 3, hpDoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 const FiniteElement<1> &
-DoFObjectAccessor<1,1,hpDoFHandler>::get_fe () const
+DoFObjectAccessor<1,1,hp::DoFHandler>::get_fe () const
 {
   return dof_handler->finite_elements->get_fe(active_fe_index ());
 }
 template <>
 inline
 const FiniteElement<2> &
-DoFObjectAccessor<1,2,hpDoFHandler>::get_fe () const
+DoFObjectAccessor<1,2,hp::DoFHandler>::get_fe () const
 {
   return dof_handler->finite_elements->get_fe(active_fe_index ());
 }
 template <>
 inline
 const FiniteElement<3> &
-DoFObjectAccessor<1,3,hpDoFHandler>::get_fe () const
+DoFObjectAccessor<1,3,hp::DoFHandler>::get_fe () const
 {
   return dof_handler->finite_elements->get_fe(active_fe_index ());
 }
@@ -1224,7 +1224,7 @@ DoFObjectAccessor<1,3,hpDoFHandler>::get_fe () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,1,hpDoFHandler>::active_fe_index () const
+DoFObjectAccessor<1,1,hp::DoFHandler>::active_fe_index () const
 {
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
          dof_handler->levels[this->present_level]->active_fe_indices.size (),
@@ -1236,7 +1236,7 @@ DoFObjectAccessor<1,1,hpDoFHandler>::active_fe_index () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,2,hpDoFHandler>::active_fe_index () const
+DoFObjectAccessor<1,2,hp::DoFHandler>::active_fe_index () const
 {
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
          dof_handler->levels[this->present_level]->active_fe_indices.size (),
@@ -1248,7 +1248,7 @@ DoFObjectAccessor<1,2,hpDoFHandler>::active_fe_index () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,3,hpDoFHandler>::active_fe_index () const
+DoFObjectAccessor<1,3,hp::DoFHandler>::active_fe_index () const
 {
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
          dof_handler->levels[this->present_level]->active_fe_indices.size (),
@@ -1262,7 +1262,7 @@ DoFObjectAccessor<1,3,hpDoFHandler>::active_fe_index () const
 template <>
 inline
 void
-DoFObjectAccessor<1,1,hpDoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<1,1,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
 {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
@@ -1277,7 +1277,7 @@ DoFObjectAccessor<1,1,hpDoFHandler>::set_active_fe_index (const unsigned int i)
 template <>
 inline
 void
-DoFObjectAccessor<1,2,hpDoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<1,2,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
 {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
@@ -1292,7 +1292,7 @@ DoFObjectAccessor<1,2,hpDoFHandler>::set_active_fe_index (const unsigned int i)
 template <>
 inline
 void
-DoFObjectAccessor<1,3,hpDoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<1,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
 {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
@@ -1306,13 +1306,13 @@ DoFObjectAccessor<1,3,hpDoFHandler>::set_active_fe_index (const unsigned int i)
 }
 
 
-/*------------- Functions: DoFObjectAccessor<2,dim,hpDoFHandler> -------------*/
+/*------------- Functions: DoFObjectAccessor<2,dim,hp::DoFHandler> -------------*/
 
 template <>
 inline
-unsigned int DoFObjectAccessor<2,2,hpDoFHandler>::dof_index (const unsigned int i) const
+unsigned int DoFObjectAccessor<2,2,hp::DoFHandler>::dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<2, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<2, hp::DoFHandler> BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1331,9 +1331,9 @@ unsigned int DoFObjectAccessor<2,2,hpDoFHandler>::dof_index (const unsigned int
 
 template <>
 inline
-unsigned int DoFObjectAccessor<2,3,hpDoFHandler>::dof_index (const unsigned int i) const
+unsigned int DoFObjectAccessor<2,3,hp::DoFHandler>::dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<3, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1354,10 +1354,10 @@ unsigned int DoFObjectAccessor<2,3,hpDoFHandler>::dof_index (const unsigned int
 template <>
 inline
 void
-DoFObjectAccessor<2, 2, hpDoFHandler>::set_dof_index (const unsigned int i,
+DoFObjectAccessor<2, 2, hp::DoFHandler>::set_dof_index (const unsigned int i,
                                                       const unsigned int index) const
 {
-  typedef DoFAccessor<2, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<2, hp::DoFHandler> BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1378,10 +1378,10 @@ DoFObjectAccessor<2, 2, hpDoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 void
-DoFObjectAccessor<2, 3, hpDoFHandler>::set_dof_index (const unsigned int i,
+DoFObjectAccessor<2, 3, hp::DoFHandler>::set_dof_index (const unsigned int i,
                                                       const unsigned int index) const
 {
-  typedef DoFAccessor<3, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1403,7 +1403,7 @@ DoFObjectAccessor<2, 3, hpDoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 const FiniteElement<2> &
-DoFObjectAccessor<2,2,hpDoFHandler>::get_fe () const
+DoFObjectAccessor<2,2,hp::DoFHandler>::get_fe () const
 {
   return dof_handler->finite_elements->get_fe(active_fe_index ());
 }
@@ -1413,7 +1413,7 @@ DoFObjectAccessor<2,2,hpDoFHandler>::get_fe () const
 template <>
 inline
 const FiniteElement<3> &
-DoFObjectAccessor<2,3,hpDoFHandler>::get_fe () const
+DoFObjectAccessor<2,3,hp::DoFHandler>::get_fe () const
 {
   return dof_handler->finite_elements->get_fe(active_fe_index ());
 }
@@ -1423,7 +1423,7 @@ DoFObjectAccessor<2,3,hpDoFHandler>::get_fe () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<2,2,hpDoFHandler>::active_fe_index () const
+DoFObjectAccessor<2,2,hp::DoFHandler>::active_fe_index () const
 {
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
          dof_handler->levels[this->present_level]->active_fe_indices.size (),
@@ -1438,7 +1438,7 @@ DoFObjectAccessor<2,2,hpDoFHandler>::active_fe_index () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<2,3,hpDoFHandler>::active_fe_index () const
+DoFObjectAccessor<2,3,hp::DoFHandler>::active_fe_index () const
 {
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
          dof_handler->levels[this->present_level]->active_fe_indices.size (),
@@ -1452,7 +1452,7 @@ DoFObjectAccessor<2,3,hpDoFHandler>::active_fe_index () const
 template <>
 inline
 void
-DoFObjectAccessor<2,2,hpDoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<2,2,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
 {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
@@ -1470,7 +1470,7 @@ DoFObjectAccessor<2,2,hpDoFHandler>::set_active_fe_index (const unsigned int i)
 template <>
 inline
 void
-DoFObjectAccessor<2,3,hpDoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<2,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
 {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
@@ -1484,14 +1484,14 @@ DoFObjectAccessor<2,3,hpDoFHandler>::set_active_fe_index (const unsigned int i)
 }
 
 
-/*------------- Functions: DoFObjectAccessor<3,dim,hpDoFHandler> -------------*/
+/*------------- Functions: DoFObjectAccessor<3,dim,hp::DoFHandler> -------------*/
 
 template <>
 inline
 unsigned int
-DoFObjectAccessor<3,3,hpDoFHandler>::dof_index (const unsigned int i) const
+DoFObjectAccessor<3,3,hp::DoFHandler>::dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<3, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1512,10 +1512,10 @@ DoFObjectAccessor<3,3,hpDoFHandler>::dof_index (const unsigned int i) const
 template <>
 inline
 void
-DoFObjectAccessor<3, 3, hpDoFHandler>::set_dof_index (const unsigned int i,
+DoFObjectAccessor<3, 3, hp::DoFHandler>::set_dof_index (const unsigned int i,
                                                       const unsigned int index) const
 {
-  typedef DoFAccessor<3, hpDoFHandler> BaseClass;
+  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
     
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1537,7 +1537,7 @@ DoFObjectAccessor<3, 3, hpDoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 const FiniteElement<3> &
-DoFObjectAccessor<3,3,hpDoFHandler>::get_fe () const
+DoFObjectAccessor<3,3,hp::DoFHandler>::get_fe () const
 {
   return dof_handler->finite_elements->get_fe(active_fe_index ());
 }
@@ -1546,7 +1546,7 @@ DoFObjectAccessor<3,3,hpDoFHandler>::get_fe () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<3,3,hpDoFHandler>::active_fe_index () const
+DoFObjectAccessor<3,3,hp::DoFHandler>::active_fe_index () const
 {
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
          dof_handler->levels[this->present_level]->active_fe_indices.size (),
@@ -1561,7 +1561,7 @@ DoFObjectAccessor<3,3,hpDoFHandler>::active_fe_index () const
 template <>
 inline
 void
-DoFObjectAccessor<3,3,hpDoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<3,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
 {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (static_cast<std::vector<unsigned int>::size_type>(this->present_index) <
@@ -1628,19 +1628,19 @@ DoFCellAccessor<dim,DH>::child (const unsigned int i) const
 
 template <>
 inline
-TriaIterator<1, DoFObjectAccessor<0,1,hpDoFHandler> >
-DoFCellAccessor<1,hpDoFHandler>::face (const unsigned int) const
+TriaIterator<1, DoFObjectAccessor<0,1,hp::DoFHandler> >
+DoFCellAccessor<1,hp::DoFHandler>::face (const unsigned int) const
 {
   Assert (false, ExcImpossibleInDim(1));
-  return TriaIterator<1, DoFObjectAccessor<0,1, hpDoFHandler> >();
+  return TriaIterator<1, DoFObjectAccessor<0,1, hp::DoFHandler> >();
 }
 
 
 
 template <>
 inline
-TriaIterator<2, DoFObjectAccessor<1,2,hpDoFHandler> >
-DoFCellAccessor<2,hpDoFHandler>::face (const unsigned int i) const
+TriaIterator<2, DoFObjectAccessor<1,2,hp::DoFHandler> >
+DoFCellAccessor<2,hp::DoFHandler>::face (const unsigned int i) const
 {
   return this->line(i);
 }
@@ -1649,8 +1649,8 @@ DoFCellAccessor<2,hpDoFHandler>::face (const unsigned int i) const
 
 template <>
 inline
-TriaIterator<3, DoFObjectAccessor<2, 3, hpDoFHandler> >
-DoFCellAccessor<3,hpDoFHandler>::face (const unsigned int i) const
+TriaIterator<3, DoFObjectAccessor<2, 3, hp::DoFHandler> >
+DoFCellAccessor<3,hp::DoFHandler>::face (const unsigned int i) const
 {
   return this->quad(i);
 }
index 3a97a1f3dfe04a3b6fb1ecd9f6b33d22188b9b32..04279397d379547cb1f1de704c907aa4dac0a521 100644 (file)
@@ -30,7 +30,7 @@ template <int dim> class Function;
 template <int dim> class Point;
 template <int dim> class FiniteElement;
 template <int dim> class DoFHandler;
-template <int dim> class hpDoFHandler;
+template <int dim> class hp::DoFHandler;
 template <int dim> class MGDoFHandler;
 class ConstraintMatrix;
 template <template <int> class GridClass, int dim> class InterGridMap;
@@ -654,10 +654,10 @@ class DoFTools
 
                                     /**
                                      * Declaration of same function
-                                     * for hpDoFHandler
+                                     * for hp::DoFHandler
                                      */
     static void
-    make_hanging_node_constraints (const hpDoFHandler<1> &dof_handler,
+    make_hanging_node_constraints (const hp::DoFHandler<1> &dof_handler,
                                   ConstraintMatrix      &constraints);
 
                                     /**
@@ -665,7 +665,7 @@ class DoFTools
                                      * for different space dimension.
                                      */
     static void
-    make_hanging_node_constraints (const hpDoFHandler<2> &dof_handler,
+    make_hanging_node_constraints (const hp::DoFHandler<2> &dof_handler,
                                   ConstraintMatrix      &constraints);
 
                                     /**
@@ -673,7 +673,7 @@ class DoFTools
                                      * for different space dimension.
                                      */
     static void
-    make_hanging_node_constraints (const hpDoFHandler<3> &dof_handler,
+    make_hanging_node_constraints (const hp::DoFHandler<3> &dof_handler,
                                   ConstraintMatrix      &constraints);
 
                                     //@}
index a3c86cad0320ff25e4475570baaaacefc8067206..5f52df7dbaf7e26987721209aec7bff1e0321e80 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 2005 by the deal.II authors
+//    Copyright (C) 2005, 2006 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
 #include <map>
 #include <set>
 
-template <int> class hpDoFLevel;
+
+/**
+ * A namespace that holds all the classes that have to do with hp finite
+ * elements.
+ */
+namespace hp
+{
+
+  template <int> class DoFLevel;
 
 
 /**
@@ -34,972 +42,972 @@ template <int> class hpDoFLevel;
  * hp-FEM algorithms.
  *
  * @ingroup dofs
-*/
-template <int dim>
-class hpDoFHandler  :  public Subscriptor,
+ */
+  template <int dim>
+  class DoFHandler  :  public Subscriptor,
                        protected Triangulation<dim>::RefinementListener
-{
-    typedef internal::DoFIteratorSelector<hpDoFHandler<dim> > IteratorSelector;
-  public:
-    typedef typename IteratorSelector::raw_line_iterator raw_line_iterator;
-    typedef typename IteratorSelector::line_iterator line_iterator;
-    typedef typename IteratorSelector::active_line_iterator active_line_iterator;
-
-    typedef typename IteratorSelector::raw_quad_iterator raw_quad_iterator;
-    typedef typename IteratorSelector::quad_iterator quad_iterator;
-    typedef typename IteratorSelector::active_quad_iterator active_quad_iterator;
-
-    typedef typename IteratorSelector::raw_hex_iterator raw_hex_iterator;
-    typedef typename IteratorSelector::hex_iterator hex_iterator;
-    typedef typename IteratorSelector::active_hex_iterator active_hex_iterator;
-
-    typedef typename IteratorSelector::raw_cell_iterator raw_cell_iterator;
-    typedef typename IteratorSelector::cell_iterator cell_iterator;
-    typedef typename IteratorSelector::active_cell_iterator active_cell_iterator;
-
-    typedef typename IteratorSelector::raw_face_iterator raw_face_iterator;
-    typedef typename IteratorSelector::face_iterator face_iterator;
-    typedef typename IteratorSelector::active_face_iterator active_face_iterator;
-
-                                    /**
-                                     * Alias the @p FunctionMap type
-                                     * declared elsewhere.
-                                     */
-    typedef typename FunctionMap<dim>::type FunctionMap;
+  {
+      typedef internal::DoFIteratorSelector<DoFHandler<dim> > IteratorSelector;
+    public:
+      typedef typename IteratorSelector::raw_line_iterator raw_line_iterator;
+      typedef typename IteratorSelector::line_iterator line_iterator;
+      typedef typename IteratorSelector::active_line_iterator active_line_iterator;
+
+      typedef typename IteratorSelector::raw_quad_iterator raw_quad_iterator;
+      typedef typename IteratorSelector::quad_iterator quad_iterator;
+      typedef typename IteratorSelector::active_quad_iterator active_quad_iterator;
+
+      typedef typename IteratorSelector::raw_hex_iterator raw_hex_iterator;
+      typedef typename IteratorSelector::hex_iterator hex_iterator;
+      typedef typename IteratorSelector::active_hex_iterator active_hex_iterator;
+
+      typedef typename IteratorSelector::raw_cell_iterator raw_cell_iterator;
+      typedef typename IteratorSelector::cell_iterator cell_iterator;
+      typedef typename IteratorSelector::active_cell_iterator active_cell_iterator;
+
+      typedef typename IteratorSelector::raw_face_iterator raw_face_iterator;
+      typedef typename IteratorSelector::face_iterator face_iterator;
+      typedef typename IteratorSelector::active_face_iterator active_face_iterator;
+
+                                       /**
+                                        * Alias the @p FunctionMap type
+                                        * declared elsewhere.
+                                        */
+      typedef typename FunctionMap<dim>::type FunctionMap;
     
-                                    /**
-                                     * Make the dimension available
-                                     * in function templates.
-                                     */
-    static const unsigned int dimension = dim;
+                                       /**
+                                        * Make the dimension available
+                                        * in function templates.
+                                        */
+      static const unsigned int dimension = dim;
     
-                                    /**
-                                     * When the arrays holding the
-                                     * DoF indices are set up, but
-                                     * before they are filled with
-                                     * actual values, they are set to
-                                     * an invalid value, in order to
-                                     * monitor possible
-                                     * problems. This invalid value
-                                     * is the constant defined here.
-                                     *
-                                     * Please note that you should
-                                     * not rely on it having a
-                                     * certain value, but rather take
-                                     * its symbolic name.
-                                     */
-    static const unsigned int invalid_dof_index = static_cast<unsigned int>(-1);
+                                       /**
+                                        * When the arrays holding the
+                                        * DoF indices are set up, but
+                                        * before they are filled with
+                                        * actual values, they are set to
+                                        * an invalid value, in order to
+                                        * monitor possible
+                                        * problems. This invalid value
+                                        * is the constant defined here.
+                                        *
+                                        * Please note that you should
+                                        * not rely on it having a
+                                        * certain value, but rather take
+                                        * its symbolic name.
+                                        */
+      static const unsigned int invalid_dof_index = static_cast<unsigned int>(-1);
 
     
-                                    /**
-                                     * Constructor. Take @p tria as the
-                                     * triangulation to work on.
-                                     */
-    hpDoFHandler (const Triangulation<dim> &tria);
+                                       /**
+                                        * Constructor. Take @p tria as the
+                                        * triangulation to work on.
+                                        */
+      DoFHandler (const Triangulation<dim> &tria);
     
-                                    /**
-                                     * Destructor.
-                                     */
-    virtual ~hpDoFHandler ();
+                                       /**
+                                        * Destructor.
+                                        */
+      virtual ~DoFHandler ();
     
-                                    /**
-                                     * Go through the triangulation and
-                                     * distribute the degrees of freedoms
-                                     * needed for the given finite element
-                                     * according to the given distribution
-                                     * method.
-                                     *
-                                     * A pointer of the transferred
-                                     * finite element is
-                                     * stored. Therefore, the
-                                     * lifetime of the finite element
-                                     * object shall be longer than
-                                     * that of this object. If you
-                                     * don't want this behaviour, you
-                                     * may want to call the @p clear
-                                     * member function which also
-                                     * releases the lock of this
-                                     * object to the finite element.
-                                     */
-    virtual void distribute_dofs (const FECollection<dim> &fe);
-
-                                    /**
-                                     * Clear all data of this object and
-                                     * especially delete the lock this object
-                                     * has to the finite element used the last
-                                     * time when @p distribute_dofs was called.
-                                     */
-    virtual void clear ();
+                                       /**
+                                        * Go through the triangulation and
+                                        * distribute the degrees of freedoms
+                                        * needed for the given finite element
+                                        * according to the given distribution
+                                        * method.
+                                        *
+                                        * A pointer of the transferred
+                                        * finite element is
+                                        * stored. Therefore, the
+                                        * lifetime of the finite element
+                                        * object shall be longer than
+                                        * that of this object. If you
+                                        * don't want this behaviour, you
+                                        * may want to call the @p clear
+                                        * member function which also
+                                        * releases the lock of this
+                                        * object to the finite element.
+                                        */
+      virtual void distribute_dofs (const FECollection<dim> &fe);
+
+                                       /**
+                                        * Clear all data of this object and
+                                        * especially delete the lock this object
+                                        * has to the finite element used the last
+                                        * time when @p distribute_dofs was called.
+                                        */
+      virtual void clear ();
     
-                                    /**
-                                     * Actually do the renumbering based on
-                                     * a list of new dof numbers for all the
-                                     * dofs.
-                                     *
-                                     * @p new_numbers is an array of integers
-                                     * with size equal to the number of dofs
-                                     * on the present grid. It stores the new
-                                     * indices after renumbering in the
-                                     * order of the old indices.
-                                     *
-                                     * This function is called by the
-                                     * @p renumber_dofs function after computing
-                                     * the ordering of the degrees of freedom.
-                                     * However, you can call this function
-                                     * yourself, which is necessary if a user
-                                     * wants to implement an ordering scheme
-                                     * herself, for example downwind numbering.
-                                     */
-    void renumber_dofs (const std::vector<unsigned int> &new_numbers);
-
-                                    /**
-                                     * Return the maximum number of
-                                     * degrees of freedom a degree of freedom
-                                     * in the given triangulation with the
-                                     * given finite element may couple with.
-                                     * This is the maximum number of entries
-                                     * per line in the system matrix; this
-                                     * information can therefore be used upon
-                                     * construction of the SparsityPattern
-                                     * object.
-                                     *
-                                     * The returned number is not really the
-                                     * maximum number but an estimate based
-                                     * on the finite element and the maximum
-                                     * number of cells meeting at a vertex.
-                                     * The number holds for the constrained
-                                     * matrix also.
-                                     *
-                                     * The determination of the number of
-                                     * couplings can be done by simple
-                                     * picture drawing. An example can be
-                                     * found in the implementation of this
-                                     * function.
-                                     */
-    unsigned int max_couplings_between_dofs () const;
-
-                                    /**
-                                     * Return the number of degrees of freedom
-                                     * located on the boundary another dof on
-                                     * the boundary can couple with.
-                                     *
-                                     * The number is the same as for
-                                     * @p max_coupling_between_dofs in one
-                                     * dimension less.
-                                     */
-    unsigned int max_couplings_between_boundary_dofs () const;
-
-                                    /**
-                                     *  @name Cell iterator functions
-                                     */
-                                    /*@{*/
-                                    /**
-                                     *  Iterator to the first cell, used
-                                     *  or not, on level @p level. If a level
-                                     *  has no cells, a past-the-end iterator
-                                     *  is returned.
-                                     *
-                                     *  This function calls @p begin_raw_line
-                                     *  in 1D and @p begin_raw_quad in 2D.
-                                     */
-    raw_cell_iterator    begin_raw   (const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator to the first used cell
-                                     *  on level @p level.
-                                     *
-                                     *  This function calls @p begin_line
-                                     *  in 1D and @p begin_quad in 2D.
-                                     */
-    cell_iterator        begin       (const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator to the first active
-                                     *  cell on level @p level.
-                                     *
-                                     *  This function calls @p begin_active_line
-                                     *  in 1D and @p begin_active_quad in 2D.
-                                     */
-    active_cell_iterator begin_active(const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator past the end; this
-                                     *  iterator serves for comparisons of
-                                     *  iterators with past-the-end or
-                                     *  before-the-beginning states.
-                                     *
-                                     *  This function calls @p end_line
-                                     *  in 1D and @p end_quad in 2D.
-                                     */
-    raw_cell_iterator    end () const;
-
-                                    /**
-                                     * Return an iterator which is the first
-                                     * iterator not on level. If @p level is
-                                     * the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    cell_iterator        end (const unsigned int level) const;
+                                       /**
+                                        * Actually do the renumbering based on
+                                        * a list of new dof numbers for all the
+                                        * dofs.
+                                        *
+                                        * @p new_numbers is an array of integers
+                                        * with size equal to the number of dofs
+                                        * on the present grid. It stores the new
+                                        * indices after renumbering in the
+                                        * order of the old indices.
+                                        *
+                                        * This function is called by the
+                                        * @p renumber_dofs function after computing
+                                        * the ordering of the degrees of freedom.
+                                        * However, you can call this function
+                                        * yourself, which is necessary if a user
+                                        * wants to implement an ordering scheme
+                                        * herself, for example downwind numbering.
+                                        */
+      void renumber_dofs (const std::vector<unsigned int> &new_numbers);
+
+                                       /**
+                                        * Return the maximum number of
+                                        * degrees of freedom a degree of freedom
+                                        * in the given triangulation with the
+                                        * given finite element may couple with.
+                                        * This is the maximum number of entries
+                                        * per line in the system matrix; this
+                                        * information can therefore be used upon
+                                        * construction of the SparsityPattern
+                                        * object.
+                                        *
+                                        * The returned number is not really the
+                                        * maximum number but an estimate based
+                                        * on the finite element and the maximum
+                                        * number of cells meeting at a vertex.
+                                        * The number holds for the constrained
+                                        * matrix also.
+                                        *
+                                        * The determination of the number of
+                                        * couplings can be done by simple
+                                        * picture drawing. An example can be
+                                        * found in the implementation of this
+                                        * function.
+                                        */
+      unsigned int max_couplings_between_dofs () const;
+
+                                       /**
+                                        * Return the number of degrees of freedom
+                                        * located on the boundary another dof on
+                                        * the boundary can couple with.
+                                        *
+                                        * The number is the same as for
+                                        * @p max_coupling_between_dofs in one
+                                        * dimension less.
+                                        */
+      unsigned int max_couplings_between_boundary_dofs () const;
+
+                                       /**
+                                        *  @name Cell iterator functions
+                                        */
+                                       /*@{*/
+                                       /**
+                                        *  Iterator to the first cell, used
+                                        *  or not, on level @p level. If a level
+                                        *  has no cells, a past-the-end iterator
+                                        *  is returned.
+                                        *
+                                        *  This function calls @p begin_raw_line
+                                        *  in 1D and @p begin_raw_quad in 2D.
+                                        */
+      raw_cell_iterator    begin_raw   (const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator to the first used cell
+                                        *  on level @p level.
+                                        *
+                                        *  This function calls @p begin_line
+                                        *  in 1D and @p begin_quad in 2D.
+                                        */
+      cell_iterator        begin       (const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator to the first active
+                                        *  cell on level @p level.
+                                        *
+                                        *  This function calls @p begin_active_line
+                                        *  in 1D and @p begin_active_quad in 2D.
+                                        */
+      active_cell_iterator begin_active(const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator past the end; this
+                                        *  iterator serves for comparisons of
+                                        *  iterators with past-the-end or
+                                        *  before-the-beginning states.
+                                        *
+                                        *  This function calls @p end_line
+                                        *  in 1D and @p end_quad in 2D.
+                                        */
+      raw_cell_iterator    end () const;
+
+                                       /**
+                                        * Return an iterator which is the first
+                                        * iterator not on level. If @p level is
+                                        * the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      cell_iterator        end (const unsigned int level) const;
     
-                                    /**
-                                     * Return a raw iterator which is the first
-                                     * iterator not on level. If @p level is
-                                     * the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    raw_cell_iterator    end_raw (const unsigned int level) const;
-
-                                    /**
-                                     * Return an active iterator which is the
-                                     * first iterator not on level. If @p level
-                                     * is the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    active_cell_iterator end_active (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the
-                                     *  last cell, used or not.
-                                     *
-                                     *  This function calls @p last_raw_line
-                                     *  in 1D and @p last_raw_quad in 2D.
-                                     */
-    raw_cell_iterator    last_raw () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  cell of the level @p level, used or not.
-                                     *
-                                     *  This function calls @p last_raw_line
-                                     *  in 1D and @p last_raw_quad in 2D.
-                                     */
-    raw_cell_iterator    last_raw (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  used cell.
-                                     *
-                                     *  This function calls @p last_line
-                                     *  in 1D and @p last_quad in 2D.
-                                     */
-    cell_iterator        last () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  used cell on level @p level.
-                                     *
-                                     *  This function calls @p last_line
-                                     *  in 1D and @p last_quad in 2D.
-                                     */
-    cell_iterator        last (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  active cell.
-                                     *
-                                     *  This function calls @p last_active_line
-                                     *  in 1D and @p last_active_quad in 2D.
-                                     */
-    active_cell_iterator last_active () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  active cell on level @p level.
-                                     *
-                                     *  This function calls @p last_active_line
-                                     *  in 1D and @p last_active_quad in 2D.
-                                     */
-    active_cell_iterator last_active (const unsigned int level) const;
-                                    //@}
-
-                                    /*---------------------------------------*/
-
-                                    /**
-                                     *  @name Face iterator functions
-                                     */
-                                    /*@{*/
-                                    /**
-                                     *  Iterator to the first face, used
-                                     *  or not, on level @p level. If a level
-                                     *  has no faces, a past-the-end iterator
-                                     *  is returned.
-                                     *
-                                     *  This function calls @p begin_raw_line
-                                     *  in 2D and @p begin_raw_quad in 3D.
-                                     */
-    raw_face_iterator    begin_raw_face   (const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator to the first used face
-                                     *  on level @p level.
-                                     *
-                                     *  This function calls @p begin_line
-                                     *  in 2D and @p begin_quad in 3D.
-                                     */
-    face_iterator        begin_face       (const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator to the first active
-                                     *  face on level @p level.
-                                     *
-                                     *  This function calls @p begin_active_line
-                                     *  in 2D and @p begin_active_quad in 3D.
-                                     */
-    active_face_iterator begin_active_face(const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator past the end; this
-                                     *  iterator serves for comparisons of
-                                     *  iterators with past-the-end or
-                                     *  before-the-beginning states.
-                                     *
-                                     *  This function calls @p end_line
-                                     *  in 2D and @p end_quad in 3D.
-                                     */
-    raw_face_iterator    end_face () const;
-
-                                    /**
-                                     * Return an iterator which is the first
-                                     * iterator not on level. If @p level is
-                                     * the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    face_iterator        end_face (const unsigned int level) const;
+                                       /**
+                                        * Return a raw iterator which is the first
+                                        * iterator not on level. If @p level is
+                                        * the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      raw_cell_iterator    end_raw (const unsigned int level) const;
+
+                                       /**
+                                        * Return an active iterator which is the
+                                        * first iterator not on level. If @p level
+                                        * is the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      active_cell_iterator end_active (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the
+                                        *  last cell, used or not.
+                                        *
+                                        *  This function calls @p last_raw_line
+                                        *  in 1D and @p last_raw_quad in 2D.
+                                        */
+      raw_cell_iterator    last_raw () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  cell of the level @p level, used or not.
+                                        *
+                                        *  This function calls @p last_raw_line
+                                        *  in 1D and @p last_raw_quad in 2D.
+                                        */
+      raw_cell_iterator    last_raw (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  used cell.
+                                        *
+                                        *  This function calls @p last_line
+                                        *  in 1D and @p last_quad in 2D.
+                                        */
+      cell_iterator        last () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  used cell on level @p level.
+                                        *
+                                        *  This function calls @p last_line
+                                        *  in 1D and @p last_quad in 2D.
+                                        */
+      cell_iterator        last (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  active cell.
+                                        *
+                                        *  This function calls @p last_active_line
+                                        *  in 1D and @p last_active_quad in 2D.
+                                        */
+      active_cell_iterator last_active () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  active cell on level @p level.
+                                        *
+                                        *  This function calls @p last_active_line
+                                        *  in 1D and @p last_active_quad in 2D.
+                                        */
+      active_cell_iterator last_active (const unsigned int level) const;
+                                       //@}
+
+                                       /*---------------------------------------*/
+
+                                       /**
+                                        *  @name Face iterator functions
+                                        */
+                                       /*@{*/
+                                       /**
+                                        *  Iterator to the first face, used
+                                        *  or not, on level @p level. If a level
+                                        *  has no faces, a past-the-end iterator
+                                        *  is returned.
+                                        *
+                                        *  This function calls @p begin_raw_line
+                                        *  in 2D and @p begin_raw_quad in 3D.
+                                        */
+      raw_face_iterator    begin_raw_face   (const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator to the first used face
+                                        *  on level @p level.
+                                        *
+                                        *  This function calls @p begin_line
+                                        *  in 2D and @p begin_quad in 3D.
+                                        */
+      face_iterator        begin_face       (const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator to the first active
+                                        *  face on level @p level.
+                                        *
+                                        *  This function calls @p begin_active_line
+                                        *  in 2D and @p begin_active_quad in 3D.
+                                        */
+      active_face_iterator begin_active_face(const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator past the end; this
+                                        *  iterator serves for comparisons of
+                                        *  iterators with past-the-end or
+                                        *  before-the-beginning states.
+                                        *
+                                        *  This function calls @p end_line
+                                        *  in 2D and @p end_quad in 3D.
+                                        */
+      raw_face_iterator    end_face () const;
+
+                                       /**
+                                        * Return an iterator which is the first
+                                        * iterator not on level. If @p level is
+                                        * the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      face_iterator        end_face (const unsigned int level) const;
     
-                                    /**
-                                     * Return a raw iterator which is the first
-                                     * iterator not on level. If @p level is
-                                     * the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    raw_face_iterator    end_raw_face (const unsigned int level) const;
-
-                                    /**
-                                     * Return an active iterator which is the
-                                     * first iterator not on level. If @p level
-                                     * is the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    active_face_iterator end_active_face (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the
-                                     *  last face, used or not.
-                                     *
-                                     *  This function calls @p last_raw_line
-                                     *  in 2D and @p last_raw_quad in 3D.
-                                     */
-    raw_face_iterator    last_raw_face () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  face of the level @p level, used or not.
-                                     *
-                                     *  This function calls @p last_raw_line
-                                     *  in 2D and @p last_raw_quad in 3D.
-                                     */
-    raw_face_iterator    last_raw_face (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  used face.
-                                     *
-                                     *  This function calls @p last_line
-                                     *  in 2D and @p last_quad in 3D.
-                                     */
-    face_iterator        last_face () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  used face on level @p level.
-                                     *
-                                     *  This function calls @p last_line
-                                     *  in 2D and @p last_quad in 3D.
-                                     */
-    face_iterator        last_face (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  active face.
-                                     *
-                                     *  This function calls @p last_active_line
-                                     *  in 2D and @p last_active_quad in 3D.
-                                     */
-    active_face_iterator last_active_face () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  active face on level @p level.
-                                     *
-                                     *  This function calls @p last_active_line
-                                     *  in 2D and @p last_active_quad in 3D.
-                                     */
-    active_face_iterator last_active_face (const unsigned int level) const;
-                                    //@}
-
-
-                                    /*---------------------------------------*/
-
-                                    /**
-                                     *  @name Line iterator functions
-                                     */
-                                    /*@{*/
-                                    /**
-                                     *  Iterator to the first line, used
-                                     *  or not, on level @p level. If a level
-                                     *  has no lines, a past-the-end iterator
-                                     *  is returned.
-                                     */
-    raw_line_iterator    begin_raw_line   (const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator to the first used line
-                                     *  on level @p level.
-                                     */
-    line_iterator        begin_line       (const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator to the first active
-                                     *  line on level @p level.
-                                     */
-    active_line_iterator begin_active_line(const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator past the end; this
-                                     *  iterator serves for comparisons of
-                                     *  iterators with past-the-end or
-                                     *  before-the-beginning states.
-                                     */
-    raw_line_iterator    end_line () const;
-
-                                    /**
-                                     * Return an iterator which is the first
-                                     * iterator not on level. If @p level is
-                                     * the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    line_iterator        end_line (const unsigned int level) const;
+                                       /**
+                                        * Return a raw iterator which is the first
+                                        * iterator not on level. If @p level is
+                                        * the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      raw_face_iterator    end_raw_face (const unsigned int level) const;
+
+                                       /**
+                                        * Return an active iterator which is the
+                                        * first iterator not on level. If @p level
+                                        * is the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      active_face_iterator end_active_face (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the
+                                        *  last face, used or not.
+                                        *
+                                        *  This function calls @p last_raw_line
+                                        *  in 2D and @p last_raw_quad in 3D.
+                                        */
+      raw_face_iterator    last_raw_face () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  face of the level @p level, used or not.
+                                        *
+                                        *  This function calls @p last_raw_line
+                                        *  in 2D and @p last_raw_quad in 3D.
+                                        */
+      raw_face_iterator    last_raw_face (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  used face.
+                                        *
+                                        *  This function calls @p last_line
+                                        *  in 2D and @p last_quad in 3D.
+                                        */
+      face_iterator        last_face () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  used face on level @p level.
+                                        *
+                                        *  This function calls @p last_line
+                                        *  in 2D and @p last_quad in 3D.
+                                        */
+      face_iterator        last_face (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  active face.
+                                        *
+                                        *  This function calls @p last_active_line
+                                        *  in 2D and @p last_active_quad in 3D.
+                                        */
+      active_face_iterator last_active_face () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  active face on level @p level.
+                                        *
+                                        *  This function calls @p last_active_line
+                                        *  in 2D and @p last_active_quad in 3D.
+                                        */
+      active_face_iterator last_active_face (const unsigned int level) const;
+                                       //@}
+
+
+                                       /*---------------------------------------*/
+
+                                       /**
+                                        *  @name Line iterator functions
+                                        */
+                                       /*@{*/
+                                       /**
+                                        *  Iterator to the first line, used
+                                        *  or not, on level @p level. If a level
+                                        *  has no lines, a past-the-end iterator
+                                        *  is returned.
+                                        */
+      raw_line_iterator    begin_raw_line   (const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator to the first used line
+                                        *  on level @p level.
+                                        */
+      line_iterator        begin_line       (const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator to the first active
+                                        *  line on level @p level.
+                                        */
+      active_line_iterator begin_active_line(const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator past the end; this
+                                        *  iterator serves for comparisons of
+                                        *  iterators with past-the-end or
+                                        *  before-the-beginning states.
+                                        */
+      raw_line_iterator    end_line () const;
+
+                                       /**
+                                        * Return an iterator which is the first
+                                        * iterator not on level. If @p level is
+                                        * the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      line_iterator        end_line (const unsigned int level) const;
     
-                                    /**
-                                     * Return a raw iterator which is the first
-                                     * iterator not on level. If @p level is
-                                     * the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    raw_line_iterator    end_raw_line (const unsigned int level) const;
-
-                                    /**
-                                     * Return an active iterator which is the
-                                     * first iterator not on level. If @p level
-                                     * is the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    active_line_iterator end_active_line (const unsigned int level) const;
-
-
-                                    /**
-                                     *  Return an iterator pointing to the
-                                     *  last line, used or not.
-                                     */
-    raw_line_iterator    last_raw_line () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  line of the level @p level, used or not.
-
-                                     */
-    raw_line_iterator    last_raw_line (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  used line.
-                                     */
-    line_iterator        last_line () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  used line on level @p level.
-                                     */
-    line_iterator        last_line (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  active line.
-                                     */
-    active_line_iterator last_active_line () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  active line on level @p level.
-                                     */
-    active_line_iterator last_active_line (const unsigned int level) const;
-                                    /*@}*/       
-
-                                    /*---------------------------------------*/
-
-                                    /**
-                                     *  @name Quad iterator functions*/
-                                    /*@{
-                                     */
-                                    /**
-                                     *  Iterator to the first quad, used
-                                     *  or not, on level @p level. If a level
-                                     *  has no quads, a past-the-end iterator
-                                     *  is returned.
-                                     */
-    raw_quad_iterator    begin_raw_quad   (const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator to the first used quad
-                                     *  on level @p level.
-                                     */
-    quad_iterator        begin_quad       (const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator to the first active
-                                     *  quad on level @p level.
-                                     */
-    active_quad_iterator begin_active_quad(const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator past the end; this
-                                     *  iterator serves for comparisons of
-                                     *  iterators with past-the-end or
-                                     *  before-the-beginning states.
-                                     */
-    raw_quad_iterator    end_quad () const;
-
-                                    /**
-                                     * Return an iterator which is the first
-                                     * iterator not on level. If @p level is
-                                     * the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    quad_iterator        end_quad (const unsigned int level) const;
+                                       /**
+                                        * Return a raw iterator which is the first
+                                        * iterator not on level. If @p level is
+                                        * the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      raw_line_iterator    end_raw_line (const unsigned int level) const;
+
+                                       /**
+                                        * Return an active iterator which is the
+                                        * first iterator not on level. If @p level
+                                        * is the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      active_line_iterator end_active_line (const unsigned int level) const;
+
+
+                                       /**
+                                        *  Return an iterator pointing to the
+                                        *  last line, used or not.
+                                        */
+      raw_line_iterator    last_raw_line () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  line of the level @p level, used or not.
+
+                                       */
+      raw_line_iterator    last_raw_line (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  used line.
+                                        */
+      line_iterator        last_line () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  used line on level @p level.
+                                        */
+      line_iterator        last_line (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  active line.
+                                        */
+      active_line_iterator last_active_line () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  active line on level @p level.
+                                        */
+      active_line_iterator last_active_line (const unsigned int level) const;
+                                       /*@}*/    
+
+                                       /*---------------------------------------*/
+
+                                       /**
+                                        *  @name Quad iterator functions*/
+                                       /*@{
+                                        */
+                                       /**
+                                        *  Iterator to the first quad, used
+                                        *  or not, on level @p level. If a level
+                                        *  has no quads, a past-the-end iterator
+                                        *  is returned.
+                                        */
+      raw_quad_iterator    begin_raw_quad   (const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator to the first used quad
+                                        *  on level @p level.
+                                        */
+      quad_iterator        begin_quad       (const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator to the first active
+                                        *  quad on level @p level.
+                                        */
+      active_quad_iterator begin_active_quad(const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator past the end; this
+                                        *  iterator serves for comparisons of
+                                        *  iterators with past-the-end or
+                                        *  before-the-beginning states.
+                                        */
+      raw_quad_iterator    end_quad () const;
+
+                                       /**
+                                        * Return an iterator which is the first
+                                        * iterator not on level. If @p level is
+                                        * the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      quad_iterator        end_quad (const unsigned int level) const;
     
-                                    /**
-                                     * Return a raw iterator which is the first
-                                     * iterator not on level. If @p level is
-                                     * the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    raw_quad_iterator    end_raw_quad (const unsigned int level) const;
-
-                                    /**
-                                     * Return an active iterator which is the
-                                     * first iterator not on level. If @p level
-                                     * is the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    active_quad_iterator end_active_quad (const unsigned int level) const;
-
-
-                                    /**
-                                     *  Return an iterator pointing to the
-                                     *  last quad, used or not.
-                                     */
-    raw_quad_iterator    last_raw_quad () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  quad of the level @p level, used or not.
-
-                                     */
-    raw_quad_iterator    last_raw_quad (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  used quad.
-                                     */
-    quad_iterator        last_quad () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  used quad on level @p level.
-                                     */
-    quad_iterator        last_quad (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  active quad.
-                                     */
-    active_quad_iterator last_active_quad () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  active quad on level @p level.
-                                     */
-    active_quad_iterator last_active_quad (const unsigned int level) const;
-                                    /*@}*/
-
-                                    /*---------------------------------------*/
-
-                                    /**
-                                     *  @name Hex iterator functions*/
-                                    /*@{
-                                     */
-                                    /**
-                                     *  Iterator to the first hex, used
-                                     *  or not, on level @p level. If a level
-                                     *  has no hexs, a past-the-end iterator
-                                     *  is returned.
-                                     */
-    raw_hex_iterator
-    begin_raw_hex   (const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator to the first used hex
-                                     *  on level @p level.
-                                     */
-    hex_iterator
-    begin_hex       (const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator to the first active
-                                     *  hex on level @p level.
-                                     */
-    active_hex_iterator
-    begin_active_hex(const unsigned int level = 0) const;
-
-                                    /**
-                                     *  Iterator past the end; this
-                                     *  iterator serves for comparisons of
-                                     *  iterators with past-the-end or
-                                     *  before-the-beginning states.
-                                     */
-    raw_hex_iterator
-    end_hex () const;
-
-                                    /**
-                                     * Return an iterator which is the first
-                                     * iterator not on level. If @p level is
-                                     * the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    hex_iterator        end_hex (const unsigned int level) const;
+                                       /**
+                                        * Return a raw iterator which is the first
+                                        * iterator not on level. If @p level is
+                                        * the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      raw_quad_iterator    end_raw_quad (const unsigned int level) const;
+
+                                       /**
+                                        * Return an active iterator which is the
+                                        * first iterator not on level. If @p level
+                                        * is the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      active_quad_iterator end_active_quad (const unsigned int level) const;
+
+
+                                       /**
+                                        *  Return an iterator pointing to the
+                                        *  last quad, used or not.
+                                        */
+      raw_quad_iterator    last_raw_quad () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  quad of the level @p level, used or not.
+
+                                       */
+      raw_quad_iterator    last_raw_quad (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  used quad.
+                                        */
+      quad_iterator        last_quad () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  used quad on level @p level.
+                                        */
+      quad_iterator        last_quad (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  active quad.
+                                        */
+      active_quad_iterator last_active_quad () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  active quad on level @p level.
+                                        */
+      active_quad_iterator last_active_quad (const unsigned int level) const;
+                                       /*@}*/
+
+                                       /*---------------------------------------*/
+
+                                       /**
+                                        *  @name Hex iterator functions*/
+                                       /*@{
+                                        */
+                                       /**
+                                        *  Iterator to the first hex, used
+                                        *  or not, on level @p level. If a level
+                                        *  has no hexs, a past-the-end iterator
+                                        *  is returned.
+                                        */
+      raw_hex_iterator
+      begin_raw_hex   (const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator to the first used hex
+                                        *  on level @p level.
+                                        */
+      hex_iterator
+      begin_hex       (const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator to the first active
+                                        *  hex on level @p level.
+                                        */
+      active_hex_iterator
+      begin_active_hex(const unsigned int level = 0) const;
+
+                                       /**
+                                        *  Iterator past the end; this
+                                        *  iterator serves for comparisons of
+                                        *  iterators with past-the-end or
+                                        *  before-the-beginning states.
+                                        */
+      raw_hex_iterator
+      end_hex () const;
+
+                                       /**
+                                        * Return an iterator which is the first
+                                        * iterator not on level. If @p level is
+                                        * the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      hex_iterator        end_hex (const unsigned int level) const;
     
-                                    /**
-                                     * Return a raw iterator which is the first
-                                     * iterator not on level. If @p level is
-                                     * the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    raw_hex_iterator    end_raw_hex (const unsigned int level) const;
-
-                                    /**
-                                     * Return an active iterator which is the
-                                     * first iterator not on level. If @p level
-                                     * is the last level, then this returns
-                                     * <tt>end()</tt>.
-                                     */
-    active_hex_iterator end_active_hex (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the
-                                     *  last hex, used or not.
-                                     */
-    raw_hex_iterator
-    last_raw_hex () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  hex of the level @p level, used or not.
-
-                                     */
-    raw_hex_iterator
-    last_raw_hex (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  used hex.
-                                     */
-    hex_iterator
-    last_hex () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  used hex on level @p level.
-                                     */
-    hex_iterator
-    last_hex (const unsigned int level) const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  active hex.
-                                     */
-    active_hex_iterator
-    last_active_hex () const;
-
-                                    /**
-                                     *  Return an iterator pointing to the last
-                                     *  active hex on level @p level.
-                                     */
-    active_hex_iterator
-    last_active_hex (const unsigned int level) const;
-                                    /*@}*/
-
-                                    /*---------------------------------------*/
-
-
-                                    /**
-                                     * Return number of degrees of freedom.
-                                     * Included in this number are those
-                                     * DoFs which are constrained by
-                                     * hanging nodes.
-                                     */
-    unsigned int n_dofs () const;
-
-                                    /**
-                                     * Return the number of degrees of freedom
-                                     * located on the boundary.
-                                     */
-    unsigned int n_boundary_dofs () const;
-
-                                    /**
-                                     * Return the number of degrees
-                                     * of freedom located on those
-                                     * parts of the boundary which
-                                     * have a boundary indicator
-                                     * listed in the given set. The
-                                     * reason that a @p map rather
-                                     * than a @p set is used is the
-                                     * same as descibed in the
-                                     * section on the
-                                     * @p make_boundary_sparsity_pattern
-                                     * function.
-                                     */
-    unsigned int
-    n_boundary_dofs (const FunctionMap &boundary_indicators) const;
-
-                                    /**
-                                     * Same function, but with
-                                     * different data type of the
-                                     * argument, which is here simply
-                                     * a list of the boundary
-                                     * indicators under
-                                     * consideration.
-                                     */
-    unsigned int
-    n_boundary_dofs (const std::set<unsigned char> &boundary_indicators) const;
-
-                                    /**
-                                     * Return a constant reference to
-                                     * the set of finite element
-                                     * objects that are used by this
-                                     * @p hpDoFHandler.
-                                     */
-    const FECollection<dim> & get_fe () const;
-
-                                    /**
-                                     * Return a constant reference to the
-                                     * triangulation underlying this object.
-                                     */
-    const Triangulation<dim> & get_tria () const;
+                                       /**
+                                        * Return a raw iterator which is the first
+                                        * iterator not on level. If @p level is
+                                        * the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      raw_hex_iterator    end_raw_hex (const unsigned int level) const;
+
+                                       /**
+                                        * Return an active iterator which is the
+                                        * first iterator not on level. If @p level
+                                        * is the last level, then this returns
+                                        * <tt>end()</tt>.
+                                        */
+      active_hex_iterator end_active_hex (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the
+                                        *  last hex, used or not.
+                                        */
+      raw_hex_iterator
+      last_raw_hex () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  hex of the level @p level, used or not.
+
+                                       */
+      raw_hex_iterator
+      last_raw_hex (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  used hex.
+                                        */
+      hex_iterator
+      last_hex () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  used hex on level @p level.
+                                        */
+      hex_iterator
+      last_hex (const unsigned int level) const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  active hex.
+                                        */
+      active_hex_iterator
+      last_active_hex () const;
+
+                                       /**
+                                        *  Return an iterator pointing to the last
+                                        *  active hex on level @p level.
+                                        */
+      active_hex_iterator
+      last_active_hex (const unsigned int level) const;
+                                       /*@}*/
+
+                                       /*---------------------------------------*/
+
+
+                                       /**
+                                        * Return number of degrees of freedom.
+                                        * Included in this number are those
+                                        * DoFs which are constrained by
+                                        * hanging nodes.
+                                        */
+      unsigned int n_dofs () const;
+
+                                       /**
+                                        * Return the number of degrees of freedom
+                                        * located on the boundary.
+                                        */
+      unsigned int n_boundary_dofs () const;
+
+                                       /**
+                                        * Return the number of degrees
+                                        * of freedom located on those
+                                        * parts of the boundary which
+                                        * have a boundary indicator
+                                        * listed in the given set. The
+                                        * reason that a @p map rather
+                                        * than a @p set is used is the
+                                        * same as descibed in the
+                                        * section on the
+                                        * @p make_boundary_sparsity_pattern
+                                        * function.
+                                        */
+      unsigned int
+      n_boundary_dofs (const FunctionMap &boundary_indicators) const;
+
+                                       /**
+                                        * Same function, but with
+                                        * different data type of the
+                                        * argument, which is here simply
+                                        * a list of the boundary
+                                        * indicators under
+                                        * consideration.
+                                        */
+      unsigned int
+      n_boundary_dofs (const std::set<unsigned char> &boundary_indicators) const;
+
+                                       /**
+                                        * Return a constant reference to
+                                        * the set of finite element
+                                        * objects that are used by this
+                                        * @p DoFHandler.
+                                        */
+      const FECollection<dim> & get_fe () const;
+
+                                       /**
+                                        * Return a constant reference to the
+                                        * triangulation underlying this object.
+                                        */
+      const Triangulation<dim> & get_tria () const;
     
-                                    /**
-                                     * Determine an estimate for the
-                                     * memory consumption (in bytes)
-                                     * of this object.
-                                     *
-                                     * This function is made virtual,
-                                     * since a dof handler object
-                                     * might be accessed through a
-                                     * pointers to thisr base class,
-                                     * although the actual object
-                                     * might be a derived class.
-                                     */
-    virtual unsigned int memory_consumption () const;
-
-                                    /**
-                                     * Exception
-                                     */
-    DeclException0 (ExcInvalidTriangulation);
-                                    /**
-                                     * Exception
-                                     */
-    DeclException0 (ExcNoFESelected);
-                                    /**
-                                     * Exception
-                                     */
-    DeclException0 (ExcRenumberingIncomplete);
-                                    /**
-                                     * Exception
-                                     */
-    DeclException0 (ExcGridsDoNotMatch);
-                                    /**
-                                     * Exception
-                                     */
-    DeclException0 (ExcInvalidBoundaryIndicator);
-                                    /**
-                                     * Exception
-                                     */
-    DeclException1 (ExcMatrixHasWrongSize,
-                   int,
-                   << "The matrix has the wrong dimension " << arg1);
-                                    /**
-                                     *  Exception
-                                     */
-    DeclException0 (ExcFunctionNotUseful);
-                                    /**
-                                     * Exception
-                                     */
-    DeclException1 (ExcNewNumbersNotConsecutive,
-                   int,
-                   << "The given list of new dof indices is not consecutive: "
-                   << "the index " << arg1 << " does not exist.");
-
-  protected:
+                                       /**
+                                        * Determine an estimate for the
+                                        * memory consumption (in bytes)
+                                        * of this object.
+                                        *
+                                        * This function is made virtual,
+                                        * since a dof handler object
+                                        * might be accessed through a
+                                        * pointers to thisr base class,
+                                        * although the actual object
+                                        * might be a derived class.
+                                        */
+      virtual unsigned int memory_consumption () const;
+
+                                       /**
+                                        * Exception
+                                        */
+      DeclException0 (ExcInvalidTriangulation);
+                                       /**
+                                        * Exception
+                                        */
+      DeclException0 (ExcNoFESelected);
+                                       /**
+                                        * Exception
+                                        */
+      DeclException0 (ExcRenumberingIncomplete);
+                                       /**
+                                        * Exception
+                                        */
+      DeclException0 (ExcGridsDoNotMatch);
+                                       /**
+                                        * Exception
+                                        */
+      DeclException0 (ExcInvalidBoundaryIndicator);
+                                       /**
+                                        * Exception
+                                        */
+      DeclException1 (ExcMatrixHasWrongSize,
+                      int,
+                      << "The matrix has the wrong dimension " << arg1);
+                                       /**
+                                        *  Exception
+                                        */
+      DeclException0 (ExcFunctionNotUseful);
+                                       /**
+                                        * Exception
+                                        */
+      DeclException1 (ExcNewNumbersNotConsecutive,
+                      int,
+                      << "The given list of new dof indices is not consecutive: "
+                      << "the index " << arg1 << " does not exist.");
+
+    protected:
     
-                                    /**
-                                     * Address of the triangulation to
-                                     * work on.
-                                     */
-    SmartPointer<const Triangulation<dim> > tria;
-
-                                    /**
-                                     * Store a pointer to the finite
-                                     * element set given latest for
-                                     * the distribution of dofs. In
-                                     * order to avoid destruction of
-                                     * the object before the lifetime
-                                     * of the DoF handler, we
-                                     * subscribe to the finite
-                                     * element object. To unlock the
-                                     * FE before the end of the
-                                     * lifetime of this DoF handler,
-                                     * use the <tt>clear()</tt> function
-                                     * (this clears all data of this
-                                     * object as well, though).
-                                     */
-    SmartPointer<const FECollection<dim> > finite_elements;
-
-  private:
-
-                                    /**
-                                     * Copy constructor. I can see no reason
-                                     * why someone might want to use it, so
-                                     * I don't provide it. Since this class
-                                     * has pointer members, making it private
-                                     * prevents the compiler to provide it's
-                                     * own, incorrect one if anyone chose to
-                                     * copy such an object.
-                                     */
-    hpDoFHandler (const hpDoFHandler &);
-
-                                    /**
-                                     * Copy operator. I can see no reason
-                                     * why someone might want to use it, so
-                                     * I don't provide it. Since this class
-                                     * has pointer members, making it private
-                                     * prevents the compiler to provide it's
-                                     * own, incorrect one if anyone chose to
-                                     * copy such an object.
-                                     */
-    hpDoFHandler & operator = (const hpDoFHandler &);
-
-                                    /**
-                                     * Reserve enough space in the 
-                                     * <tt>levels[]</tt> objects to store the
-                                     * numbers of the degrees of freedom
-                                     * needed for the given element. The
-                                     * given element is that one which
-                                     * was selected when calling
-                                     * @p distribute_dofs the last time.
-                                     */
-    void reserve_space ();
-
-                                    /**
-                                     * Free all used memory.
-                                     */
-    void clear_space ();
+                                       /**
+                                        * Address of the triangulation to
+                                        * work on.
+                                        */
+      SmartPointer<const Triangulation<dim> > tria;
+
+                                       /**
+                                        * Store a pointer to the finite
+                                        * element set given latest for
+                                        * the distribution of dofs. In
+                                        * order to avoid destruction of
+                                        * the object before the lifetime
+                                        * of the DoF handler, we
+                                        * subscribe to the finite
+                                        * element object. To unlock the
+                                        * FE before the end of the
+                                        * lifetime of this DoF handler,
+                                        * use the <tt>clear()</tt> function
+                                        * (this clears all data of this
+                                        * object as well, though).
+                                        */
+      SmartPointer<const FECollection<dim> > finite_elements;
+
+    private:
+
+                                       /**
+                                        * Copy constructor. I can see no reason
+                                        * why someone might want to use it, so
+                                        * I don't provide it. Since this class
+                                        * has pointer members, making it private
+                                        * prevents the compiler to provide it's
+                                        * own, incorrect one if anyone chose to
+                                        * copy such an object.
+                                        */
+      DoFHandler (const DoFHandler &);
+
+                                       /**
+                                        * Copy operator. I can see no reason
+                                        * why someone might want to use it, so
+                                        * I don't provide it. Since this class
+                                        * has pointer members, making it private
+                                        * prevents the compiler to provide it's
+                                        * own, incorrect one if anyone chose to
+                                        * copy such an object.
+                                        */
+      DoFHandler & operator = (const DoFHandler &);
+
+                                       /**
+                                        * Reserve enough space in the 
+                                        * <tt>levels[]</tt> objects to store the
+                                        * numbers of the degrees of freedom
+                                        * needed for the given element. The
+                                        * given element is that one which
+                                        * was selected when calling
+                                        * @p distribute_dofs the last time.
+                                        */
+      void reserve_space ();
+
+                                       /**
+                                        * Free all used memory.
+                                        */
+      void clear_space ();
     
-                                    /**
-                                     * Distribute dofs on the given cell,
-                                     * with new dofs starting with index
-                                     * @p next_free_dof. Return the next
-                                     * unused index number. The finite
-                                     * element used is the one given to
-                                     * @p distribute_dofs, which is copied
-                                     * to @p selected_fe.
-                                     *
-                                     * This function is excluded from the
-                                     * @p distribute_dofs function since
-                                     * it can not be implemented dimension
-                                     * independent.
-                                     */
-    unsigned int distribute_dofs_on_cell (active_cell_iterator &cell,
-                                         unsigned int next_free_dof);
-
-
-                                    /**
-                                     *  Create default tables for the
-                                     *  active_fe_indices in the
-                                     *  hpDoFLevel()s. They are
-                                     *  initialized with the base fe.
-                                     *  This method is called before
-                                     *  refinement and before distribute_dofs
-                                     *  is called. It ensures each cell has
-                                     *  a valid active_fe_index.
-                                     */
-
-    void create_active_fe_table ();
-
-                                    /**
-                                     *  Methods of the RefinementListener
-                                     *  coming from the Triangulation.
-                                     *  Here they are used to administrate the
-                                     *  the active_fe_fields during the spatial
-                                     *  refinement.
-                                     */
-
-    virtual void pre_refinement_notification (const Triangulation<dim> &tria);
-    virtual void post_refinement_notification (const Triangulation<dim> &tria);
-
-
-                                    /**
-                                     * Space to store the DoF numbers for the
-                                     * different levels. Analogous to the
-                                     * <tt>levels[]</tt> tree of the Triangulation
-                                     * objects.
-                                     */
-    std::vector<hpDoFLevel<dim>*>    levels;
-
-                                    /**
-                                     * Store the number of dofs created last
-                                     * time.
-                                     */
-    unsigned int              used_dofs;
-
-                                    /**
-                                     * Array to store the indices for degrees
-                                     * of freedom located at vertices.
-                                     */
-    std::vector<unsigned int>      vertex_dofs;
-
-                                     /**
-                                     * Array to store the information, if a
-                                     * cell on some level has children or
-                                     * not. It is used by the refinement
-                                     * listeners as a persistent buffer during
-                                     * the refinement.
-                                     */
-    std::vector<std::vector<bool> *> has_children;
+                                       /**
+                                        * Distribute dofs on the given cell,
+                                        * with new dofs starting with index
+                                        * @p next_free_dof. Return the next
+                                        * unused index number. The finite
+                                        * element used is the one given to
+                                        * @p distribute_dofs, which is copied
+                                        * to @p selected_fe.
+                                        *
+                                        * This function is excluded from the
+                                        * @p distribute_dofs function since
+                                        * it can not be implemented dimension
+                                        * independent.
+                                        */
+      unsigned int distribute_dofs_on_cell (active_cell_iterator &cell,
+                                            unsigned int next_free_dof);
+
+
+                                       /**
+                                        *  Create default tables for the
+                                        *  active_fe_indices in the
+                                        *  hp::DoFLevels. They are
+                                        *  initialized with the base fe.
+                                        *  This method is called before
+                                        *  refinement and before distribute_dofs
+                                        *  is called. It ensures each cell has
+                                        *  a valid active_fe_index.
+                                        */
+
+      void create_active_fe_table ();
+
+                                       /**
+                                        *  Methods of the RefinementListener
+                                        *  coming from the Triangulation.
+                                        *  Here they are used to administrate the
+                                        *  the active_fe_fields during the spatial
+                                        *  refinement.
+                                        */
+
+      virtual void pre_refinement_notification (const Triangulation<dim> &tria);
+      virtual void post_refinement_notification (const Triangulation<dim> &tria);
+
+
+                                       /**
+                                        * Space to store the DoF numbers for the
+                                        * different levels. Analogous to the
+                                        * <tt>levels[]</tt> tree of the Triangulation
+                                        * objects.
+                                        */
+      std::vector<hp::DoFLevel<dim>*>    levels;
+
+                                       /**
+                                        * Store the number of dofs created last
+                                        * time.
+                                        */
+      unsigned int              used_dofs;
+
+                                       /**
+                                        * Array to store the indices for degrees
+                                        * of freedom located at vertices.
+                                        */
+      std::vector<unsigned int>      vertex_dofs;
+
+                                       /**
+                                        * Array to store the information, if a
+                                        * cell on some level has children or
+                                        * not. It is used by the refinement
+                                        * listeners as a persistent buffer during
+                                        * the refinement.
+                                        */
+      std::vector<std::vector<bool> *> has_children;
                                      
-                                    /**
-                                     * Make accessor objects friends.
-                                     */
-    template <int dim1, template <int> class DH> friend class DoFAccessor;
-
-                                    /**
-                                     * Make accessor objects friends.
-                                     */
-    template <int dim1, int dim2, template <int> class DH> friend class DoFObjectAccessor;
-
-                                    /**
-                                     * Make Triangulation friend.
-                                     */
+                                       /**
+                                        * Make accessor objects friends.
+                                        */
+      template <int dim1, template <int> class DH> friend class DoFAccessor;
+
+                                       /**
+                                        * Make accessor objects friends.
+                                        */
+      template <int dim1, int dim2, template <int> class DH> friend class DoFObjectAccessor;
+
+                                       /**
+                                        * Make Triangulation friend.
+                                        */
 //    friend class Triangulation<dim>;
-};
+  };
 
 
 
@@ -1008,150 +1016,152 @@ class hpDoFHandler  :  public Subscriptor,
 
 #ifndef DOXYGEN
 
-template <> unsigned int hpDoFHandler<1>::n_boundary_dofs () const;
-template <> unsigned int hpDoFHandler<1>::n_boundary_dofs (const FunctionMap &) const;
-template <> unsigned int hpDoFHandler<1>::n_boundary_dofs (const std::set<unsigned char> &) const;
-template <> unsigned int hpDoFHandler<1>::max_couplings_between_dofs () const;
-template <> unsigned int hpDoFHandler<1>::max_couplings_between_boundary_dofs () const;
-template <> unsigned int hpDoFHandler<2>::max_couplings_between_dofs () const;
-template <> unsigned int hpDoFHandler<2>::max_couplings_between_boundary_dofs () const;
-template <> unsigned int hpDoFHandler<3>::max_couplings_between_dofs () const;
-template <> unsigned int hpDoFHandler<3>::max_couplings_between_boundary_dofs () const;
-
-template <> hpDoFHandler<1>::raw_cell_iterator hpDoFHandler<1>::begin_raw (const unsigned int level) const;
-template <> hpDoFHandler<1>::cell_iterator hpDoFHandler<1>::begin (const unsigned int level) const;
-template <> hpDoFHandler<1>::active_cell_iterator hpDoFHandler<1>::begin_active (const unsigned int level) const;
-template <> hpDoFHandler<1>::raw_cell_iterator hpDoFHandler<1>::end () const;
-template <> hpDoFHandler<1>::raw_cell_iterator hpDoFHandler<1>::last_raw () const;
-template <> hpDoFHandler<1>::raw_cell_iterator hpDoFHandler<1>::last_raw (const unsigned int level) const;
-template <> hpDoFHandler<1>::cell_iterator hpDoFHandler<1>::last () const;
-template <> hpDoFHandler<1>::cell_iterator hpDoFHandler<1>::last (const unsigned int level) const;
-template <> hpDoFHandler<1>::active_cell_iterator hpDoFHandler<1>::last_active () const;
-template <> hpDoFHandler<1>::active_cell_iterator hpDoFHandler<1>::last_active (const unsigned int level) const;
-template <> hpDoFHandler<1>::raw_face_iterator hpDoFHandler<1>::begin_raw_face (const unsigned int) const;
-template <> hpDoFHandler<1>::face_iterator hpDoFHandler<1>::begin_face (const unsigned int) const;
-template <> hpDoFHandler<1>::active_face_iterator hpDoFHandler<1>::begin_active_face (const unsigned int) const;
-template <> hpDoFHandler<1>::raw_face_iterator hpDoFHandler<1>::end_face () const;
-template <> hpDoFHandler<1>::raw_face_iterator hpDoFHandler<1>::last_raw_face () const;
-template <> hpDoFHandler<1>::raw_face_iterator hpDoFHandler<1>::last_raw_face (const unsigned int) const;
-template <> hpDoFHandler<1>::face_iterator hpDoFHandler<1>::last_face () const;
-template <> hpDoFHandler<1>::face_iterator hpDoFHandler<1>::last_face (const unsigned int) const;
-template <> hpDoFHandler<1>::active_face_iterator hpDoFHandler<1>::last_active_face () const;
-template <> hpDoFHandler<1>::active_face_iterator hpDoFHandler<1>::last_active_face (const unsigned int) const;
-template <> hpDoFHandler<1>::raw_quad_iterator hpDoFHandler<1>::begin_raw_quad (const unsigned int) const;
-template <> hpDoFHandler<1>::quad_iterator hpDoFHandler<1>::begin_quad (const unsigned int) const;
-template <> hpDoFHandler<1>::active_quad_iterator hpDoFHandler<1>::begin_active_quad (const unsigned int) const;
-template <> hpDoFHandler<1>::raw_quad_iterator hpDoFHandler<1>::end_quad () const;
-template <> hpDoFHandler<1>::raw_quad_iterator hpDoFHandler<1>::last_raw_quad (const unsigned int) const;
-template <> hpDoFHandler<1>::quad_iterator hpDoFHandler<1>::last_quad (const unsigned int) const;
-template <> hpDoFHandler<1>::active_quad_iterator hpDoFHandler<1>::last_active_quad (const unsigned int) const;
-template <> hpDoFHandler<1>::raw_quad_iterator hpDoFHandler<1>::last_raw_quad () const;
-template <> hpDoFHandler<1>::quad_iterator hpDoFHandler<1>::last_quad () const;
-template <> hpDoFHandler<1>::active_quad_iterator hpDoFHandler<1>::last_active_quad () const;
-template <> hpDoFHandler<1>::raw_hex_iterator hpDoFHandler<1>::begin_raw_hex (const unsigned int) const;
-template <> hpDoFHandler<1>::hex_iterator hpDoFHandler<1>::begin_hex (const unsigned int) const;
-template <> hpDoFHandler<1>::active_hex_iterator hpDoFHandler<1>::begin_active_hex (const unsigned int) const;
-template <> hpDoFHandler<1>::raw_hex_iterator hpDoFHandler<1>::end_hex () const;
-template <> hpDoFHandler<1>::raw_hex_iterator hpDoFHandler<1>::last_raw_hex (const unsigned int) const;
-template <> hpDoFHandler<1>::raw_hex_iterator hpDoFHandler<1>::last_raw_hex () const;
-template <> hpDoFHandler<1>::hex_iterator hpDoFHandler<1>::last_hex (const unsigned int) const;
-template <> hpDoFHandler<1>::hex_iterator hpDoFHandler<1>::last_hex () const;
-template <> hpDoFHandler<1>::active_hex_iterator hpDoFHandler<1>::last_active_hex (const unsigned int) const;
-template <> hpDoFHandler<1>::active_hex_iterator hpDoFHandler<1>::last_active_hex () const;
-template <> hpDoFHandler<2>::raw_cell_iterator hpDoFHandler<2>::begin_raw (const unsigned int level) const;
-template <> hpDoFHandler<2>::cell_iterator hpDoFHandler<2>::begin (const unsigned int level) const;
-template <> hpDoFHandler<2>::active_cell_iterator hpDoFHandler<2>::begin_active (const unsigned int level) const;
-template <> hpDoFHandler<2>::raw_cell_iterator hpDoFHandler<2>::end () const;
-template <> hpDoFHandler<2>::raw_cell_iterator hpDoFHandler<2>::last_raw () const;
-template <> hpDoFHandler<2>::raw_cell_iterator hpDoFHandler<2>::last_raw (const unsigned int level) const;
-template <> hpDoFHandler<2>::cell_iterator hpDoFHandler<2>::last () const;
-template <> hpDoFHandler<2>::cell_iterator hpDoFHandler<2>::last (const unsigned int level) const;
-template <> hpDoFHandler<2>::active_cell_iterator hpDoFHandler<2>::last_active () const;
-template <> hpDoFHandler<2>::active_cell_iterator hpDoFHandler<2>::last_active (const unsigned int level) const;
-template <> hpDoFHandler<2>::raw_face_iterator hpDoFHandler<2>::begin_raw_face (const unsigned int level) const;
-template <> hpDoFHandler<2>::face_iterator hpDoFHandler<2>::begin_face (const unsigned int level) const;
-template <> hpDoFHandler<2>::active_face_iterator hpDoFHandler<2>::begin_active_face (const unsigned int level) const;
-template <> hpDoFHandler<2>::raw_face_iterator hpDoFHandler<2>::end_face () const;
-template <> hpDoFHandler<2>::raw_face_iterator hpDoFHandler<2>::last_raw_face () const;
-template <> hpDoFHandler<2>::raw_face_iterator hpDoFHandler<2>::last_raw_face (const unsigned int level) const;
-template <> hpDoFHandler<2>::face_iterator hpDoFHandler<2>::last_face () const;
-template <> hpDoFHandler<2>::face_iterator hpDoFHandler<2>::last_face (const unsigned int level) const;
-template <> hpDoFHandler<2>::active_face_iterator hpDoFHandler<2>::last_active_face () const;
-template <> hpDoFHandler<2>::active_face_iterator hpDoFHandler<2>::last_active_face (const unsigned int level) const;
-template <> hpDoFHandler<2>::raw_hex_iterator hpDoFHandler<2>::begin_raw_hex (const unsigned int) const;
-template <> hpDoFHandler<2>::hex_iterator hpDoFHandler<2>::begin_hex (const unsigned int) const;
-template <> hpDoFHandler<2>::active_hex_iterator hpDoFHandler<2>::begin_active_hex (const unsigned int) const;
-template <> hpDoFHandler<2>::raw_hex_iterator hpDoFHandler<2>::end_hex () const;
-template <> hpDoFHandler<2>::raw_hex_iterator hpDoFHandler<2>::last_raw_hex (const unsigned int) const;
-template <> hpDoFHandler<2>::raw_hex_iterator hpDoFHandler<2>::last_raw_hex () const;
-template <> hpDoFHandler<2>::hex_iterator hpDoFHandler<2>::last_hex (const unsigned int) const;
-template <> hpDoFHandler<2>::hex_iterator hpDoFHandler<2>::last_hex () const;
-template <> hpDoFHandler<2>::active_hex_iterator hpDoFHandler<2>::last_active_hex (const unsigned int) const;
-template <> hpDoFHandler<2>::active_hex_iterator hpDoFHandler<2>::last_active_hex () const;
-template <> hpDoFHandler<3>::raw_cell_iterator hpDoFHandler<3>::begin_raw (const unsigned int level) const;
-template <> hpDoFHandler<3>::cell_iterator hpDoFHandler<3>::begin (const unsigned int level) const;
-template <> hpDoFHandler<3>::active_cell_iterator hpDoFHandler<3>::begin_active (const unsigned int level) const;
-template <> hpDoFHandler<3>::raw_cell_iterator hpDoFHandler<3>::end () const;
-template <> hpDoFHandler<3>::raw_cell_iterator hpDoFHandler<3>::last_raw () const;
-template <> hpDoFHandler<3>::raw_cell_iterator hpDoFHandler<3>::last_raw (const unsigned int level) const;
-template <> hpDoFHandler<3>::cell_iterator hpDoFHandler<3>::last () const;
-template <> hpDoFHandler<3>::cell_iterator hpDoFHandler<3>::last (const unsigned int level) const;
-template <> hpDoFHandler<3>::active_cell_iterator hpDoFHandler<3>::last_active () const;
-template <> hpDoFHandler<3>::active_cell_iterator hpDoFHandler<3>::last_active (const unsigned int level) const;
-template <> hpDoFHandler<3>::raw_face_iterator hpDoFHandler<3>::begin_raw_face (const unsigned int level) const;
-template <> hpDoFHandler<3>::face_iterator hpDoFHandler<3>::begin_face (const unsigned int level) const;
-template <> hpDoFHandler<3>::active_face_iterator hpDoFHandler<3>::begin_active_face (const unsigned int level) const;
-template <> hpDoFHandler<3>::raw_face_iterator hpDoFHandler<3>::end_face () const;
-template <> hpDoFHandler<3>::raw_face_iterator hpDoFHandler<3>::last_raw_face () const;
-template <> hpDoFHandler<3>::raw_face_iterator hpDoFHandler<3>::last_raw_face (const unsigned int level) const;
-template <> hpDoFHandler<3>::face_iterator hpDoFHandler<3>::last_face () const;
-template <> hpDoFHandler<3>::face_iterator hpDoFHandler<3>::last_face (const unsigned int level) const;
-template <> hpDoFHandler<3>::active_face_iterator hpDoFHandler<3>::last_active_face () const;
-template <> hpDoFHandler<3>::active_face_iterator hpDoFHandler<3>::last_active_face (const unsigned int level) const;
-
-template <>
-unsigned int hpDoFHandler<1>::distribute_dofs_on_cell (active_cell_iterator &cell,
-                                                    unsigned int          next_free_dof);
-template <>
-unsigned int hpDoFHandler<2>::distribute_dofs_on_cell (active_cell_iterator &cell,
-                                                    unsigned int          next_free_dof);
-template <>
-unsigned int hpDoFHandler<3>::distribute_dofs_on_cell (active_cell_iterator &cell,
-                                                    unsigned int          next_free_dof);
-template <> void hpDoFHandler<1>::renumber_dofs (const std::vector<unsigned int> &new_numbers);
-template <> void hpDoFHandler<2>::renumber_dofs (const std::vector<unsigned int> &new_numbers);
-template <> void hpDoFHandler<3>::renumber_dofs (const std::vector<unsigned int> &new_numbers);
-template <> void hpDoFHandler<1>::reserve_space ();
-template <> void hpDoFHandler<2>::reserve_space ();
-template <> void hpDoFHandler<3>::reserve_space ();
+  template <> unsigned int DoFHandler<1>::n_boundary_dofs () const;
+  template <> unsigned int DoFHandler<1>::n_boundary_dofs (const FunctionMap &) const;
+  template <> unsigned int DoFHandler<1>::n_boundary_dofs (const std::set<unsigned char> &) const;
+  template <> unsigned int DoFHandler<1>::max_couplings_between_dofs () const;
+  template <> unsigned int DoFHandler<1>::max_couplings_between_boundary_dofs () const;
+  template <> unsigned int DoFHandler<2>::max_couplings_between_dofs () const;
+  template <> unsigned int DoFHandler<2>::max_couplings_between_boundary_dofs () const;
+  template <> unsigned int DoFHandler<3>::max_couplings_between_dofs () const;
+  template <> unsigned int DoFHandler<3>::max_couplings_between_boundary_dofs () const;
+
+  template <> DoFHandler<1>::raw_cell_iterator DoFHandler<1>::begin_raw (const unsigned int level) const;
+  template <> DoFHandler<1>::cell_iterator DoFHandler<1>::begin (const unsigned int level) const;
+  template <> DoFHandler<1>::active_cell_iterator DoFHandler<1>::begin_active (const unsigned int level) const;
+  template <> DoFHandler<1>::raw_cell_iterator DoFHandler<1>::end () const;
+  template <> DoFHandler<1>::raw_cell_iterator DoFHandler<1>::last_raw () const;
+  template <> DoFHandler<1>::raw_cell_iterator DoFHandler<1>::last_raw (const unsigned int level) const;
+  template <> DoFHandler<1>::cell_iterator DoFHandler<1>::last () const;
+  template <> DoFHandler<1>::cell_iterator DoFHandler<1>::last (const unsigned int level) const;
+  template <> DoFHandler<1>::active_cell_iterator DoFHandler<1>::last_active () const;
+  template <> DoFHandler<1>::active_cell_iterator DoFHandler<1>::last_active (const unsigned int level) const;
+  template <> DoFHandler<1>::raw_face_iterator DoFHandler<1>::begin_raw_face (const unsigned int) const;
+  template <> DoFHandler<1>::face_iterator DoFHandler<1>::begin_face (const unsigned int) const;
+  template <> DoFHandler<1>::active_face_iterator DoFHandler<1>::begin_active_face (const unsigned int) const;
+  template <> DoFHandler<1>::raw_face_iterator DoFHandler<1>::end_face () const;
+  template <> DoFHandler<1>::raw_face_iterator DoFHandler<1>::last_raw_face () const;
+  template <> DoFHandler<1>::raw_face_iterator DoFHandler<1>::last_raw_face (const unsigned int) const;
+  template <> DoFHandler<1>::face_iterator DoFHandler<1>::last_face () const;
+  template <> DoFHandler<1>::face_iterator DoFHandler<1>::last_face (const unsigned int) const;
+  template <> DoFHandler<1>::active_face_iterator DoFHandler<1>::last_active_face () const;
+  template <> DoFHandler<1>::active_face_iterator DoFHandler<1>::last_active_face (const unsigned int) const;
+  template <> DoFHandler<1>::raw_quad_iterator DoFHandler<1>::begin_raw_quad (const unsigned int) const;
+  template <> DoFHandler<1>::quad_iterator DoFHandler<1>::begin_quad (const unsigned int) const;
+  template <> DoFHandler<1>::active_quad_iterator DoFHandler<1>::begin_active_quad (const unsigned int) const;
+  template <> DoFHandler<1>::raw_quad_iterator DoFHandler<1>::end_quad () const;
+  template <> DoFHandler<1>::raw_quad_iterator DoFHandler<1>::last_raw_quad (const unsigned int) const;
+  template <> DoFHandler<1>::quad_iterator DoFHandler<1>::last_quad (const unsigned int) const;
+  template <> DoFHandler<1>::active_quad_iterator DoFHandler<1>::last_active_quad (const unsigned int) const;
+  template <> DoFHandler<1>::raw_quad_iterator DoFHandler<1>::last_raw_quad () const;
+  template <> DoFHandler<1>::quad_iterator DoFHandler<1>::last_quad () const;
+  template <> DoFHandler<1>::active_quad_iterator DoFHandler<1>::last_active_quad () const;
+  template <> DoFHandler<1>::raw_hex_iterator DoFHandler<1>::begin_raw_hex (const unsigned int) const;
+  template <> DoFHandler<1>::hex_iterator DoFHandler<1>::begin_hex (const unsigned int) const;
+  template <> DoFHandler<1>::active_hex_iterator DoFHandler<1>::begin_active_hex (const unsigned int) const;
+  template <> DoFHandler<1>::raw_hex_iterator DoFHandler<1>::end_hex () const;
+  template <> DoFHandler<1>::raw_hex_iterator DoFHandler<1>::last_raw_hex (const unsigned int) const;
+  template <> DoFHandler<1>::raw_hex_iterator DoFHandler<1>::last_raw_hex () const;
+  template <> DoFHandler<1>::hex_iterator DoFHandler<1>::last_hex (const unsigned int) const;
+  template <> DoFHandler<1>::hex_iterator DoFHandler<1>::last_hex () const;
+  template <> DoFHandler<1>::active_hex_iterator DoFHandler<1>::last_active_hex (const unsigned int) const;
+  template <> DoFHandler<1>::active_hex_iterator DoFHandler<1>::last_active_hex () const;
+  template <> DoFHandler<2>::raw_cell_iterator DoFHandler<2>::begin_raw (const unsigned int level) const;
+  template <> DoFHandler<2>::cell_iterator DoFHandler<2>::begin (const unsigned int level) const;
+  template <> DoFHandler<2>::active_cell_iterator DoFHandler<2>::begin_active (const unsigned int level) const;
+  template <> DoFHandler<2>::raw_cell_iterator DoFHandler<2>::end () const;
+  template <> DoFHandler<2>::raw_cell_iterator DoFHandler<2>::last_raw () const;
+  template <> DoFHandler<2>::raw_cell_iterator DoFHandler<2>::last_raw (const unsigned int level) const;
+  template <> DoFHandler<2>::cell_iterator DoFHandler<2>::last () const;
+  template <> DoFHandler<2>::cell_iterator DoFHandler<2>::last (const unsigned int level) const;
+  template <> DoFHandler<2>::active_cell_iterator DoFHandler<2>::last_active () const;
+  template <> DoFHandler<2>::active_cell_iterator DoFHandler<2>::last_active (const unsigned int level) const;
+  template <> DoFHandler<2>::raw_face_iterator DoFHandler<2>::begin_raw_face (const unsigned int level) const;
+  template <> DoFHandler<2>::face_iterator DoFHandler<2>::begin_face (const unsigned int level) const;
+  template <> DoFHandler<2>::active_face_iterator DoFHandler<2>::begin_active_face (const unsigned int level) const;
+  template <> DoFHandler<2>::raw_face_iterator DoFHandler<2>::end_face () const;
+  template <> DoFHandler<2>::raw_face_iterator DoFHandler<2>::last_raw_face () const;
+  template <> DoFHandler<2>::raw_face_iterator DoFHandler<2>::last_raw_face (const unsigned int level) const;
+  template <> DoFHandler<2>::face_iterator DoFHandler<2>::last_face () const;
+  template <> DoFHandler<2>::face_iterator DoFHandler<2>::last_face (const unsigned int level) const;
+  template <> DoFHandler<2>::active_face_iterator DoFHandler<2>::last_active_face () const;
+  template <> DoFHandler<2>::active_face_iterator DoFHandler<2>::last_active_face (const unsigned int level) const;
+  template <> DoFHandler<2>::raw_hex_iterator DoFHandler<2>::begin_raw_hex (const unsigned int) const;
+  template <> DoFHandler<2>::hex_iterator DoFHandler<2>::begin_hex (const unsigned int) const;
+  template <> DoFHandler<2>::active_hex_iterator DoFHandler<2>::begin_active_hex (const unsigned int) const;
+  template <> DoFHandler<2>::raw_hex_iterator DoFHandler<2>::end_hex () const;
+  template <> DoFHandler<2>::raw_hex_iterator DoFHandler<2>::last_raw_hex (const unsigned int) const;
+  template <> DoFHandler<2>::raw_hex_iterator DoFHandler<2>::last_raw_hex () const;
+  template <> DoFHandler<2>::hex_iterator DoFHandler<2>::last_hex (const unsigned int) const;
+  template <> DoFHandler<2>::hex_iterator DoFHandler<2>::last_hex () const;
+  template <> DoFHandler<2>::active_hex_iterator DoFHandler<2>::last_active_hex (const unsigned int) const;
+  template <> DoFHandler<2>::active_hex_iterator DoFHandler<2>::last_active_hex () const;
+  template <> DoFHandler<3>::raw_cell_iterator DoFHandler<3>::begin_raw (const unsigned int level) const;
+  template <> DoFHandler<3>::cell_iterator DoFHandler<3>::begin (const unsigned int level) const;
+  template <> DoFHandler<3>::active_cell_iterator DoFHandler<3>::begin_active (const unsigned int level) const;
+  template <> DoFHandler<3>::raw_cell_iterator DoFHandler<3>::end () const;
+  template <> DoFHandler<3>::raw_cell_iterator DoFHandler<3>::last_raw () const;
+  template <> DoFHandler<3>::raw_cell_iterator DoFHandler<3>::last_raw (const unsigned int level) const;
+  template <> DoFHandler<3>::cell_iterator DoFHandler<3>::last () const;
+  template <> DoFHandler<3>::cell_iterator DoFHandler<3>::last (const unsigned int level) const;
+  template <> DoFHandler<3>::active_cell_iterator DoFHandler<3>::last_active () const;
+  template <> DoFHandler<3>::active_cell_iterator DoFHandler<3>::last_active (const unsigned int level) const;
+  template <> DoFHandler<3>::raw_face_iterator DoFHandler<3>::begin_raw_face (const unsigned int level) const;
+  template <> DoFHandler<3>::face_iterator DoFHandler<3>::begin_face (const unsigned int level) const;
+  template <> DoFHandler<3>::active_face_iterator DoFHandler<3>::begin_active_face (const unsigned int level) const;
+  template <> DoFHandler<3>::raw_face_iterator DoFHandler<3>::end_face () const;
+  template <> DoFHandler<3>::raw_face_iterator DoFHandler<3>::last_raw_face () const;
+  template <> DoFHandler<3>::raw_face_iterator DoFHandler<3>::last_raw_face (const unsigned int level) const;
+  template <> DoFHandler<3>::face_iterator DoFHandler<3>::last_face () const;
+  template <> DoFHandler<3>::face_iterator DoFHandler<3>::last_face (const unsigned int level) const;
+  template <> DoFHandler<3>::active_face_iterator DoFHandler<3>::last_active_face () const;
+  template <> DoFHandler<3>::active_face_iterator DoFHandler<3>::last_active_face (const unsigned int level) const;
+
+  template <>
+  unsigned int DoFHandler<1>::distribute_dofs_on_cell (active_cell_iterator &cell,
+                                                         unsigned int          next_free_dof);
+  template <>
+  unsigned int DoFHandler<2>::distribute_dofs_on_cell (active_cell_iterator &cell,
+                                                         unsigned int          next_free_dof);
+  template <>
+  unsigned int DoFHandler<3>::distribute_dofs_on_cell (active_cell_iterator &cell,
+                                                         unsigned int          next_free_dof);
+  template <> void DoFHandler<1>::renumber_dofs (const std::vector<unsigned int> &new_numbers);
+  template <> void DoFHandler<2>::renumber_dofs (const std::vector<unsigned int> &new_numbers);
+  template <> void DoFHandler<3>::renumber_dofs (const std::vector<unsigned int> &new_numbers);
+  template <> void DoFHandler<1>::reserve_space ();
+  template <> void DoFHandler<2>::reserve_space ();
+  template <> void DoFHandler<3>::reserve_space ();
 
 /* ----------------------- Inline functions ---------------------------------- */
 
-template <int dim>
-inline
-unsigned int
-hpDoFHandler<dim>::n_dofs () const
-{
-  return used_dofs;
-}
-
-
-
-template <int dim>
-inline
-const FECollection<dim> &
-hpDoFHandler<dim>::get_fe () const
-{
-  return *finite_elements;
-}
-
-
-template <int dim>
-inline
-const Triangulation<dim> &
-hpDoFHandler<dim>::get_tria () const
-{
-  return *tria;
+  template <int dim>
+  inline
+  unsigned int
+  DoFHandler<dim>::n_dofs () const
+  {
+    return used_dofs;
+  }
+
+
+
+  template <int dim>
+  inline
+  const FECollection<dim> &
+  DoFHandler<dim>::get_fe () const
+  {
+    return *finite_elements;
+  }
+
+
+  template <int dim>
+  inline
+  const Triangulation<dim> &
+  DoFHandler<dim>::get_tria () const
+  {
+    return *tria;
+  }
+  
 }
 
 
@@ -1159,3 +1169,4 @@ hpDoFHandler<dim>::get_tria () const
 
 #endif
 
+  
index 2e380fb6973b571a5fc0711cbe63ee50a44e8fef..6245c53504bd262b7066ad11437ef05567e44a22 100644 (file)
@@ -18,6 +18,9 @@
 #include <vector>
 
 
+namespace hp
+{
+
 /**
  * Store the indices of the degrees of freedom which are located on
  * objects of dimension @p N.  Declare this general template
  *
  * @author Wolfgang Bangerth, 1998, Oliver Kayser-Herold 2003.
  */
-template <int N>
-class hpDoFLevel
-{
-  private:
+  template <int N>
+  class DoFLevel
+  {
+    private:
                                        /**
                                         * Make the constructor private
                                         * to avoid that someone uses
                                         * this class.
                                         */
-    hpDoFLevel ();
-};
+      DoFLevel ();
+  };
 
 
 /**
  *  Store all information which belongs to one level of the multilevel
  *  hierarchy.
  *
- *  In @ref{hpDoFLevel<0>} all data is stored which is not dependent on the
+ *  In @ref{DoFLevel<0>} all data is stored which is not dependent on the
  *  dimension, e.g. a field to store the index referring to the FECollection
  *  class. The data therefore corresponds to cells, rather than vertices,
  *  lines, quads, etc.
  */
-template <>
-class hpDoFLevel<0>
-{
-  public:
-                                    /**
-                                     *  Indices specifying the finite element
-                                     *  of FECollection to use for the
-                                     *  different cells. The meaning
-                                     *  what a cell is, is dimension specific,
-                                     *  therefore also the length of this
-                                     *  vector depends on the dimension: in
-                                     *  one dimension, the length of this
-                                     *  vector equals the length of the
-                                     *  @p lines vector, in two dimensions
-                                     *  that of the @p quads vector, etc.
-                                     */
-
-    std::vector<unsigned int> active_fe_indices;
-};
+  template <>
+  class DoFLevel<0>
+  {
+    public:
+                                       /**
+                                        *  Indices specifying the finite element
+                                        *  of FECollection to use for the
+                                        *  different cells. The meaning
+                                        *  what a cell is, is dimension specific,
+                                        *  therefore also the length of this
+                                        *  vector depends on the dimension: in
+                                        *  one dimension, the length of this
+                                        *  vector equals the length of the
+                                        *  @p lines vector, in two dimensions
+                                        *  that of the @p quads vector, etc.
+                                        */
+
+      std::vector<unsigned int> active_fe_indices;
+  };
 
 
 /**
  * Store the indices of the degrees of freedom which are located on
  * the lines.
  *
- * @sect3{Information for all hpDoFLevel() classes}
+ * @sect3{Information for all DoFLevel() classes}
  *
- * The hpDoFLevel()<tt><N></tt> classes 
+ * The DoFLevel()<tt><N></tt> classes 
  * store the global indices of the degrees of freedom for each cell on a
  * certain level. The index or number of a degree of freedom is the zero-based
  * index of the according value in the solution vector and the row and column
@@ -100,7 +103,7 @@ class hpDoFLevel<0>
  * The storage format of the degrees of freedom indices (short: DoF
  * indices) is somewhat like a mirror of the data structures of the
  * triangulation classes.  There is a hierarchy of
- * hpDoFLevel()<tt><dim></tt> classes for the different dimensions which
+ * DoFLevel()<tt><dim></tt> classes for the different dimensions which
  * have objects named @p line_dofs, @p quad_dofs and so on, in which
  * the indices of DoFs located on lines and quads, respectively, are
  * stored. The indices are stored levelwise. 
@@ -121,104 +124,105 @@ class hpDoFLevel<0>
  *
  * @author Wolfgang Bangerth, 1998, Oliver Kayser-Herold 2003.
  */
-template <>
-class hpDoFLevel<1> : public hpDoFLevel<0>
-{
-  public:
+  template <>
+  class DoFLevel<1> : public DoFLevel<0>
+  {
+    public:
 
                                        /**
                                        * Store the start index for
                                        * the degrees of freedom of each
                                        * line in the @p line_dofs array.
                                        */
-    std::vector<unsigned int> dof_line_index_offset;
+      std::vector<unsigned int> dof_line_index_offset;
 
                                        /**
                                         * Store the global indices of
                                         * the degrees of freedom. See
-                                        * hpDoFLevel() for detailed
+                                        * DoFLevel() for detailed
                                         * information.
                                         */
-    std::vector<unsigned int> line_dofs;
+      std::vector<unsigned int> line_dofs;
 
                                        /**
                                         * Determine an estimate for the
                                         * memory consumption (in bytes)
                                         * of this object.
                                         */
-    unsigned int memory_consumption () const;
-};
+      unsigned int memory_consumption () const;
+  };
 
 
 /**
  * Store the indices of the degrees of freedom which are located on
- * quads.  See @ref{hpDoFLevel<1>} for more information.
+ * quads.  See @ref{DoFLevel<1>} for more information.
  *
  * @author Wolfgang Bangerth, 1998, Oliver Kayser-Herold 2003.
  */
-template <>
-class hpDoFLevel<2> : public hpDoFLevel<1>
-{
-  public:
+  template <>
+  class DoFLevel<2> : public DoFLevel<1>
+  {
+    public:
 
                                        /**
                                        * Store the start index for
                                        * the degrees of freedom of each
                                        * quad in the @p quad_dofs array.
                                        */
-    std::vector<unsigned int> dof_quad_index_offset;
+      std::vector<unsigned int> dof_quad_index_offset;
 
                                        /**
                                         * Store the global indices of
                                         * the degrees of freedom. See
-                                        * hpDoFLevel() for detailed
+                                        * DoFLevel() for detailed
                                         * information.
                                         */
-    std::vector<unsigned int> quad_dofs;
+      std::vector<unsigned int> quad_dofs;
 
                                        /**
                                         * Determine an estimate for the
                                         * memory consumption (in bytes)
                                         * of this object.
                                         */
-    unsigned int memory_consumption () const;
-};
+      unsigned int memory_consumption () const;
+  };
 
 
 
 /**
  * Store the indices of the degrees of freedom which are located on
- * hexhedra.  See @ref{hpDoFLevel<1>} for more information.
+ * hexhedra.  See @ref{DoFLevel<1>} for more information.
  *
  * @author Wolfgang Bangerth, 1998, Oliver Kayser-Herold 2003.
  */
-template <>
-class hpDoFLevel<3> : public hpDoFLevel<2>
-{
-  public:
+  template <>
+  class DoFLevel<3> : public DoFLevel<2>
+  {
+    public:
 
                                        /**
                                        * Store the start index for
                                        * the degrees of freedom of each
                                        * hex in the @p hex_dofs array.
                                        */
-    std::vector<unsigned int> dof_hex_index_offset;
+      std::vector<unsigned int> dof_hex_index_offset;
 
                                        /**
                                         * Store the global indices of
                                         * the degrees of freedom. See
-                                        * hpDoFLevel() for detailed
+                                        * DoFLevel() for detailed
                                         * information.
                                         */
-    std::vector<unsigned int> hex_dofs;
+      std::vector<unsigned int> hex_dofs;
 
                                        /**
                                         * Determine an estimate for the
                                         * memory consumption (in bytes)
                                         * of this object.
                                         */
-    unsigned int memory_consumption () const;
-};
-
+      unsigned int memory_consumption () const;
+  };
+  
+} // namespace hp
 
 #endif
index ff24d2b545c8025bb71ee75f6d1442de4d565a24..04816909a82374f512df1cde5842d7a991fe9db7 100644 (file)
@@ -20,7 +20,7 @@
 
 /**
  * This class acts as a collection of finite element objects used in the
- * hpDoFHandler(). It is thus to a hpDoFHandler() what a
+ * hp::DoFHandler(). It is thus to a hp::DoFHandler() what a
  * FiniteElement is to a DoFHandler. This collection stores copies
  * of the original elements added to it, and is therefore handling its memory
  * manegement itself.
index 5515948cdd6f74e9b1692f82de6be575a0f7372c..f7a50ef398027bc69f22ace481fdb83aec532d3b 100644 (file)
@@ -25,7 +25,7 @@ template <typename number> class Vector;
 template <int dim> class Quadrature;
 template <int dim> class FiniteElement;
 template <int dim> class DoFHandler;
-template <int dim> class hpDoFHandler;
+template <int dim> class hp::DoFHandler;
 template <int dim> class FiniteElementData;
 class ConstraintMatrix;
 
@@ -595,7 +595,7 @@ class FETools
                                       * Same as last function, except
                                       * that one or both of the dof
                                       * handler objects might be of
-                                      * type @p hpDoFHandler.
+                                      * type @p hp::DoFHandler.
                                       */
     template <int dim,
               template <int> class DH1,
@@ -644,7 +644,7 @@ class FETools
                                       * Same as last function, except
                                       * that the dof handler objects
                                       * might be of type
-                                      * @p hpDoFHandler.
+                                      * @p hp::DoFHandler.
                                       */
     template <int dim,
               template <int> class DH,
index aaaaa13a7601816d9e57206d5a72a0d809c90bfa..b9cf5a3d2b720b489a9640b1e7d2626044ede926 100644 (file)
@@ -1676,7 +1676,7 @@ class FEValues : public FEValuesBase<dim>
                                      * Reinitialize the gradients,
                                      * Jacobi determinants, etc for
                                      * the given cell of type
-                                     * "iterator into a hpDoFHandler
+                                     * "iterator into a hp::DoFHandler
                                      * object", and the finite
                                      * element associated with this
                                      * object. It is assumed that the
@@ -1685,7 +1685,7 @@ class FEValues : public FEValuesBase<dim>
                                      * used by this @p FEValues
                                      * object.
                                      */
-    void reinit (const typename hpDoFHandler<dim>::cell_iterator &cell);
+    void reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell);
 
                                     /**
                                      * Reinitialize the gradients,
@@ -1963,7 +1963,7 @@ class FEFaceValues : public FEFaceValuesBase<dim>
                                      * Reinitialize the gradients,
                                      * Jacobi determinants, etc for
                                      * the given cell of type
-                                     * "iterator into a hpDoFHandler
+                                     * "iterator into a hp::DoFHandler
                                      * object", and the finite
                                      * element associated with this
                                      * object. It is assumed that the
@@ -1972,7 +1972,7 @@ class FEFaceValues : public FEFaceValuesBase<dim>
                                      * used by this FEValues
                                      * object.
                                      */
-    void reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
+    void reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
                 const unsigned int                              face_no);
 
                                     /**
@@ -2130,7 +2130,7 @@ class FESubfaceValues : public FEFaceValuesBase<dim>
                                      * Reinitialize the gradients,
                                      * Jacobi determinants, etc for
                                      * the given cell of type
-                                     * "iterator into a hpDoFHandler
+                                     * "iterator into a hp::DoFHandler
                                      * object", and the finite
                                      * element associated with this
                                      * object. It is assumed that the
@@ -2139,7 +2139,7 @@ class FESubfaceValues : public FEFaceValuesBase<dim>
                                      * used by this FEValues
                                      * object.
                                      */
-    void reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
+    void reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
                 const unsigned int                    face_no,
                 const unsigned int                    subface_no);
     
index 150df7c745be73d8e2b4667520c7dbcc76b218ed..dfc7bd1cba41222e1f622289a8422e2ed30de904 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 2003, 2004 by the deal.II authors
+//    Copyright (C) 2003, 2004, 2006 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
@@ -27,8 +27,11 @@ template <int dim> class MappingQ1;
 template <int dim> class FiniteElement;
 
 
-namespace internal 
+namespace hp
 {
+  
+  namespace internal 
+  {
 /**
  * Map between finite element objects and @p FEValues (the second
  * template parameter, which might be <tt>FEValues<dim></tt>,
@@ -36,496 +39,497 @@ namespace internal
  * use this to hold an <tt>FE*Values</tt> object for each finite element
  * that is used in the triangulation that it integrates on.
  */
-  template <int dim, class FEValues>
-  class FEValuesMap
-  {
-    public:
-                                       /**
-                                        * Make destructor virtual,
-                                        * since we have virtual
-                                        * functions in this class.
-                                        */
-      virtual ~FEValuesMap ();
+    template <int dim, class FEValues>
+    class FEValuesMap
+    {
+      public:
+                                         /**
+                                          * Make destructor virtual,
+                                          * since we have virtual
+                                          * functions in this class.
+                                          */
+        virtual ~FEValuesMap ();
       
-                                       /**
-                                        * Return a reference to the
-                                        * @p FEValues object selected
-                                        * by the last call to
-                                        * @p select_fe_values. The
-                                        * returned value is a constant
-                                        * reference since the only
-                                        * non-const function in the
-                                        * underlying class would be
-                                        * @p reinit, which you must
-                                        * not call directly any way;
-                                        * rather, use the @p reinit
-                                        * function of the
-                                        * <tt>hpFE*Values</tt> class.
-                                        */
-      const FEValues & get_present_fe_values () const;
-
-    protected:
-                                       /**
-                                        * Create an object of type
-                                        * @p FEValues for this
-                                        * particular finite
-                                        * element. Since the type of
-                                        * @p FEValues is not known
-                                        * here, we have to leave this
-                                        * to derived classes.
-                                        */
-      virtual
-      FEValues * create_fe_values (const FiniteElement<dim> &fe,
-                                  const unsigned int active_fe_index) const = 0;
+                                         /**
+                                          * Return a reference to the
+                                          * @p FEValues object selected
+                                          * by the last call to
+                                          * @p select_fe_values. The
+                                          * returned value is a constant
+                                          * reference since the only
+                                          * non-const function in the
+                                          * underlying class would be
+                                          * @p reinit, which you must
+                                          * not call directly any way;
+                                          * rather, use the @p reinit
+                                          * function of the
+                                          * <tt>hpFE*Values</tt> class.
+                                          */
+        const FEValues & get_present_fe_values () const;
+
+      protected:
+                                         /**
+                                          * Create an object of type
+                                          * @p FEValues for this
+                                          * particular finite
+                                          * element. Since the type of
+                                          * @p FEValues is not known
+                                          * here, we have to leave this
+                                          * to derived classes.
+                                          */
+        virtual
+        FEValues *
+        create_fe_values (const FiniteElement<dim> &fe,
+                          const unsigned int active_fe_index) const = 0;
       
-                                       /**
-                                        * Select the @p FEValues
-                                        * object corresponding to the
-                                        * finite element object given
-                                        * as argument. If there is no
-                                        * such @p FEValues object
-                                        * yet, then one is created by
-                                        * calling @p create_fe_values
-                                        * with this finite element
-                                        * object.
-                                        *
-                                        * A non-const reference to
-                                        * this object is returned.
-                                        */
-      FEValues &
-      select_fe_values (const FiniteElement<dim> &fe,
-                       const unsigned int active_fe_index);
-
-
-                                       /**
-                                        * This field remembers the
-                                       * @p{active_fe_index} of the
-                                       * cell, which was used for
-                                       * the last call to @p{reinit}.
-                                       */
-      unsigned int present_fe_index;
-
-    private:
-                                       /**
-                                        * Have a map from pointers to
-                                        * finite elements to objects
-                                        * of type @p FEValues.
-                                        *
-                                        * Note that the shared pointer
-                                        * will make sure that the
-                                        * memory previously allocated
-                                        * is released when the
-                                        * destructor of this class is
-                                        * run.
-                                        */
-      std::map<std::pair<SmartPointer<const FiniteElement<dim> >, unsigned int>,
-               boost::shared_ptr<FEValues> > fe_to_fe_values_map;
-
-                                       /**
-                                        * Pointer to the @p FEValues
-                                        * object that is used for the
-                                        * present cell. This always
-                                        * points to one of the objects
-                                        * in the map above, and to
-                                        * which one is determined by
-                                        * the last call to
-                                        * @p select_fe_values.
-                                        */
-      boost::shared_ptr<FEValues> present_fe_values;
-
-  };
+                                         /**
+                                          * Select the @p FEValues
+                                          * object corresponding to the
+                                          * finite element object given
+                                          * as argument. If there is no
+                                          * such @p FEValues object
+                                          * yet, then one is created by
+                                          * calling @p create_fe_values
+                                          * with this finite element
+                                          * object.
+                                          *
+                                          * A non-const reference to
+                                          * this object is returned.
+                                          */
+        FEValues &
+        select_fe_values (const FiniteElement<dim> &fe,
+                          const unsigned int active_fe_index);
+
+
+                                         /**
+                                          * This field remembers the
+                                          * @p{active_fe_index} of the
+                                          * cell, which was used for
+                                          * the last call to @p{reinit}.
+                                          */
+        unsigned int present_fe_index;
+
+      private:
+                                         /**
+                                          * Have a map from pointers to
+                                          * finite elements to objects
+                                          * of type @p FEValues.
+                                          *
+                                          * Note that the shared pointer
+                                          * will make sure that the
+                                          * memory previously allocated
+                                          * is released when the
+                                          * destructor of this class is
+                                          * run.
+                                          */
+        std::map<std::pair<SmartPointer<const FiniteElement<dim> >, unsigned int>,
+                 boost::shared_ptr<FEValues> > fe_to_fe_values_map;
+
+                                         /**
+                                          * Pointer to the @p FEValues
+                                          * object that is used for the
+                                          * present cell. This always
+                                          * points to one of the objects
+                                          * in the map above, and to
+                                          * which one is determined by
+                                          * the last call to
+                                          * @p select_fe_values.
+                                          */
+        boost::shared_ptr<FEValues> present_fe_values;
+
+    };
 
 
 /**
- * Base class for the <tt>hpFE*Values</tt> classes, storing the data that
+ * Base class for the <tt>hp::FE*Values</tt> classes, storing the data that
  * is common to them. The first template parameter denotes the space
  * dimension we are in, the second the dimensionality of the object
- * that we integrate on, i.e. for usual @p hpFEValues it is equal to
+ * that we integrate on, i.e. for usual @p hp::FEValues it is equal to
  * the first one, while for face integration it is one less.
  *
  * @author Wolfgang Bangerth, 2003
  */
-  template <int dim, int q_dim>
-  class hpFEValuesBase 
-  {
-  private:
-                                       /**
-                                        * Default mapping, in case
-                                        * none was provided through
-                                        * the call to the constructor.
-                                        */
-      static const MappingQ1<dim> default_mapping;
-
-  public:
-                                       /**
-                                        * Constructor. Set the fields
-                                        * of this class to the values
-                                        * indicated by the parameters
-                                        * to the constructor.
-                                        */
-      hpFEValuesBase (const MappingCollection<dim> &mapping_collection,
+    template <int dim, int q_dim>
+    class FEValuesBase 
+    {
+      private:
+                                         /**
+                                          * Default mapping, in case
+                                          * none was provided through
+                                          * the call to the constructor.
+                                          */
+        static const MappingQ1<dim> default_mapping;
+
+      public:
+                                         /**
+                                          * Constructor. Set the fields
+                                          * of this class to the values
+                                          * indicated by the parameters
+                                          * to the constructor.
+                                          */
+        FEValuesBase (const MappingCollection<dim> &mapping_collection,
                       const QCollection<q_dim>     &qcollection,
                       const UpdateFlags             update_flags);
 
 
-                                       /**
-                                        * Constructor. Set the fields
-                                        * of this class to the values
-                                        * indicated by the parameters
-                                        * to the constructor, and
-                                        * choose a @p MappingQ1
-                                        * object for the mapping
-                                        * object.
-                                        */
-      hpFEValuesBase (const QCollection<q_dim> &qcollection,
+                                         /**
+                                          * Constructor. Set the fields
+                                          * of this class to the values
+                                          * indicated by the parameters
+                                          * to the constructor, and
+                                          * choose a @p MappingQ1
+                                          * object for the mapping
+                                          * object.
+                                          */
+        FEValuesBase (const QCollection<q_dim> &qcollection,
                       const UpdateFlags         update_flags);
 
 
-  protected:
-                                       /**
-                                       * A copy of the MappingCollection
-                                       * object, which was specified
-                                       * upon construction of the
-                                       * object.
-                                        */
-      const MappingCollection<dim> mapping_collection;
+      protected:
+                                         /**
+                                          * A copy of the MappingCollection
+                                          * object, which was specified
+                                          * upon construction of the
+                                          * object.
+                                          */
+        const MappingCollection<dim> mapping_collection;
     
-                                       /**
-                                        * Copy of the quadrature
-                                       * collection object
-                                        * provided to the
-                                        * constructor.
-                                        */
-      const QCollection<q_dim> qcollection;
-
-                                       /**
-                                        * Values of the update flags as
-                                        * given to the constructor.
-                                        */
-      const UpdateFlags update_flags;
-  };
-}
+                                         /**
+                                          * Copy of the quadrature
+                                          * collection object
+                                          * provided to the
+                                          * constructor.
+                                          */
+        const QCollection<q_dim> qcollection;
+
+                                         /**
+                                          * Values of the update flags as
+                                          * given to the constructor.
+                                          */
+        const UpdateFlags update_flags;
+    };
+  }
 
 
 
-template <int dim>
-class hpFEValues : public internal::FEValuesMap<dim,FEValues<dim> >,
-                   protected internal::hpFEValuesBase<dim,dim>
-{
-  public:
-                                     /**
-                                      * Constructor. Initialize this
-                                      * object with the given
-                                      * parameters.
-                                      *
-                                      * The finite element
-                                      * collection parameter is
-                                      * actually ignored, but is in
-                                      * the signature of this
-                                      * function to make it
-                                      * compatible with the
-                                      * signature of the respective
-                                      * constructor of the usual
-                                      * FEValues object, with
-                                      * the respective parameter in
-                                      * that function also being the
-                                      * return value of the
-                                      * DoFHandler<tt>::get_fe()</tt>
-                                      * function.
-                                      */
-    hpFEValues (const MappingCollection<dim> &mapping_collection,
+  template <int dim>
+  class FEValues : public hp::internal::FEValuesMap<dim,::FEValues<dim> >,
+                   protected hp::internal::FEValuesBase<dim,dim>
+  {
+    public:
+                                       /**
+                                        * Constructor. Initialize this
+                                        * object with the given
+                                        * parameters.
+                                        *
+                                        * The finite element
+                                        * collection parameter is
+                                        * actually ignored, but is in
+                                        * the signature of this
+                                        * function to make it
+                                        * compatible with the
+                                        * signature of the respective
+                                        * constructor of the usual
+                                        * FEValues object, with
+                                        * the respective parameter in
+                                        * that function also being the
+                                        * return value of the
+                                        * DoFHandler<tt>::get_fe()</tt>
+                                        * function.
+                                        */
+      FEValues (const MappingCollection<dim> &mapping_collection,
                 const FECollection<dim>      &fe_collection,
                 const QCollection<dim>       &qcollection,
                 const UpdateFlags             update_flags);
 
 
-                                     /**
-                                      * Constructor. Initialize this
-                                      * object with the given
-                                      * parameters, and choose a
-                                      * @p MappingQ1 object for the
-                                      * mapping object.
-                                      *
-                                      * The finite element
-                                      * collection parameter is
-                                      * actually ignored, but is in
-                                      * the signature of this
-                                      * function to make it
-                                      * compatible with the
-                                      * signature of the respective
-                                      * constructor of the usual
-                                      * FEValues object, with
-                                      * the respective parameter in
-                                      * that function also being the
-                                      * return value of the
-                                      * DoFHandler<tt>::get_fe()</tt>
-                                      * function.
-                                      */
-    hpFEValues (const FECollection<dim> &fe_collection,
+                                       /**
+                                        * Constructor. Initialize this
+                                        * object with the given
+                                        * parameters, and choose a
+                                        * @p MappingQ1 object for the
+                                        * mapping object.
+                                        *
+                                        * The finite element
+                                        * collection parameter is
+                                        * actually ignored, but is in
+                                        * the signature of this
+                                        * function to make it
+                                        * compatible with the
+                                        * signature of the respective
+                                        * constructor of the usual
+                                        * FEValues object, with
+                                        * the respective parameter in
+                                        * that function also being the
+                                        * return value of the
+                                        * DoFHandler<tt>::get_fe()</tt>
+                                        * function.
+                                        */
+      FEValues (const FECollection<dim> &fe_collection,
                 const QCollection<dim>  &qcollection,
                 const UpdateFlags        update_flags);
 
 
-                                     /**
-                                      * Reinitialize the object for
-                                      * the given cell. This selects
-                                      * the right @p FEValues object
-                                      * for the finite element in use
-                                      * by the cell given, and calling
-                                      * the @p reinit function on
-                                      * this object.
-                                      */
-    void
-    reinit (const typename hpDoFHandler<dim>::cell_iterator &cell);
-
-  protected:
-                                     /**
-                                      * Create an object of type
-                                      * @p FEValues for this
-                                      * particular finite element.
-                                      */
-    virtual
-    FEValues<dim> *
-    create_fe_values (const FiniteElement<dim> &fe,
-                     const unsigned int active_fe_index) const;
-};
-
-
-
-template <int dim>
-class hpFEFaceValues : public internal::FEValuesMap<dim,FEFaceValues<dim> >,
-                       protected internal::hpFEValuesBase<dim,dim-1>
-{
-  public:
-                                     /**
-                                      * Constructor. Initialize this
-                                      * object with the given
-                                      * parameters.
-                                      *
-                                      * The finite element
-                                      * collection parameter is
-                                      * actually ignored, but is in
-                                      * the signature of this
-                                      * function to make it
-                                      * compatible with the
-                                      * signature of the respective
-                                      * constructor of the usual
-                                      * FEValues object, with
-                                      * the respective parameter in
-                                      * that function also being the
-                                      * return value of the
-                                      * DoFHandler<tt>::get_fe()</tt>
-                                      * function.
-                                      */
-    hpFEFaceValues (const MappingCollection<dim> &mapping_collection,
+                                       /**
+                                        * Reinitialize the object for
+                                        * the given cell. This selects
+                                        * the right @p FEValues object
+                                        * for the finite element in use
+                                        * by the cell given, and calling
+                                        * the @p reinit function on
+                                        * this object.
+                                        */
+      void
+      reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell);
+
+    protected:
+                                       /**
+                                        * Create an object of type
+                                        * @p FEValues for this
+                                        * particular finite element.
+                                        */
+      virtual
+      ::FEValues<dim> *
+      create_fe_values (const FiniteElement<dim> &fe,
+                        const unsigned int active_fe_index) const;
+  };
+
+
+
+  template <int dim>
+  class FEFaceValues : public hp::internal::FEValuesMap<dim,::FEFaceValues<dim> >,
+                       protected hp::internal::FEValuesBase<dim,dim-1>
+  {
+    public:
+                                       /**
+                                        * Constructor. Initialize this
+                                        * object with the given
+                                        * parameters.
+                                        *
+                                        * The finite element
+                                        * collection parameter is
+                                        * actually ignored, but is in
+                                        * the signature of this
+                                        * function to make it
+                                        * compatible with the
+                                        * signature of the respective
+                                        * constructor of the usual
+                                        * FEValues object, with
+                                        * the respective parameter in
+                                        * that function also being the
+                                        * return value of the
+                                        * DoFHandler<tt>::get_fe()</tt>
+                                        * function.
+                                        */
+      FEFaceValues (const MappingCollection<dim> &mapping_collection,
                     const FECollection<dim>      &fe_collection,
                     const QCollection<dim-1>     &qcollection,
                     const UpdateFlags             update_flags);
 
 
-                                     /**
-                                      * Constructor. Initialize this
-                                      * object with the given
-                                      * parameters, and choose a
-                                      * @p MappingQ1 object for the
-                                      * mapping object.
-                                      *
-                                      * The finite element
-                                      * collection parameter is
-                                      * actually ignored, but is in
-                                      * the signature of this
-                                      * function to make it
-                                      * compatible with the
-                                      * signature of the respective
-                                      * constructor of the usual
-                                      * FEValues object, with
-                                      * the respective parameter in
-                                      * that function also being the
-                                      * return value of the
-                                      * DoFHandler<tt>::get_fe()</tt>
-                                      * function.
-                                      */
-    hpFEFaceValues (const FECollection<dim>  &fe_collection,
+                                       /**
+                                        * Constructor. Initialize this
+                                        * object with the given
+                                        * parameters, and choose a
+                                        * @p MappingQ1 object for the
+                                        * mapping object.
+                                        *
+                                        * The finite element
+                                        * collection parameter is
+                                        * actually ignored, but is in
+                                        * the signature of this
+                                        * function to make it
+                                        * compatible with the
+                                        * signature of the respective
+                                        * constructor of the usual
+                                        * FEValues object, with
+                                        * the respective parameter in
+                                        * that function also being the
+                                        * return value of the
+                                        * DoFHandler<tt>::get_fe()</tt>
+                                        * function.
+                                        */
+      FEFaceValues (const FECollection<dim>  &fe_collection,
                     const QCollection<dim-1> &qcollection,
                     const UpdateFlags         update_flags);
 
 
-                                     /**
-                                      * Reinitialize the object for
-                                      * the given cell. This selects
-                                      * the right @p FEValues object
-                                      * for the finite element in use
-                                      * by the cell given, and calling
-                                      * the @p reinit function on
-                                      * this object.
-                                      */
-    void
-    reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
-            const unsigned int face_no);
-
-
-                                     /**
-                                      * Reinitialize the object for
-                                      * the given cell. In this
-                                     * method, the user can specify
-                                     * which active_fe_index
-                                     * should be used to initialise
-                                     * the underlying FEValues
-                                     * object. This functionality
-                                     * is required, if the face terms
-                                     * between two cells with different
-                                     * polynomial degree should be
-                                     * assembled. In this case the
-                                     * values on the face of the
-                                     * lower order element have to
-                                     * be evaluated at the quadratrure
-                                     * points of the higher order
-                                     * element.
-                                      */
-    void
-    reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
-            const unsigned int face_no,
-           const unsigned int active_fe_index);
-
-  protected:
-                                     /**
-                                      * Create an object of type
-                                      * @p FEValues for this
-                                      * particular finite element.
-                                      */
-    virtual
-    FEFaceValues<dim> *
-    create_fe_values (const FiniteElement<dim> &fe,
-                     const unsigned int active_fe_index) const;
-};
-
-
-
-template <int dim>
-class hpFESubfaceValues : public internal::FEValuesMap<dim,FESubfaceValues<dim> >,
-                          protected internal::hpFEValuesBase<dim,dim-1>
-{
-  public:
-                                     /**
-                                      * Constructor. Initialize this
-                                      * object with the given
-                                      * parameters.
-                                      *
-                                      * The finite element
-                                      * collection parameter is
-                                      * actually ignored, but is in
-                                      * the signature of this
-                                      * function to make it
-                                      * compatible with the
-                                      * signature of the respective
-                                      * constructor of the usual
-                                      * FEValues object, with
-                                      * the respective parameter in
-                                      * that function also being the
-                                      * return value of the
-                                      * DoFHandler<tt>::get_fe()</tt>
-                                      * function.
-                                      */
-    hpFESubfaceValues (const MappingCollection<dim> &mapping_collection,
+                                       /**
+                                        * Reinitialize the object for
+                                        * the given cell. This selects
+                                        * the right @p FEValues object
+                                        * for the finite element in use
+                                        * by the cell given, and calling
+                                        * the @p reinit function on
+                                        * this object.
+                                        */
+      void
+      reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
+              const unsigned int face_no);
+
+
+                                       /**
+                                        * Reinitialize the object for
+                                        * the given cell. In this
+                                        * method, the user can specify
+                                        * which active_fe_index
+                                        * should be used to initialise
+                                        * the underlying FEValues
+                                        * object. This functionality
+                                        * is required, if the face terms
+                                        * between two cells with different
+                                        * polynomial degree should be
+                                        * assembled. In this case the
+                                        * values on the face of the
+                                        * lower order element have to
+                                        * be evaluated at the quadratrure
+                                        * points of the higher order
+                                        * element.
+                                        */
+      void
+      reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
+              const unsigned int face_no,
+              const unsigned int active_fe_index);
+
+    protected:
+                                       /**
+                                        * Create an object of type
+                                        * @p FEValues for this
+                                        * particular finite element.
+                                        */
+      virtual
+      ::FEFaceValues<dim> *
+      create_fe_values (const FiniteElement<dim> &fe,
+                        const unsigned int active_fe_index) const;
+  };
+
+
+
+  template <int dim>
+  class FESubfaceValues : public hp::internal::FEValuesMap<dim,::FESubfaceValues<dim> >,
+                          protected hp::internal::FEValuesBase<dim,dim-1>
+  {
+    public:
+                                       /**
+                                        * Constructor. Initialize this
+                                        * object with the given
+                                        * parameters.
+                                        *
+                                        * The finite element
+                                        * collection parameter is
+                                        * actually ignored, but is in
+                                        * the signature of this
+                                        * function to make it
+                                        * compatible with the
+                                        * signature of the respective
+                                        * constructor of the usual
+                                        * FEValues object, with
+                                        * the respective parameter in
+                                        * that function also being the
+                                        * return value of the
+                                        * DoFHandler<tt>::get_fe()</tt>
+                                        * function.
+                                        */
+      FESubfaceValues (const MappingCollection<dim> &mapping_collection,
                        const FECollection<dim>      &fe_collection,
                        const QCollection<dim-1>     &qcollection,
                        const UpdateFlags             update_flags);
 
 
-                                     /**
-                                      * Constructor. Initialize this
-                                      * object with the given
-                                      * parameters, and choose a
-                                      * @p MappingQ1 object for the
-                                      * mapping object.
-                                      *
-                                      * The finite element
-                                      * collection parameter is
-                                      * actually ignored, but is in
-                                      * the signature of this
-                                      * function to make it
-                                      * compatible with the
-                                      * signature of the respective
-                                      * constructor of the usual
-                                      * FEValues object, with
-                                      * the respective parameter in
-                                      * that function also being the
-                                      * return value of the
-                                      * DoFHandler<tt>::get_fe()</tt>
-                                      * function.
-                                      */
-    hpFESubfaceValues (const FECollection<dim>  &fe_collection,
+                                       /**
+                                        * Constructor. Initialize this
+                                        * object with the given
+                                        * parameters, and choose a
+                                        * @p MappingQ1 object for the
+                                        * mapping object.
+                                        *
+                                        * The finite element
+                                        * collection parameter is
+                                        * actually ignored, but is in
+                                        * the signature of this
+                                        * function to make it
+                                        * compatible with the
+                                        * signature of the respective
+                                        * constructor of the usual
+                                        * FEValues object, with
+                                        * the respective parameter in
+                                        * that function also being the
+                                        * return value of the
+                                        * DoFHandler<tt>::get_fe()</tt>
+                                        * function.
+                                        */
+      FESubfaceValues (const FECollection<dim>  &fe_collection,
                        const QCollection<dim-1> &qcollection,
                        const UpdateFlags         update_flags);
 
 
-                                     /**
-                                      * Reinitialize the object for
-                                      * the given cell. This selects
-                                      * the right @p FEValues object
-                                      * for the finite element in use
-                                      * by the cell given, and calling
-                                      * the @p reinit function on
-                                      * this object.
-                                      */
-    void
-    reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
-            const unsigned int face_no,
-            const unsigned int subface_no);
-
-
-                                     /**
-                                      * Reinitialize the object for
-                                      * the given cell. In this
-                                     * method, the user can specify
-                                     * which active_fe_index
-                                     * should be used to initialise
-                                     * the underlying FEValues
-                                     * object. This functionality
-                                     * is required, if the face terms
-                                     * between two cells with different
-                                     * polynomial degree should be
-                                     * assembled. In this case the
-                                     * values on the face of the
-                                     * lower order element have to
-                                     * be evaluated at the quadratrure
-                                     * points of the higher order
-                                     * element.
-                                      */
-    void
-    reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
-            const unsigned int face_no,
-            const unsigned int subface_no,
-           const unsigned int active_fe_index);
-
-
-  protected:
-                                     /**
-                                      * Create an object of type
-                                      * @p FEValues for this
-                                      * particular finite element.
-                                      */
-    virtual
-    FESubfaceValues<dim> *
-    create_fe_values (const FiniteElement<dim> &fe,
-                     const unsigned int active_fe_index) const;
-};
+                                       /**
+                                        * Reinitialize the object for
+                                        * the given cell. This selects
+                                        * the right @p FEValues object
+                                        * for the finite element in use
+                                        * by the cell given, and calling
+                                        * the @p reinit function on
+                                        * this object.
+                                        */
+      void
+      reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
+              const unsigned int face_no,
+              const unsigned int subface_no);
+
+
+                                       /**
+                                        * Reinitialize the object for
+                                        * the given cell. In this
+                                        * method, the user can specify
+                                        * which active_fe_index
+                                        * should be used to initialise
+                                        * the underlying FEValues
+                                        * object. This functionality
+                                        * is required, if the face terms
+                                        * between two cells with different
+                                        * polynomial degree should be
+                                        * assembled. In this case the
+                                        * values on the face of the
+                                        * lower order element have to
+                                        * be evaluated at the quadratrure
+                                        * points of the higher order
+                                        * element.
+                                        */
+      void
+      reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
+              const unsigned int face_no,
+              const unsigned int subface_no,
+              const unsigned int active_fe_index);
+
+
+    protected:
+                                       /**
+                                        * Create an object of type
+                                        * @p FEValues for this
+                                        * particular finite element.
+                                        */
+      virtual
+      ::FESubfaceValues<dim> *
+      create_fe_values (const FiniteElement<dim> &fe,
+                        const unsigned int active_fe_index) const;
+  };
 
 
 // -------------- inline and template functions --------------
 
-namespace internal 
-{
-  template <int dim, class FEValues>
-  inline
-  const FEValues &
-  FEValuesMap<dim,FEValues>::get_present_fe_values () const
+  namespace internal 
   {
-    return *present_fe_values;
+    template <int dim, class FEValues>
+    inline
+    const FEValues &
+    FEValuesMap<dim,FEValues>::get_present_fe_values () const
+    {
+      return *present_fe_values;
+    }
   }
+  
 }
 
 
-
-
 #endif
index ed111e59be23a9038899e3bf712d3c46191c18fc..65377a67ee841dedbc2353b142694e545f5f4efc 100644 (file)
@@ -25,7 +25,7 @@
 
 /**
  * This class implements a collection of mapping objects used in the
- * hpDoFHandler(). It is thus to a hpDoFHandler() what a Mapping is to a
+ * hp::DoFHandler(). It is thus to a hp::DoFHandler() what a Mapping is to a
  * DoFHandler. This collection stores pointers to the original mapping
  * objects added to it. Hence the handling of the memory consumed by
  * the mapping objects must be done by the user of the class.
index 788c1197808a8cf9544bec9e2b73e58e677dc34b..aba72b788f079a143844357985557edb306a18d7 100644 (file)
@@ -24,7 +24,7 @@
 
 /**
  * This class implements a collection of quadrature objects used in the
- * hpDoFHandler(). It is thus to a hpDoFHandler() what a Quadrature is to a
+ * hp::DoFHandler(). It is thus to a hp::DoFHandler() what a Quadrature is to a
  * DoFHandler. This collection stores pointers to the original quadrature
  * elements added to it. Hence the handling of the memory consumed by
  * the quadrature objects must be done by the user of the class.
index 3e2cd83028f76dce511c9addfe47486855ba14bb..6064ba0e56102ffff0ad3b3dbd6bdadf2b891bb3 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 2003 by the deal.II authors
+//    Copyright (C) 2003, 2006 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
 #include <base/config.h>
 
 template <int> class DoFHandler;
-template <int> class hpDoFHandler;
+template <int> class hp::DoFHandler;
 
 template <int> class FEValues;
 template <int> class FEFaceValues;
 template <int> class FESubfaceValues;
 
-template <int> class hpFEValues;
-template <int> class hpFEFaceValues;
-template <int> class hpFESubfaceValues;
+namespace hp
+{
+  template <int> class FEValues;
+  template <int> class FEFaceValues;
+  template <int> class FESubfaceValues;
+}
 
 
 
@@ -38,11 +41,11 @@ template <int dim> struct SelectFEValues<DoFHandler<dim> >
 };
 
 
-template <int dim> struct SelectFEValues<hpDoFHandler<dim> >
+template <int dim> struct SelectFEValues<hp::DoFHandler<dim> >
 {
-    typedef hpFEValues<dim>        FEValues;
-    typedef hpFEFaceValues<dim>    FEFaceValues;
-    typedef hpFESubfaceValues<dim> FESubfaceValues;
+    typedef hp::FEValues<dim>        FEValues;
+    typedef hp::FEFaceValues<dim>    FEFaceValues;
+    typedef hp::FESubfaceValues<dim> FESubfaceValues;
 };
 
 
index 2b5ac9cc273c96f68b9b084ff6ff91afe89826a8..f2e7c96f96f21ff8b6d7e9b9cb1044f42be952ee 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 by the deal.II authors
+//    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
@@ -28,7 +28,10 @@ template <int dim> class Boundary;
 template <int dim> class StraightBoundary;
 template <int dim> class TriangulationLevel;
 template <int dim> class DoFHandler;
-template <int dim> class hpDoFHandler;
+namespace hp
+{
+  template <int dim> class DoFHandler;
+}
 template <int dim> class MGDoFHandler;
 
 /*------------------------------------------------------------------------*/
@@ -1598,7 +1601,7 @@ class Triangulation : public Subscriptor
                                      *  post_refinement_notification().
                                      *  Both methods are called in the method
                                      *  execute_coarsening_and_refinement().
-                                     *  For an example see hpDoFHandler().
+                                     *  For an example see hp::DoFHandler().
                                      */
     class RefinementListener
     {
@@ -3431,7 +3434,7 @@ class Triangulation : public Subscriptor
     friend class TriaRawIterator<3,CellAccessor<3> >;
 
     friend class DoFHandler<dim>;
-    friend class hpDoFHandler<dim>;
+    friend class hp::DoFHandler<dim>;
     friend class MGDoFHandler<dim>;
 };
 
index 73b5bd486c4352f94ae1cc15785fe71361025085..5bc115ecdbfd18d52e91cb3ea0e7b3e3260207f1 100644 (file)
@@ -20,7 +20,7 @@
 #include <utility>
 
 template <int dim> class DoFHandler;
-template <int dim> class hpDoFHandler;
+template <int dim> class hp::DoFHandler;
 
 
 
index 57d2d3a3e13098aa087d835dd3d7ca807e6bdc41..1a96b6665fadcba1ef8819749eb35670d8005b9e 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 by the deal.II authors
+//    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
@@ -31,7 +31,10 @@ template <typename number> class Vector;
 template <typename number> class FullMatrix;
 template <int dim> class Mapping;
 template <int dim> class DoFHandler;
-template <int dim> class hpDoFHandler;
+namespace hp
+{
+  template <int dim> class DoFHandler;
+}
 class ConstraintMatrix;
 
 
@@ -693,12 +696,12 @@ class VectorTools
                                     /**
                                      * Declaration of specialization
                                      * of the previous function for
-                                     * 1d and a hpDoFHandler().
+                                     * 1d and a hp::DoFHandler().
                                      */
     static
     void
     interpolate_boundary_values (const Mapping<1>              &mapping,
-                                 const hpDoFHandler<1>         &dof,
+                                 const hp::DoFHandler<1>         &dof,
                                  const FunctionMap<1>::type    &function_map,
                                  std::map<unsigned int,double> &boundary_values,
                                  const std::vector<bool>       &component_mask = std::vector<bool>());
index 156850c5bda84f6f6b6a295ddf0332c1cf090832..29cc10c8e6dd6f7c224bf7a30b7eaade97830be4 100644 (file)
@@ -714,7 +714,7 @@ VectorTools::create_boundary_right_hand_side (const DoFHandler<dim>   &dof_handl
 #if deal_II_dimension == 1
 
 //TODO[?] Actually the Mapping object should be a MappingCollection object for the
-// hpDoFHandler.
+// hp::DoFHandler.
 template <template <int> class DH>
 void
 VectorTools::interpolate_boundary_values (const Mapping<1>         &,
@@ -791,7 +791,7 @@ VectorTools::interpolate_boundary_values (const Mapping<1>         &,
 
 
 //TODO[?] Actually the Mapping object should be a MappingCollection object for the
-// hpDoFHandler.
+// hp::DoFHandler.
 void
 VectorTools::interpolate_boundary_values (const Mapping<1>              &mapping,
                                          const DoFHandler<1>           &dof,
@@ -807,10 +807,10 @@ VectorTools::interpolate_boundary_values (const Mapping<1>              &mapping
 
 
 //TODO[?] Actually the Mapping object should be a MappingCollection object for the
-// hpDoFHandler.
+// hp::DoFHandler.
 void
 VectorTools::interpolate_boundary_values (const Mapping<1>              &mapping,
-                                         const hpDoFHandler<1>           &dof,
+                                         const hp::DoFHandler<1>           &dof,
                                          const FunctionMap<1>::type    &function_map,
                                          std::map<unsigned int,double> &boundary_values,
                                          const std::vector<bool>       &component_mask)
@@ -1111,8 +1111,8 @@ VectorTools::interpolate_boundary_values (const Mapping<dim>            &mapping
 
 
   
-//TODO[?] Change for real hpDoFHandler
-// This function might not work anymore if the real hpDoFHandler is available.
+//TODO[?] Change for real hp::DoFHandler
+// This function might not work anymore if the real hp::DoFHandler is available.
 template <int dim, template <int> class DH>
 void
 VectorTools::interpolate_boundary_values (const DH<dim>                 &dof,
@@ -1129,8 +1129,8 @@ VectorTools::interpolate_boundary_values (const DH<dim>                 &dof,
 
 
 
-//TODO[?] Change for real hpDoFHandler
-// This function might not work anymore if the real hpDoFHandler is available.
+//TODO[?] Change for real hp::DoFHandler
+// This function might not work anymore if the real hp::DoFHandler is available.
 template <int dim, template <int> class DH>
 void
 VectorTools::interpolate_boundary_values (const DH<dim>                 &dof,
index 83ccdb4cccb1b564a2302812c5d83e02db9af050..7a4b419e45af6ebe8fcb46bc33cdfb476fbfe498 100644 (file)
@@ -1141,94 +1141,94 @@ template class TriaActiveIterator<deal_II_dimension,DoFCellAccessor<deal_II_dime
 
 
 // --------------------------------------------------------------------------
-// explicit instantiations (for hpDoFHandler)
+// explicit instantiations (for hp::DoFHandler)
 
 
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<double>,double>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<double>,double>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<double>,float>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<float>,double>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<float>,double>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<double>,float>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<float>,float>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<float>,float>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
 // for block vector
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,double>
 (const BlockVector<double> &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,float>
 (const BlockVector<double> &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,double>
 (const BlockVector<float> &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,float>
 (const Vector<float>&, BlockVector<float>&) const;
 
 // for Petsc vectors
 #if DEAL_II_USE_PETSC
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::get_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::get_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,double>
 (const Vector<double> &, PETScWrappers::Vector&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 #endif
 
@@ -1236,89 +1236,89 @@ DoFObjectAccessor<1,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrapper
 #if deal_II_dimension >= 2
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<double>,double>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<double>,double>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<double>,float>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<float>,double>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<float>,double>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<double>,float>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<float>,float>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<float>,float>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
 // for block vector
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,double>
 (const BlockVector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,float>
 (const BlockVector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,double>
 (const BlockVector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,float>
 (const Vector<float>&, BlockVector<float>&) const;
 
 // for Petsc vectors
 #if DEAL_II_USE_PETSC
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::get_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::get_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,double>
 (const Vector<double> &, PETScWrappers::Vector&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 #endif
 
@@ -1328,35 +1328,35 @@ DoFObjectAccessor<2,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrapper
 // for double
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<double>,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<double>,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<double>,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<float>,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<float>,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<double>,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<Vector<float>,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<float>,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
@@ -1364,35 +1364,35 @@ DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<Vector<float
 // for block vector
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,double>
 (const BlockVector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,float>
 (const BlockVector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,double>
 (const BlockVector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,float>
 (const Vector<float>&, BlockVector<float>&) const;
 
 
@@ -1400,36 +1400,36 @@ DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<BlockVector<
 #ifdef DEAL_II_USE_PETSC
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,double>
 (const Vector<double> &, PETScWrappers::Vector&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<PETScWrappers::BlockVector,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::BlockVector,double>
 (const PETScWrappers::BlockVector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::get_dof_values<PETScWrappers::BlockVector,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::BlockVector,float>
 (const PETScWrappers::BlockVector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrappers::BlockVector,double>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::BlockVector,double>
 (const Vector<double>&, PETScWrappers::BlockVector &) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrappers::BlockVector,float>
+DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::BlockVector,float>
 (const Vector<float>&, PETScWrappers::BlockVector&) const;
 #endif
 #endif
@@ -1438,92 +1438,92 @@ DoFObjectAccessor<3,deal_II_dimension,hpDoFHandler>::set_dof_values<PETScWrapper
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<BlockVector<double>,double>
 (const BlockVector<double>&, Vector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<BlockVector<double>,float>
 (const BlockVector<double>&, Vector<float>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<BlockVector<float>,double>
 (const BlockVector<float>&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<BlockVector<float>,float>
 (const Vector<float>&, BlockVector<float>&) const;
 
@@ -1531,84 +1531,84 @@ set_dof_values_by_interpolation<BlockVector<float>,float>
 #ifdef DEAL_II_USE_PETSC
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<PETScWrappers::Vector,double>
 (const Vector<double>&, PETScWrappers::Vector&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<PETScWrappers::BlockVector,double>
 (const PETScWrappers::BlockVector&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<PETScWrappers::BlockVector,double>
 (const Vector<double>&, PETScWrappers::BlockVector&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 get_interpolated_dof_values<PETScWrappers::BlockVector,float>
 (const PETScWrappers::BlockVector&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hpDoFHandler>::
+DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
 set_dof_values_by_interpolation<PETScWrappers::BlockVector,float>
 (const Vector<float>&, PETScWrappers::BlockVector&) const;
 #endif
 
 
-template class DoFAccessor<deal_II_dimension, hpDoFHandler>;
+template class DoFAccessor<deal_II_dimension, hp::DoFHandler>;
 
 #if deal_II_dimension == 1
-template class DoFObjectAccessor<1, 1, hpDoFHandler>;
+template class DoFObjectAccessor<1, 1, hp::DoFHandler>;
 #endif
 
 #if deal_II_dimension == 2
-template class DoFObjectAccessor<1, 2, hpDoFHandler>;
-template class DoFObjectAccessor<2, 2, hpDoFHandler>;
+template class DoFObjectAccessor<1, 2, hp::DoFHandler>;
+template class DoFObjectAccessor<2, 2, hp::DoFHandler>;
 
-template class TriaRawIterator   <2,DoFObjectAccessor<1, 2, hpDoFHandler> >;
-template class TriaIterator      <2,DoFObjectAccessor<1, 2, hpDoFHandler> >;
-template class TriaActiveIterator<2,DoFObjectAccessor<1, 2, hpDoFHandler> >;
+template class TriaRawIterator   <2,DoFObjectAccessor<1, 2, hp::DoFHandler> >;
+template class TriaIterator      <2,DoFObjectAccessor<1, 2, hp::DoFHandler> >;
+template class TriaActiveIterator<2,DoFObjectAccessor<1, 2, hp::DoFHandler> >;
 #endif
 
 
 #if deal_II_dimension == 3
-template class DoFObjectAccessor<1, 3, hpDoFHandler>;
-template class DoFObjectAccessor<2, 3, hpDoFHandler>;
-template class DoFObjectAccessor<3, 3, hpDoFHandler>;
-
-template class TriaRawIterator   <3,DoFObjectAccessor<1, 3, hpDoFHandler> >;
-template class TriaIterator      <3,DoFObjectAccessor<1, 3, hpDoFHandler> >;
-template class TriaActiveIterator<3,DoFObjectAccessor<1, 3, hpDoFHandler> >;
-template class TriaRawIterator   <3,DoFObjectAccessor<2, 3, hpDoFHandler> >;
-template class TriaIterator      <3,DoFObjectAccessor<2, 3, hpDoFHandler> >;
-template class TriaActiveIterator<3,DoFObjectAccessor<2, 3, hpDoFHandler> >;
+template class DoFObjectAccessor<1, 3, hp::DoFHandler>;
+template class DoFObjectAccessor<2, 3, hp::DoFHandler>;
+template class DoFObjectAccessor<3, 3, hp::DoFHandler>;
+
+template class TriaRawIterator   <3,DoFObjectAccessor<1, 3, hp::DoFHandler> >;
+template class TriaIterator      <3,DoFObjectAccessor<1, 3, hp::DoFHandler> >;
+template class TriaActiveIterator<3,DoFObjectAccessor<1, 3, hp::DoFHandler> >;
+template class TriaRawIterator   <3,DoFObjectAccessor<2, 3, hp::DoFHandler> >;
+template class TriaIterator      <3,DoFObjectAccessor<2, 3, hp::DoFHandler> >;
+template class TriaActiveIterator<3,DoFObjectAccessor<2, 3, hp::DoFHandler> >;
 #endif
 
 
-template class DoFCellAccessor<deal_II_dimension, hpDoFHandler>;
+template class DoFCellAccessor<deal_II_dimension, hp::DoFHandler>;
 
-template class TriaRawIterator   <deal_II_dimension,DoFCellAccessor<deal_II_dimension, hpDoFHandler> >;
-template class TriaIterator      <deal_II_dimension,DoFCellAccessor<deal_II_dimension, hpDoFHandler> >;
-template class TriaActiveIterator<deal_II_dimension,DoFCellAccessor<deal_II_dimension, hpDoFHandler> >;
+template class TriaRawIterator   <deal_II_dimension,DoFCellAccessor<deal_II_dimension, hp::DoFHandler> >;
+template class TriaIterator      <deal_II_dimension,DoFCellAccessor<deal_II_dimension, hp::DoFHandler> >;
+template class TriaActiveIterator<deal_II_dimension,DoFCellAccessor<deal_II_dimension, hp::DoFHandler> >;
 
index 0380ec24d8f2e61d648af9206e9b495d11ca0ece..710d0ecbf6321719dd706acad7128b7b332569a9 100644 (file)
@@ -1261,17 +1261,17 @@ DoFRenumbering::compute_Cuthill_McKee<DoFHandler<deal_II_dimension> >
 
 
 template
-void DoFRenumbering::Cuthill_McKee<hpDoFHandler<deal_II_dimension> >
-(hpDoFHandler<deal_II_dimension>&,
+void DoFRenumbering::Cuthill_McKee<hp::DoFHandler<deal_II_dimension> >
+(hp::DoFHandler<deal_II_dimension>&,
  const bool,
  const bool,
  const std::vector<unsigned int>&);
 
 template
 void
-DoFRenumbering::compute_Cuthill_McKee<hpDoFHandler<deal_II_dimension> >
+DoFRenumbering::compute_Cuthill_McKee<hp::DoFHandler<deal_II_dimension> >
 (std::vector<unsigned int>&,
- const hpDoFHandler<deal_II_dimension>&,
+ const hp::DoFHandler<deal_II_dimension>&,
  const bool,
  const bool,
  const std::vector<unsigned int>&);
@@ -1342,45 +1342,45 @@ DoFRenumbering::compute_clockwise_dg<DoFHandler<deal_II_dimension> >
  const Point<deal_II_dimension>&,
  const bool);
 
-// DG renumbering for hpDoFHandler
+// DG renumbering for hp::DoFHandler
 
 template
 void
-DoFRenumbering::cell_wise_dg<hpDoFHandler<deal_II_dimension> >
-(hpDoFHandler<deal_II_dimension>&,
- const std::vector<hpDoFHandler<deal_II_dimension>::cell_iterator>&);
+DoFRenumbering::cell_wise_dg<hp::DoFHandler<deal_II_dimension> >
+(hp::DoFHandler<deal_II_dimension>&,
+ const std::vector<hp::DoFHandler<deal_II_dimension>::cell_iterator>&);
 
 template
 void
-DoFRenumbering::compute_cell_wise_dg<hpDoFHandler<deal_II_dimension> >
+DoFRenumbering::compute_cell_wise_dg<hp::DoFHandler<deal_II_dimension> >
 (std::vector<unsigned int>&,
- const hpDoFHandler<deal_II_dimension>&,
- const std::vector<hpDoFHandler<deal_II_dimension>::cell_iterator>&);
+ const hp::DoFHandler<deal_II_dimension>&,
+ const std::vector<hp::DoFHandler<deal_II_dimension>::cell_iterator>&);
 
 template
 void
-DoFRenumbering::downstream_dg<hpDoFHandler<deal_II_dimension> >
-(hpDoFHandler<deal_II_dimension>&,
+DoFRenumbering::downstream_dg<hp::DoFHandler<deal_II_dimension> >
+(hp::DoFHandler<deal_II_dimension>&,
  const Point<deal_II_dimension>&);
 
 template
 void
-DoFRenumbering::compute_downstream_dg<hpDoFHandler<deal_II_dimension> >
+DoFRenumbering::compute_downstream_dg<hp::DoFHandler<deal_II_dimension> >
 (std::vector<unsigned int>&,
- const hpDoFHandler<deal_II_dimension>&,
+ const hp::DoFHandler<deal_II_dimension>&,
  const Point<deal_II_dimension>&);
 
 template
 void
-DoFRenumbering::clockwise_dg<hpDoFHandler<deal_II_dimension> >
-(hpDoFHandler<deal_II_dimension>&,
+DoFRenumbering::clockwise_dg<hp::DoFHandler<deal_II_dimension> >
+(hp::DoFHandler<deal_II_dimension>&,
  const Point<deal_II_dimension>&, bool);
 
 template
 void
-DoFRenumbering::compute_clockwise_dg<hpDoFHandler<deal_II_dimension> >
+DoFRenumbering::compute_clockwise_dg<hp::DoFHandler<deal_II_dimension> >
 (std::vector<unsigned int>&,
- const hpDoFHandler<deal_II_dimension>&,
+ const hp::DoFHandler<deal_II_dimension>&,
  const Point<deal_II_dimension>&,
  const bool);
 
@@ -1424,24 +1424,24 @@ DoFRenumbering::compute_sort_selected_dofs_back
 
 template
 void DoFRenumbering::random
-(hpDoFHandler<deal_II_dimension> &);
+(hp::DoFHandler<deal_II_dimension> &);
 
 template
 void
 DoFRenumbering::compute_random
 (std::vector<unsigned int>&,
- const hpDoFHandler<deal_II_dimension> &);
+ const hp::DoFHandler<deal_II_dimension> &);
 
 template
 void DoFRenumbering::sort_selected_dofs_back
-(hpDoFHandler<deal_II_dimension> &,
+(hp::DoFHandler<deal_II_dimension> &,
  const std::vector<bool> &);
 
 template
 void
 DoFRenumbering::compute_sort_selected_dofs_back
 (std::vector<unsigned int>&,
- const hpDoFHandler<deal_II_dimension> &,
+ const hp::DoFHandler<deal_II_dimension> &,
  const std::vector<bool> &);
 
 template
index e11ec399d492280bcd71d8fd1e5c24ff1b298eaa..d2d21c565cc9a745df1617f804ac77531f275bcb 100644 (file)
@@ -83,10 +83,10 @@ namespace
     return dh.get_fe().is_primitive();
   }
 
-  // Functions for the hpDoFHandler
+  // Functions for the hp::DoFHandler
   template <int dim>
   unsigned int
-  max_dofs_per_cell (const hpDoFHandler<dim> &dh) 
+  max_dofs_per_cell (const hp::DoFHandler<dim> &dh) 
   {
     return dh.get_fe().max_dofs_per_cell ();
   }
@@ -95,7 +95,7 @@ namespace
 
   template <int dim>
   unsigned int
-  max_dofs_per_face (const hpDoFHandler<dim> &dh) 
+  max_dofs_per_face (const hp::DoFHandler<dim> &dh) 
   {
     return dh.get_fe().max_dofs_per_face ();
   }
@@ -104,7 +104,7 @@ namespace
 
   template <int dim>
   unsigned int
-  max_dofs_per_vertex (const hpDoFHandler<dim> &dh) 
+  max_dofs_per_vertex (const hp::DoFHandler<dim> &dh) 
   {
     return dh.get_fe().max_dofs_per_vertex ();
   }
@@ -113,7 +113,7 @@ namespace
 
   template <int dim>
   unsigned int
-  n_components (const hpDoFHandler<dim> &dh) 
+  n_components (const hp::DoFHandler<dim> &dh) 
   {
 //TODO:[?] Verify that this is really correct
     return dh.get_fe().get_fe(0).n_components();
@@ -123,7 +123,7 @@ namespace
 
   template <int dim>
   unsigned int
-  fe_is_primitive (const hpDoFHandler<dim> &dh) 
+  fe_is_primitive (const hp::DoFHandler<dim> &dh) 
   {
 //TODO:[?] Verify that this is really correct
     return dh.get_fe().get_fe(0).is_primitive();
@@ -1369,7 +1369,7 @@ void DoFTools::make_hanging_node_constraints (
 
 
 void DoFTools::make_hanging_node_constraints (
-  const hpDoFHandler<1> &,
+  const hp::DoFHandler<1> &,
   ConstraintMatrix &)
 {
                                   // nothing to be done here
@@ -1465,7 +1465,7 @@ void DoFTools::make_hanging_node_constraints (
 
 
 void DoFTools::make_hanging_node_constraints (
-    const hpDoFHandler<2> &/*dof_handler*/,
+    const hp::DoFHandler<2> &/*dof_handler*/,
     ConstraintMatrix    &/*constraints*/)
 {
 //TODO[?]: Implement (required for continuous elements)
@@ -1616,7 +1616,7 @@ void DoFTools::make_hanging_node_constraints (
 
 
 void DoFTools::make_hanging_node_constraints (
-    const hpDoFHandler<3> &/*dof_handler*/,
+    const hp::DoFHandler<3> &/*dof_handler*/,
     ConstraintMatrix    &/*constraints*/)
 {
 //TODO:[?] Implement (required for continuous elements)
@@ -3557,7 +3557,7 @@ DoFTools::compute_row_length_vector(
 
 template void
 DoFTools::compute_row_length_vector(
-  const hpDoFHandler<deal_II_dimension>& dofs, std::vector<unsigned int>& row_lengths,
+  const hp::DoFHandler<deal_II_dimension>& dofs, std::vector<unsigned int>& row_lengths,
   const Coupling flux_coupling);
 
 template void
@@ -3567,7 +3567,7 @@ DoFTools::compute_row_length_vector(
 
 template void
 DoFTools::compute_row_length_vector(
-  const hpDoFHandler<deal_II_dimension>& dofs, std::vector<unsigned int>& row_lengths,
+  const hp::DoFHandler<deal_II_dimension>& dofs, std::vector<unsigned int>& row_lengths,
   const Table<2,Coupling>& couplings, const Table<2,Coupling>& flux_couplings);
 
 template void
@@ -3575,8 +3575,8 @@ DoFTools::make_sparsity_pattern<deal_II_dimension,SparsityPattern,DoFHandler>
 (const DoFHandler<deal_II_dimension> &dof,
  SparsityPattern    &sparsity);
 template void
-DoFTools::make_sparsity_pattern<deal_II_dimension,SparsityPattern,hpDoFHandler>
-(const hpDoFHandler<deal_II_dimension> &dof,
+DoFTools::make_sparsity_pattern<deal_II_dimension,SparsityPattern,hp::DoFHandler>
+(const hp::DoFHandler<deal_II_dimension> &dof,
  SparsityPattern    &sparsity);
 
 template void
@@ -3584,8 +3584,8 @@ DoFTools::make_sparsity_pattern<deal_II_dimension,CompressedSparsityPattern,DoFH
 (const DoFHandler<deal_II_dimension> &dof,
  CompressedSparsityPattern    &sparsity);
 template void
-DoFTools::make_sparsity_pattern<deal_II_dimension,CompressedSparsityPattern,hpDoFHandler>
-(const hpDoFHandler<deal_II_dimension> &dof,
+DoFTools::make_sparsity_pattern<deal_II_dimension,CompressedSparsityPattern,hp::DoFHandler>
+(const hp::DoFHandler<deal_II_dimension> &dof,
  CompressedSparsityPattern    &sparsity);
 
 template void
@@ -3593,8 +3593,8 @@ DoFTools::make_sparsity_pattern<deal_II_dimension,BlockSparsityPattern,DoFHandle
 (const DoFHandler<deal_II_dimension> &dof,
  BlockSparsityPattern                &sparsity);
 template void
-DoFTools::make_sparsity_pattern<deal_II_dimension,BlockSparsityPattern,hpDoFHandler>
-(const hpDoFHandler<deal_II_dimension> &dof,
+DoFTools::make_sparsity_pattern<deal_II_dimension,BlockSparsityPattern,hp::DoFHandler>
+(const hp::DoFHandler<deal_II_dimension> &dof,
  BlockSparsityPattern                &sparsity);
 
 template void
@@ -3602,8 +3602,8 @@ DoFTools::make_sparsity_pattern<deal_II_dimension,CompressedBlockSparsityPattern
 (const DoFHandler<deal_II_dimension> &dof,
  CompressedBlockSparsityPattern      &sparsity);
 template void
-DoFTools::make_sparsity_pattern<deal_II_dimension,CompressedBlockSparsityPattern,hpDoFHandler>
-(const hpDoFHandler<deal_II_dimension> &dof,
+DoFTools::make_sparsity_pattern<deal_II_dimension,CompressedBlockSparsityPattern,hp::DoFHandler>
+(const hp::DoFHandler<deal_II_dimension> &dof,
  CompressedBlockSparsityPattern      &sparsity);
 
 
@@ -3631,7 +3631,7 @@ DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,SparsityPattern>
  SparsityPattern    &);
 template void
 DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,SparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const std::vector<unsigned int>  &,
  SparsityPattern    &);
 template void
@@ -3641,7 +3641,7 @@ DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,CompressedSparsityPat
  CompressedSparsityPattern    &);
 template void
 DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,CompressedSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const std::vector<unsigned int>  &,
  CompressedSparsityPattern    &);
 template void
@@ -3651,7 +3651,7 @@ DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,BlockSparsityPattern>
  BlockSparsityPattern    &);
 template void
 DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,BlockSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const std::vector<unsigned int>  &,
  BlockSparsityPattern    &);
 template void
@@ -3661,7 +3661,7 @@ DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,CompressedBlockSparsi
  CompressedBlockSparsityPattern    &);
 template void
 DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,CompressedBlockSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const std::vector<unsigned int>  &,
  CompressedBlockSparsityPattern    &);
 
@@ -3673,7 +3673,7 @@ DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,SparsityPattern>
  SparsityPattern    &sparsity);
 template void
 DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,SparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const FunctionMap<deal_II_dimension>::type  &boundary_indicators,
  const std::vector<unsigned int>  &dof_to_boundary_mapping,
  SparsityPattern    &sparsity);
@@ -3685,7 +3685,7 @@ DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,CompressedSparsityPat
  CompressedSparsityPattern    &sparsity);
 template void
 DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,CompressedSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const FunctionMap<deal_II_dimension>::type  &boundary_indicators,
  const std::vector<unsigned int>  &dof_to_boundary_mapping,
  CompressedSparsityPattern    &sparsity);
@@ -3697,7 +3697,7 @@ DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,BlockSparsityPattern>
  BlockSparsityPattern    &sparsity);
 template void
 DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,BlockSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const FunctionMap<deal_II_dimension>::type  &boundary_indicators,
  const std::vector<unsigned int>  &dof_to_boundary_mapping,
  BlockSparsityPattern    &sparsity);
@@ -3709,7 +3709,7 @@ DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,CompressedBlockSparsi
  CompressedBlockSparsityPattern    &sparsity);
 template void
 DoFTools::make_boundary_sparsity_pattern<deal_II_dimension,CompressedBlockSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const FunctionMap<deal_II_dimension>::type  &boundary_indicators,
  const std::vector<unsigned int>  &dof_to_boundary_mapping,
  CompressedBlockSparsityPattern    &sparsity);
@@ -3723,7 +3723,7 @@ DoFTools::make_boundary_sparsity_pattern<SparsityPattern>
  SparsityPattern    &);
 template void
 DoFTools::make_boundary_sparsity_pattern<SparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const std::vector<unsigned int>  &,
  SparsityPattern    &);
 template void
@@ -3733,7 +3733,7 @@ DoFTools::make_boundary_sparsity_pattern<CompressedSparsityPattern>
  CompressedSparsityPattern    &);
 template void
 DoFTools::make_boundary_sparsity_pattern<CompressedSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const std::vector<unsigned int>  &,
  CompressedSparsityPattern    &);
 template void
@@ -3743,7 +3743,7 @@ DoFTools::make_boundary_sparsity_pattern<BlockSparsityPattern>
  BlockSparsityPattern    &);
 template void
 DoFTools::make_boundary_sparsity_pattern<BlockSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const std::vector<unsigned int>  &,
  BlockSparsityPattern    &);
 template void
@@ -3753,7 +3753,7 @@ DoFTools::make_boundary_sparsity_pattern<CompressedBlockSparsityPattern>
  CompressedBlockSparsityPattern    &);
 template void
 DoFTools::make_boundary_sparsity_pattern<CompressedBlockSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const std::vector<unsigned int>  &,
  CompressedBlockSparsityPattern    &);
 
@@ -3765,7 +3765,7 @@ DoFTools::make_boundary_sparsity_pattern<SparsityPattern>
  SparsityPattern    &sparsity);
 template void
 DoFTools::make_boundary_sparsity_pattern<SparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const FunctionMap<deal_II_dimension>::type  &boundary_indicators,
  const std::vector<unsigned int>  &dof_to_boundary_mapping,
  SparsityPattern    &sparsity);
@@ -3777,7 +3777,7 @@ DoFTools::make_boundary_sparsity_pattern<CompressedSparsityPattern>
  CompressedSparsityPattern    &sparsity);
 template void
 DoFTools::make_boundary_sparsity_pattern<CompressedSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const FunctionMap<deal_II_dimension>::type  &boundary_indicators,
  const std::vector<unsigned int>  &dof_to_boundary_mapping,
  CompressedSparsityPattern    &sparsity);
@@ -3789,7 +3789,7 @@ DoFTools::make_boundary_sparsity_pattern<BlockSparsityPattern>
  BlockSparsityPattern    &sparsity);
 template void
 DoFTools::make_boundary_sparsity_pattern<BlockSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const FunctionMap<deal_II_dimension>::type  &boundary_indicators,
  const std::vector<unsigned int>  &dof_to_boundary_mapping,
  BlockSparsityPattern    &sparsity);
@@ -3801,7 +3801,7 @@ DoFTools::make_boundary_sparsity_pattern<CompressedBlockSparsityPattern>
  CompressedBlockSparsityPattern    &sparsity);
 template void
 DoFTools::make_boundary_sparsity_pattern<CompressedBlockSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  const FunctionMap<deal_II_dimension>::type  &boundary_indicators,
  const std::vector<unsigned int>  &dof_to_boundary_mapping,
  CompressedBlockSparsityPattern    &sparsity);
@@ -3815,7 +3815,7 @@ DoFTools::make_flux_sparsity_pattern<deal_II_dimension,SparsityPattern>
  SparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<deal_II_dimension,SparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  SparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<deal_II_dimension,CompressedSparsityPattern>
@@ -3823,7 +3823,7 @@ DoFTools::make_flux_sparsity_pattern<deal_II_dimension,CompressedSparsityPattern
  CompressedSparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<deal_II_dimension,CompressedSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  CompressedSparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<deal_II_dimension,BlockSparsityPattern>
@@ -3831,7 +3831,7 @@ DoFTools::make_flux_sparsity_pattern<deal_II_dimension,BlockSparsityPattern>
  BlockSparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<deal_II_dimension,BlockSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  BlockSparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<deal_II_dimension,CompressedBlockSparsityPattern>
@@ -3839,7 +3839,7 @@ DoFTools::make_flux_sparsity_pattern<deal_II_dimension,CompressedBlockSparsityPa
  CompressedBlockSparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<deal_II_dimension,CompressedBlockSparsityPattern>
-(const hpDoFHandler<deal_II_dimension>& dof,
+(const hp::DoFHandler<deal_II_dimension>& dof,
  CompressedBlockSparsityPattern    &sparsity);
 #else
 template void
@@ -3848,7 +3848,7 @@ DoFTools::make_flux_sparsity_pattern<SparsityPattern>
  SparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<SparsityPattern>
-(const hpDoFHandler<1>& dof,
+(const hp::DoFHandler<1>& dof,
  SparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<CompressedSparsityPattern>
@@ -3856,7 +3856,7 @@ DoFTools::make_flux_sparsity_pattern<CompressedSparsityPattern>
  CompressedSparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<CompressedSparsityPattern>
-(const hpDoFHandler<1>& dof,
+(const hp::DoFHandler<1>& dof,
  CompressedSparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<BlockSparsityPattern>
@@ -3864,7 +3864,7 @@ DoFTools::make_flux_sparsity_pattern<BlockSparsityPattern>
  BlockSparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<BlockSparsityPattern>
-(const hpDoFHandler<1>& dof,
+(const hp::DoFHandler<1>& dof,
  BlockSparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<CompressedBlockSparsityPattern>
@@ -3872,7 +3872,7 @@ DoFTools::make_flux_sparsity_pattern<CompressedBlockSparsityPattern>
  CompressedBlockSparsityPattern    &sparsity);
 template void
 DoFTools::make_flux_sparsity_pattern<CompressedBlockSparsityPattern>
-(const hpDoFHandler<1>& dof,
+(const hp::DoFHandler<1>& dof,
  CompressedBlockSparsityPattern    &sparsity);
 #endif
 
@@ -3962,8 +3962,8 @@ DoFTools::extract_subdomain_dofs<deal_II_dimension, DoFHandler>
 
 template
 void
-DoFTools::extract_subdomain_dofs<deal_II_dimension, hpDoFHandler>
-(const hpDoFHandler<deal_II_dimension> &dof_handler,
+DoFTools::extract_subdomain_dofs<deal_II_dimension, hp::DoFHandler>
+(const hp::DoFHandler<deal_II_dimension> &dof_handler,
  const unsigned int     subdomain_id,
  std::vector<bool>     &selected_dofs);
 
index 517ec570b0efe39a2d21fd98974eb17f3182ce79..291fc44265ec56c609f16458ca933d08080a1612 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 2003, 2004 by the deal.II authors
+//    Copyright (C) 2003, 2004, 2006 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
 #include <functional>
 
 
+namespace hp
+{
+  
 
-template <int dim>
-const unsigned int hpDoFHandler<dim>::invalid_dof_index;
+  template <int dim>
+  const unsigned int DoFHandler<dim>::invalid_dof_index;
 
 
 
-template <int dim>
-hpDoFHandler<dim>::hpDoFHandler (const Triangulation<dim> &tria)
-                :
-                tria(&tria),
-                used_dofs (0)
-{
-  tria.add_refinement_listener (*this);
-}
+  template <int dim>
+  DoFHandler<dim>::DoFHandler (const Triangulation<dim> &tria)
+                  :
+                  tria(&tria),
+                  used_dofs (0)
+  {
+    tria.add_refinement_listener (*this);
+  }
 
 
-template <int dim>
-hpDoFHandler<dim>::~hpDoFHandler ()
-{
-                                   // unsubscribe as a listener to refinement
-                                   // of the underlying triangulation
-  tria->remove_refinement_listener (*this);
+  template <int dim>
+  DoFHandler<dim>::~DoFHandler ()
+  {
+                                     // unsubscribe as a listener to refinement
+                                     // of the underlying triangulation
+    tria->remove_refinement_listener (*this);
   
-                                  // ...and release allocated memory
-  clear ();
-}
+                                     // ...and release allocated memory
+    clear ();
+  }
 
 
 #if deal_II_dimension == 1
 
-template <>
-hpDoFHandler<1>::raw_cell_iterator
-hpDoFHandler<1>::begin_raw (const unsigned int level) const {
-  return begin_raw_line (level);
-}
+  template <>
+  DoFHandler<1>::raw_cell_iterator
+  DoFHandler<1>::begin_raw (const unsigned int level) const {
+    return begin_raw_line (level);
+  }
 
 
-template <>
-hpDoFHandler<1>::cell_iterator
-hpDoFHandler<1>::begin (const unsigned int level) const {
-  return begin_line (level);
-}
+  template <>
+  DoFHandler<1>::cell_iterator
+  DoFHandler<1>::begin (const unsigned int level) const {
+    return begin_line (level);
+  }
 
 
-template <>
-hpDoFHandler<1>::active_cell_iterator
-hpDoFHandler<1>::begin_active (const unsigned int level) const {
-  return begin_active_line (level);
-}
+  template <>
+  DoFHandler<1>::active_cell_iterator
+  DoFHandler<1>::begin_active (const unsigned int level) const {
+    return begin_active_line (level);
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_cell_iterator
-hpDoFHandler<1>::end () const {
-  return end_line ();
-}
+  template <>
+  DoFHandler<1>::raw_cell_iterator
+  DoFHandler<1>::end () const {
+    return end_line ();
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_cell_iterator
-hpDoFHandler<1>::last_raw () const {
-  return last_raw_line ();
-}
+  template <>
+  DoFHandler<1>::raw_cell_iterator
+  DoFHandler<1>::last_raw () const {
+    return last_raw_line ();
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_cell_iterator
-hpDoFHandler<1>::last_raw (const unsigned int level) const {
-  return last_raw_line (level);
-}
+  template <>
+  DoFHandler<1>::raw_cell_iterator
+  DoFHandler<1>::last_raw (const unsigned int level) const {
+    return last_raw_line (level);
+  }
 
 
-template <>
-hpDoFHandler<1>::cell_iterator
-hpDoFHandler<1>::last () const {
-  return last_line ();
-}
+  template <>
+  DoFHandler<1>::cell_iterator
+  DoFHandler<1>::last () const {
+    return last_line ();
+  }
 
 
-template <>
-hpDoFHandler<1>::cell_iterator
-hpDoFHandler<1>::last (const unsigned int level) const {
-  return last_line (level);
-}
+  template <>
+  DoFHandler<1>::cell_iterator
+  DoFHandler<1>::last (const unsigned int level) const {
+    return last_line (level);
+  }
 
 
-template <>
-hpDoFHandler<1>::active_cell_iterator
-hpDoFHandler<1>::last_active () const {
-  return last_active_line ();
-}
+  template <>
+  DoFHandler<1>::active_cell_iterator
+  DoFHandler<1>::last_active () const {
+    return last_active_line ();
+  }
 
 
-template <>
-hpDoFHandler<1>::active_cell_iterator
-hpDoFHandler<1>::last_active (const unsigned int level) const {
-  return last_active_line (level);
-}
+  template <>
+  DoFHandler<1>::active_cell_iterator
+  DoFHandler<1>::last_active (const unsigned int level) const {
+    return last_active_line (level);
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_face_iterator
-hpDoFHandler<1>::begin_raw_face (const unsigned int) const {
-  Assert (false, ExcFunctionNotUseful());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_face_iterator
+  DoFHandler<1>::begin_raw_face (const unsigned int) const {
+    Assert (false, ExcFunctionNotUseful());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::face_iterator
-hpDoFHandler<1>::begin_face (const unsigned int) const {
-  Assert (false, ExcFunctionNotUseful());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::face_iterator
+  DoFHandler<1>::begin_face (const unsigned int) const {
+    Assert (false, ExcFunctionNotUseful());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::active_face_iterator
-hpDoFHandler<1>::begin_active_face (const unsigned int) const {
-  Assert (false, ExcFunctionNotUseful());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::active_face_iterator
+  DoFHandler<1>::begin_active_face (const unsigned int) const {
+    Assert (false, ExcFunctionNotUseful());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_face_iterator
-hpDoFHandler<1>::end_face () const {
-  Assert (false, ExcFunctionNotUseful());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_face_iterator
+  DoFHandler<1>::end_face () const {
+    Assert (false, ExcFunctionNotUseful());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_face_iterator
-hpDoFHandler<1>::last_raw_face () const {
-  Assert (false, ExcFunctionNotUseful());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_face_iterator
+  DoFHandler<1>::last_raw_face () const {
+    Assert (false, ExcFunctionNotUseful());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_face_iterator
-hpDoFHandler<1>::last_raw_face (const unsigned int) const {
-  Assert (false, ExcFunctionNotUseful());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_face_iterator
+  DoFHandler<1>::last_raw_face (const unsigned int) const {
+    Assert (false, ExcFunctionNotUseful());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::face_iterator
-hpDoFHandler<1>::last_face () const {
-  Assert (false, ExcFunctionNotUseful());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::face_iterator
+  DoFHandler<1>::last_face () const {
+    Assert (false, ExcFunctionNotUseful());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::face_iterator
-hpDoFHandler<1>::last_face (const unsigned int) const {
-  Assert (false, ExcFunctionNotUseful());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::face_iterator
+  DoFHandler<1>::last_face (const unsigned int) const {
+    Assert (false, ExcFunctionNotUseful());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::active_face_iterator
-hpDoFHandler<1>::last_active_face () const {
-  Assert (false, ExcFunctionNotUseful());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::active_face_iterator
+  DoFHandler<1>::last_active_face () const {
+    Assert (false, ExcFunctionNotUseful());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::active_face_iterator
-hpDoFHandler<1>::last_active_face (const unsigned int) const {
-  Assert (false, ExcFunctionNotUseful());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::active_face_iterator
+  DoFHandler<1>::last_active_face (const unsigned int) const {
+    Assert (false, ExcFunctionNotUseful());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_quad_iterator
-hpDoFHandler<1>::begin_raw_quad (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_quad_iterator
+  DoFHandler<1>::begin_raw_quad (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::quad_iterator
-hpDoFHandler<1>::begin_quad (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::quad_iterator
+  DoFHandler<1>::begin_quad (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::active_quad_iterator
-hpDoFHandler<1>::begin_active_quad (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::active_quad_iterator
+  DoFHandler<1>::begin_active_quad (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_quad_iterator
-hpDoFHandler<1>::end_quad () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_quad_iterator
+  DoFHandler<1>::end_quad () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_quad_iterator
-hpDoFHandler<1>::last_raw_quad (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_quad_iterator
+  DoFHandler<1>::last_raw_quad (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::quad_iterator
-hpDoFHandler<1>::last_quad (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::quad_iterator
+  DoFHandler<1>::last_quad (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::active_quad_iterator
-hpDoFHandler<1>::last_active_quad (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::active_quad_iterator
+  DoFHandler<1>::last_active_quad (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_quad_iterator
-hpDoFHandler<1>::last_raw_quad () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_quad_iterator
+  DoFHandler<1>::last_raw_quad () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::quad_iterator
-hpDoFHandler<1>::last_quad () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::quad_iterator
+  DoFHandler<1>::last_quad () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::active_quad_iterator
-hpDoFHandler<1>::last_active_quad () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::active_quad_iterator
+  DoFHandler<1>::last_active_quad () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_hex_iterator
-hpDoFHandler<1>::begin_raw_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_hex_iterator
+  DoFHandler<1>::begin_raw_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::hex_iterator
-hpDoFHandler<1>::begin_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::hex_iterator
+  DoFHandler<1>::begin_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::active_hex_iterator
-hpDoFHandler<1>::begin_active_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::active_hex_iterator
+  DoFHandler<1>::begin_active_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_hex_iterator
-hpDoFHandler<1>::end_hex () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_hex_iterator
+  DoFHandler<1>::end_hex () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_hex_iterator
-hpDoFHandler<1>::last_raw_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_hex_iterator
+  DoFHandler<1>::last_raw_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::raw_hex_iterator
-hpDoFHandler<1>::last_raw_hex () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::raw_hex_iterator
+  DoFHandler<1>::last_raw_hex () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::hex_iterator
-hpDoFHandler<1>::last_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::hex_iterator
+  DoFHandler<1>::last_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::hex_iterator
-hpDoFHandler<1>::last_hex () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::hex_iterator
+  DoFHandler<1>::last_hex () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::active_hex_iterator
-hpDoFHandler<1>::last_active_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::active_hex_iterator
+  DoFHandler<1>::last_active_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<1>::active_hex_iterator
-hpDoFHandler<1>::last_active_hex () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<1>::active_hex_iterator
+  DoFHandler<1>::last_active_hex () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 #endif
 
 
 #if deal_II_dimension == 2
 
-template <>
-hpDoFHandler<2>::raw_cell_iterator
-hpDoFHandler<2>::begin_raw (const unsigned int level) const {
-  return begin_raw_quad (level);
-}
+  template <>
+  DoFHandler<2>::raw_cell_iterator
+  DoFHandler<2>::begin_raw (const unsigned int level) const {
+    return begin_raw_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::cell_iterator
-hpDoFHandler<2>::begin (const unsigned int level) const {
-  return begin_quad (level);
-}
+  template <>
+  DoFHandler<2>::cell_iterator
+  DoFHandler<2>::begin (const unsigned int level) const {
+    return begin_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::active_cell_iterator
-hpDoFHandler<2>::begin_active (const unsigned int level) const {
-  return begin_active_quad (level);
-}
+  template <>
+  DoFHandler<2>::active_cell_iterator
+  DoFHandler<2>::begin_active (const unsigned int level) const {
+    return begin_active_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_cell_iterator
-hpDoFHandler<2>::end () const {
-  return end_quad ();
-}
+  template <>
+  DoFHandler<2>::raw_cell_iterator
+  DoFHandler<2>::end () const {
+    return end_quad ();
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_cell_iterator
-hpDoFHandler<2>::last_raw () const {
-  return last_raw_quad ();
-}
+  template <>
+  DoFHandler<2>::raw_cell_iterator
+  DoFHandler<2>::last_raw () const {
+    return last_raw_quad ();
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_cell_iterator
-hpDoFHandler<2>::last_raw (const unsigned int level) const {
-  return last_raw_quad (level);
-}
+  template <>
+  DoFHandler<2>::raw_cell_iterator
+  DoFHandler<2>::last_raw (const unsigned int level) const {
+    return last_raw_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::cell_iterator
-hpDoFHandler<2>::last () const {
-  return last_quad ();
-}
+  template <>
+  DoFHandler<2>::cell_iterator
+  DoFHandler<2>::last () const {
+    return last_quad ();
+  }
 
 
-template <>
-hpDoFHandler<2>::cell_iterator
-hpDoFHandler<2>::last (const unsigned int level) const {
-  return last_quad (level);
-}
+  template <>
+  DoFHandler<2>::cell_iterator
+  DoFHandler<2>::last (const unsigned int level) const {
+    return last_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::active_cell_iterator
-hpDoFHandler<2>::last_active () const {
-  return last_active_quad ();
-}
+  template <>
+  DoFHandler<2>::active_cell_iterator
+  DoFHandler<2>::last_active () const {
+    return last_active_quad ();
+  }
 
 
-template <>
-hpDoFHandler<2>::active_cell_iterator
-hpDoFHandler<2>::last_active (const unsigned int level) const {
-  return last_active_quad (level);
-}
+  template <>
+  DoFHandler<2>::active_cell_iterator
+  DoFHandler<2>::last_active (const unsigned int level) const {
+    return last_active_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_face_iterator
-hpDoFHandler<2>::begin_raw_face (const unsigned int level) const {
-  return begin_raw_line (level);
-}
+  template <>
+  DoFHandler<2>::raw_face_iterator
+  DoFHandler<2>::begin_raw_face (const unsigned int level) const {
+    return begin_raw_line (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::face_iterator
-hpDoFHandler<2>::begin_face (const unsigned int level) const {
-  return begin_line (level);
-}
+  template <>
+  DoFHandler<2>::face_iterator
+  DoFHandler<2>::begin_face (const unsigned int level) const {
+    return begin_line (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::active_face_iterator
-hpDoFHandler<2>::begin_active_face (const unsigned int level) const {
-  return begin_active_line (level);
-}
+  template <>
+  DoFHandler<2>::active_face_iterator
+  DoFHandler<2>::begin_active_face (const unsigned int level) const {
+    return begin_active_line (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_face_iterator
-hpDoFHandler<2>::end_face () const {
-  return end_line ();
-}
+  template <>
+  DoFHandler<2>::raw_face_iterator
+  DoFHandler<2>::end_face () const {
+    return end_line ();
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_face_iterator
-hpDoFHandler<2>::last_raw_face () const {
-  return last_raw_line ();
-}
+  template <>
+  DoFHandler<2>::raw_face_iterator
+  DoFHandler<2>::last_raw_face () const {
+    return last_raw_line ();
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_face_iterator
-hpDoFHandler<2>::last_raw_face (const unsigned int level) const {
-  return last_raw_line (level);
-}
+  template <>
+  DoFHandler<2>::raw_face_iterator
+  DoFHandler<2>::last_raw_face (const unsigned int level) const {
+    return last_raw_line (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::face_iterator
-hpDoFHandler<2>::last_face () const {
-  return last_line ();
-}
+  template <>
+  DoFHandler<2>::face_iterator
+  DoFHandler<2>::last_face () const {
+    return last_line ();
+  }
 
 
-template <>
-hpDoFHandler<2>::face_iterator
-hpDoFHandler<2>::last_face (const unsigned int level) const {
-  return last_line (level);
-}
+  template <>
+  DoFHandler<2>::face_iterator
+  DoFHandler<2>::last_face (const unsigned int level) const {
+    return last_line (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::active_face_iterator
-hpDoFHandler<2>::last_active_face () const {
-  return last_active_line ();
-}
+  template <>
+  DoFHandler<2>::active_face_iterator
+  DoFHandler<2>::last_active_face () const {
+    return last_active_line ();
+  }
 
 
-template <>
-hpDoFHandler<2>::active_face_iterator
-hpDoFHandler<2>::last_active_face (const unsigned int level) const {
-  return last_active_line (level);
-}
+  template <>
+  DoFHandler<2>::active_face_iterator
+  DoFHandler<2>::last_active_face (const unsigned int level) const {
+    return last_active_line (level);
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_hex_iterator
-hpDoFHandler<2>::begin_raw_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<2>::raw_hex_iterator
+  DoFHandler<2>::begin_raw_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<2>::hex_iterator
-hpDoFHandler<2>::begin_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<2>::hex_iterator
+  DoFHandler<2>::begin_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<2>::active_hex_iterator
-hpDoFHandler<2>::begin_active_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<2>::active_hex_iterator
+  DoFHandler<2>::begin_active_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_hex_iterator
-hpDoFHandler<2>::end_hex () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<2>::raw_hex_iterator
+  DoFHandler<2>::end_hex () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_hex_iterator
-hpDoFHandler<2>::last_raw_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<2>::raw_hex_iterator
+  DoFHandler<2>::last_raw_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<2>::raw_hex_iterator
-hpDoFHandler<2>::last_raw_hex () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<2>::raw_hex_iterator
+  DoFHandler<2>::last_raw_hex () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<2>::hex_iterator
-hpDoFHandler<2>::last_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<2>::hex_iterator
+  DoFHandler<2>::last_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<2>::hex_iterator
-hpDoFHandler<2>::last_hex () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<2>::hex_iterator
+  DoFHandler<2>::last_hex () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<2>::active_hex_iterator
-hpDoFHandler<2>::last_active_hex (const unsigned int) const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<2>::active_hex_iterator
+  DoFHandler<2>::last_active_hex (const unsigned int) const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
-template <>
-hpDoFHandler<2>::active_hex_iterator
-hpDoFHandler<2>::last_active_hex () const {
-  Assert (false, ExcNotImplemented());
-  return 0;
-}
+  template <>
+  DoFHandler<2>::active_hex_iterator
+  DoFHandler<2>::last_active_hex () const {
+    Assert (false, ExcNotImplemented());
+    return 0;
+  }
 
 
 #endif
@@ -597,546 +600,546 @@ hpDoFHandler<2>::last_active_hex () const {
 
 #if deal_II_dimension == 3
 
-template <>
-hpDoFHandler<3>::raw_cell_iterator
-hpDoFHandler<3>::begin_raw (const unsigned int level) const {
-  return begin_raw_hex (level);
-}
+  template <>
+  DoFHandler<3>::raw_cell_iterator
+  DoFHandler<3>::begin_raw (const unsigned int level) const {
+    return begin_raw_hex (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::cell_iterator
-hpDoFHandler<3>::begin (const unsigned int level) const {
-  return begin_hex (level);
-}
+  template <>
+  DoFHandler<3>::cell_iterator
+  DoFHandler<3>::begin (const unsigned int level) const {
+    return begin_hex (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::active_cell_iterator
-hpDoFHandler<3>::begin_active (const unsigned int level) const {
-  return begin_active_hex (level);
-}
+  template <>
+  DoFHandler<3>::active_cell_iterator
+  DoFHandler<3>::begin_active (const unsigned int level) const {
+    return begin_active_hex (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::raw_cell_iterator
-hpDoFHandler<3>::end () const {
-  return end_hex ();
-}
+  template <>
+  DoFHandler<3>::raw_cell_iterator
+  DoFHandler<3>::end () const {
+    return end_hex ();
+  }
 
 
-template <>
-hpDoFHandler<3>::raw_cell_iterator
-hpDoFHandler<3>::last_raw () const {
-  return last_raw_hex ();
-}
+  template <>
+  DoFHandler<3>::raw_cell_iterator
+  DoFHandler<3>::last_raw () const {
+    return last_raw_hex ();
+  }
 
 
-template <>
-hpDoFHandler<3>::raw_cell_iterator
-hpDoFHandler<3>::last_raw (const unsigned int level) const {
-  return last_raw_hex (level);
-}
+  template <>
+  DoFHandler<3>::raw_cell_iterator
+  DoFHandler<3>::last_raw (const unsigned int level) const {
+    return last_raw_hex (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::cell_iterator
-hpDoFHandler<3>::last () const {
-  return last_hex ();
-}
+  template <>
+  DoFHandler<3>::cell_iterator
+  DoFHandler<3>::last () const {
+    return last_hex ();
+  }
 
 
-template <>
-hpDoFHandler<3>::cell_iterator
-hpDoFHandler<3>::last (const unsigned int level) const {
-  return last_hex (level);
-}
+  template <>
+  DoFHandler<3>::cell_iterator
+  DoFHandler<3>::last (const unsigned int level) const {
+    return last_hex (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::active_cell_iterator
-hpDoFHandler<3>::last_active () const {
-  return last_active_hex ();
-}
+  template <>
+  DoFHandler<3>::active_cell_iterator
+  DoFHandler<3>::last_active () const {
+    return last_active_hex ();
+  }
 
 
-template <>
-hpDoFHandler<3>::active_cell_iterator
-hpDoFHandler<3>::last_active (const unsigned int level) const {
-  return last_active_hex (level);
-}
+  template <>
+  DoFHandler<3>::active_cell_iterator
+  DoFHandler<3>::last_active (const unsigned int level) const {
+    return last_active_hex (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::raw_face_iterator
-hpDoFHandler<3>::begin_raw_face (const unsigned int level) const {
-  return begin_raw_quad (level);
-}
+  template <>
+  DoFHandler<3>::raw_face_iterator
+  DoFHandler<3>::begin_raw_face (const unsigned int level) const {
+    return begin_raw_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::face_iterator
-hpDoFHandler<3>::begin_face (const unsigned int level) const {
-  return begin_quad (level);
-}
+  template <>
+  DoFHandler<3>::face_iterator
+  DoFHandler<3>::begin_face (const unsigned int level) const {
+    return begin_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::active_face_iterator
-hpDoFHandler<3>::begin_active_face (const unsigned int level) const {
-  return begin_active_quad (level);
-}
+  template <>
+  DoFHandler<3>::active_face_iterator
+  DoFHandler<3>::begin_active_face (const unsigned int level) const {
+    return begin_active_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::raw_face_iterator
-hpDoFHandler<3>::end_face () const {
-  return end_quad ();
-}
+  template <>
+  DoFHandler<3>::raw_face_iterator
+  DoFHandler<3>::end_face () const {
+    return end_quad ();
+  }
 
 
-template <>
-hpDoFHandler<3>::raw_face_iterator
-hpDoFHandler<3>::last_raw_face () const {
-  return last_raw_quad ();
-}
+  template <>
+  DoFHandler<3>::raw_face_iterator
+  DoFHandler<3>::last_raw_face () const {
+    return last_raw_quad ();
+  }
 
 
-template <>
-hpDoFHandler<3>::raw_face_iterator
-hpDoFHandler<3>::last_raw_face (const unsigned int level) const {
-  return last_raw_quad (level);
-}
+  template <>
+  DoFHandler<3>::raw_face_iterator
+  DoFHandler<3>::last_raw_face (const unsigned int level) const {
+    return last_raw_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::face_iterator
-hpDoFHandler<3>::last_face () const {
-  return last_quad ();
-}
+  template <>
+  DoFHandler<3>::face_iterator
+  DoFHandler<3>::last_face () const {
+    return last_quad ();
+  }
 
 
-template <>
-hpDoFHandler<3>::face_iterator
-hpDoFHandler<3>::last_face (const unsigned int level) const {
-  return last_quad (level);
-}
+  template <>
+  DoFHandler<3>::face_iterator
+  DoFHandler<3>::last_face (const unsigned int level) const {
+    return last_quad (level);
+  }
 
 
-template <>
-hpDoFHandler<3>::active_face_iterator
-hpDoFHandler<3>::last_active_face () const {
-  return last_active_quad ();
-}
+  template <>
+  DoFHandler<3>::active_face_iterator
+  DoFHandler<3>::last_active_face () const {
+    return last_active_quad ();
+  }
 
 
-template <>
-hpDoFHandler<3>::active_face_iterator
-hpDoFHandler<3>::last_active_face (const unsigned int level) const {
-  return last_active_quad (level);
-}
+  template <>
+  DoFHandler<3>::active_face_iterator
+  DoFHandler<3>::last_active_face (const unsigned int level) const {
+    return last_active_quad (level);
+  }
 
 
 #endif
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_line_iterator
-hpDoFHandler<dim>::begin_raw_line (const unsigned int level) const {
-  return raw_line_iterator (tria,
-                           tria->begin_raw_line(level)->level(),
-                           tria->begin_raw_line(level)->index(),
-                           this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_line_iterator
+  DoFHandler<dim>::begin_raw_line (const unsigned int level) const {
+    return raw_line_iterator (tria,
+                              tria->begin_raw_line(level)->level(),
+                              tria->begin_raw_line(level)->index(),
+                              this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::line_iterator
-hpDoFHandler<dim>::begin_line (const unsigned int level) const {
-  return line_iterator (tria,
-                       tria->begin_line(level)->level(),
-                       tria->begin_line(level)->index(),
-                       this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::line_iterator
+  DoFHandler<dim>::begin_line (const unsigned int level) const {
+    return line_iterator (tria,
+                          tria->begin_line(level)->level(),
+                          tria->begin_line(level)->index(),
+                          this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_line_iterator
-hpDoFHandler<dim>::begin_active_line (const unsigned int level) const {
-  return active_line_iterator (tria,
-                              tria->begin_active_line(level)->level(),
-                              tria->begin_active_line(level)->index(),
-                              this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_line_iterator
+  DoFHandler<dim>::begin_active_line (const unsigned int level) const {
+    return active_line_iterator (tria,
+                                 tria->begin_active_line(level)->level(),
+                                 tria->begin_active_line(level)->index(),
+                                 this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_quad_iterator
-hpDoFHandler<dim>::begin_raw_quad (const unsigned int level) const {
-  return raw_quad_iterator (tria,
-                           tria->begin_raw_quad(level)->level(),
-                           tria->begin_raw_quad(level)->index(),
-                           this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_quad_iterator
+  DoFHandler<dim>::begin_raw_quad (const unsigned int level) const {
+    return raw_quad_iterator (tria,
+                              tria->begin_raw_quad(level)->level(),
+                              tria->begin_raw_quad(level)->index(),
+                              this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::quad_iterator
-hpDoFHandler<dim>::begin_quad (const unsigned int level) const {
-  return quad_iterator (tria,
-                       tria->begin_quad(level)->level(),
-                       tria->begin_quad(level)->index(),
-                       this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::quad_iterator
+  DoFHandler<dim>::begin_quad (const unsigned int level) const {
+    return quad_iterator (tria,
+                          tria->begin_quad(level)->level(),
+                          tria->begin_quad(level)->index(),
+                          this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_quad_iterator
-hpDoFHandler<dim>::begin_active_quad (const unsigned int level) const {
-  return active_quad_iterator (tria,
-                              tria->begin_active_quad(level)->level(),
-                              tria->begin_active_quad(level)->index(),
-                              this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_quad_iterator
+  DoFHandler<dim>::begin_active_quad (const unsigned int level) const {
+    return active_quad_iterator (tria,
+                                 tria->begin_active_quad(level)->level(),
+                                 tria->begin_active_quad(level)->index(),
+                                 this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_hex_iterator
-hpDoFHandler<dim>::begin_raw_hex (const unsigned int level) const {
-  return raw_hex_iterator (tria,
-                          tria->begin_raw_hex(level)->level(),
-                          tria->begin_raw_hex(level)->index(),
-                          this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_hex_iterator
+  DoFHandler<dim>::begin_raw_hex (const unsigned int level) const {
+    return raw_hex_iterator (tria,
+                             tria->begin_raw_hex(level)->level(),
+                             tria->begin_raw_hex(level)->index(),
+                             this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::hex_iterator
-hpDoFHandler<dim>::begin_hex (const unsigned int level) const {
-  return hex_iterator (tria,
-                      tria->begin_hex(level)->level(),
-                      tria->begin_hex(level)->index(),
-                      this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::hex_iterator
+  DoFHandler<dim>::begin_hex (const unsigned int level) const {
+    return hex_iterator (tria,
+                         tria->begin_hex(level)->level(),
+                         tria->begin_hex(level)->index(),
+                         this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_hex_iterator
-hpDoFHandler<dim>::begin_active_hex (const unsigned int level) const {
-  return active_hex_iterator (tria,
-                             tria->begin_active_hex(level)->level(),
-                             tria->begin_active_hex(level)->index(),
-                             this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_hex_iterator
+  DoFHandler<dim>::begin_active_hex (const unsigned int level) const {
+    return active_hex_iterator (tria,
+                                tria->begin_active_hex(level)->level(),
+                                tria->begin_active_hex(level)->index(),
+                                this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_line_iterator
-hpDoFHandler<dim>::end_line () const {
-  return raw_line_iterator (tria, -1, -1, this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_line_iterator
+  DoFHandler<dim>::end_line () const {
+    return raw_line_iterator (tria, -1, -1, this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_quad_iterator
-hpDoFHandler<dim>::end_quad () const {
-  return raw_quad_iterator (tria, -1, -1, this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_quad_iterator
+  DoFHandler<dim>::end_quad () const {
+    return raw_quad_iterator (tria, -1, -1, this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_hex_iterator
-hpDoFHandler<dim>::end_hex () const {
-  return raw_hex_iterator (tria, -1, -1, this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_hex_iterator
+  DoFHandler<dim>::end_hex () const {
+    return raw_hex_iterator (tria, -1, -1, this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_cell_iterator
-hpDoFHandler<dim>::end_raw (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         end() :
-         begin_raw (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_cell_iterator
+  DoFHandler<dim>::end_raw (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            end() :
+            begin_raw (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::cell_iterator
-hpDoFHandler<dim>::end (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         cell_iterator(end()) :
-         begin (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::cell_iterator
+  DoFHandler<dim>::end (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            cell_iterator(end()) :
+            begin (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_cell_iterator
-hpDoFHandler<dim>::end_active (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         active_cell_iterator(end()) :
-         begin_active (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_cell_iterator
+  DoFHandler<dim>::end_active (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            active_cell_iterator(end()) :
+            begin_active (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_face_iterator
-hpDoFHandler<dim>::end_raw_face (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         end_face() :
-         begin_raw_face (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_face_iterator
+  DoFHandler<dim>::end_raw_face (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            end_face() :
+            begin_raw_face (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::face_iterator
-hpDoFHandler<dim>::end_face (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         face_iterator(end_face()) :
-         begin_face (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::face_iterator
+  DoFHandler<dim>::end_face (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            face_iterator(end_face()) :
+            begin_face (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_face_iterator
-hpDoFHandler<dim>::end_active_face (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         active_face_iterator(end_face()) :
-         begin_active_face (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_face_iterator
+  DoFHandler<dim>::end_active_face (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            active_face_iterator(end_face()) :
+            begin_active_face (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_line_iterator
-hpDoFHandler<dim>::end_raw_line (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         end_line() :
-         begin_raw_line (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_line_iterator
+  DoFHandler<dim>::end_raw_line (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            end_line() :
+            begin_raw_line (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::line_iterator
-hpDoFHandler<dim>::end_line (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         line_iterator(end_line()) :
-         begin_line (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::line_iterator
+  DoFHandler<dim>::end_line (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            line_iterator(end_line()) :
+            begin_line (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_line_iterator
-hpDoFHandler<dim>::end_active_line (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         active_line_iterator(end_line()) :
-         begin_active_line (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_line_iterator
+  DoFHandler<dim>::end_active_line (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            active_line_iterator(end_line()) :
+            begin_active_line (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_quad_iterator
-hpDoFHandler<dim>::end_raw_quad (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         end_quad() :
-         begin_raw_quad (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_quad_iterator
+  DoFHandler<dim>::end_raw_quad (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            end_quad() :
+            begin_raw_quad (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::quad_iterator
-hpDoFHandler<dim>::end_quad (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         quad_iterator(end_quad()) :
-         begin_quad (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::quad_iterator
+  DoFHandler<dim>::end_quad (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            quad_iterator(end_quad()) :
+            begin_quad (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_quad_iterator
-hpDoFHandler<dim>::end_active_quad (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         active_quad_iterator(end_quad()) :
-         begin_active_quad (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_quad_iterator
+  DoFHandler<dim>::end_active_quad (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            active_quad_iterator(end_quad()) :
+            begin_active_quad (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_hex_iterator
-hpDoFHandler<dim>::end_raw_hex (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         end_hex() :
-         begin_raw_hex (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_hex_iterator
+  DoFHandler<dim>::end_raw_hex (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            end_hex() :
+            begin_raw_hex (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::hex_iterator
-hpDoFHandler<dim>::end_hex (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         hex_iterator(end_hex()) :
-         begin_hex (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::hex_iterator
+  DoFHandler<dim>::end_hex (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            hex_iterator(end_hex()) :
+            begin_hex (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_hex_iterator
-hpDoFHandler<dim>::end_active_hex (const unsigned int level) const {
-  return (level == levels.size()-1 ?
-         active_hex_iterator(end_hex()) :
-         begin_active_hex (level+1));
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_hex_iterator
+  DoFHandler<dim>::end_active_hex (const unsigned int level) const {
+    return (level == levels.size()-1 ?
+            active_hex_iterator(end_hex()) :
+            begin_active_hex (level+1));
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_line_iterator
-hpDoFHandler<dim>::last_raw_line (const unsigned int level) const {
-  return raw_line_iterator (tria,
-                           tria->last_raw_line(level)->level(),
-                           tria->last_raw_line(level)->index(),
-                           this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_line_iterator
+  DoFHandler<dim>::last_raw_line (const unsigned int level) const {
+    return raw_line_iterator (tria,
+                              tria->last_raw_line(level)->level(),
+                              tria->last_raw_line(level)->index(),
+                              this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::line_iterator
-hpDoFHandler<dim>::last_line (const unsigned int level) const {
-  return line_iterator (tria,
-                       tria->last_line(level)->level(),
-                       tria->last_line(level)->index(),
-                       this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::line_iterator
+  DoFHandler<dim>::last_line (const unsigned int level) const {
+    return line_iterator (tria,
+                          tria->last_line(level)->level(),
+                          tria->last_line(level)->index(),
+                          this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_line_iterator
-hpDoFHandler<dim>::last_active_line (const unsigned int level) const {
-  return active_line_iterator (tria,
-                              tria->last_active_line(level)->level(),
-                              tria->last_active_line(level)->index(),
-                              this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_line_iterator
+  DoFHandler<dim>::last_active_line (const unsigned int level) const {
+    return active_line_iterator (tria,
+                                 tria->last_active_line(level)->level(),
+                                 tria->last_active_line(level)->index(),
+                                 this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_quad_iterator
-hpDoFHandler<dim>::last_raw_quad (const unsigned int level) const {
-  return raw_quad_iterator (tria,
-                           tria->last_raw_quad(level)->level(),
-                           tria->last_raw_quad(level)->index(),
-                           this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_quad_iterator
+  DoFHandler<dim>::last_raw_quad (const unsigned int level) const {
+    return raw_quad_iterator (tria,
+                              tria->last_raw_quad(level)->level(),
+                              tria->last_raw_quad(level)->index(),
+                              this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::quad_iterator
-hpDoFHandler<dim>::last_quad (const unsigned int level) const {
-  return quad_iterator (tria,
-                       tria->last_quad(level)->level(),
-                       tria->last_quad(level)->index(),
-                       this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::quad_iterator
+  DoFHandler<dim>::last_quad (const unsigned int level) const {
+    return quad_iterator (tria,
+                          tria->last_quad(level)->level(),
+                          tria->last_quad(level)->index(),
+                          this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_quad_iterator
-hpDoFHandler<dim>::last_active_quad (const unsigned int level) const {
-  return active_quad_iterator (tria,
-                              tria->last_active_quad(level)->level(),
-                              tria->last_active_quad(level)->index(),
-                              this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_quad_iterator
+  DoFHandler<dim>::last_active_quad (const unsigned int level) const {
+    return active_quad_iterator (tria,
+                                 tria->last_active_quad(level)->level(),
+                                 tria->last_active_quad(level)->index(),
+                                 this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_hex_iterator
-hpDoFHandler<dim>::last_raw_hex (const unsigned int level) const {
-  return raw_hex_iterator (tria,
-                          tria->last_raw_hex(level)->level(),
-                          tria->last_raw_hex(level)->index(),
-                          this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_hex_iterator
+  DoFHandler<dim>::last_raw_hex (const unsigned int level) const {
+    return raw_hex_iterator (tria,
+                             tria->last_raw_hex(level)->level(),
+                             tria->last_raw_hex(level)->index(),
+                             this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::hex_iterator
-hpDoFHandler<dim>::last_hex (const unsigned int level) const {
-  return hex_iterator (tria,
-                      tria->last_hex(level)->level(),
-                      tria->last_hex(level)->index(),
-                      this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::hex_iterator
+  DoFHandler<dim>::last_hex (const unsigned int level) const {
+    return hex_iterator (tria,
+                         tria->last_hex(level)->level(),
+                         tria->last_hex(level)->index(),
+                         this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_hex_iterator
-hpDoFHandler<dim>::last_active_hex (const unsigned int level) const {
-  return active_hex_iterator (tria,
-                             tria->last_active_hex(level)->level(),
-                             tria->last_active_hex(level)->index(),
-                             this);
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_hex_iterator
+  DoFHandler<dim>::last_active_hex (const unsigned int level) const {
+    return active_hex_iterator (tria,
+                                tria->last_active_hex(level)->level(),
+                                tria->last_active_hex(level)->index(),
+                                this);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_line_iterator
-hpDoFHandler<dim>::last_raw_line () const {
-  return last_raw_line (levels.size()-1);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_line_iterator
+  DoFHandler<dim>::last_raw_line () const {
+    return last_raw_line (levels.size()-1);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_quad_iterator
-hpDoFHandler<dim>::last_raw_quad () const {
-  return last_raw_quad (levels.size()-1);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_quad_iterator
+  DoFHandler<dim>::last_raw_quad () const {
+    return last_raw_quad (levels.size()-1);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::raw_hex_iterator
-hpDoFHandler<dim>::last_raw_hex () const {
-  return last_raw_hex (levels.size()-1);
-}
+  template <int dim>
+  typename DoFHandler<dim>::raw_hex_iterator
+  DoFHandler<dim>::last_raw_hex () const {
+    return last_raw_hex (levels.size()-1);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::line_iterator
-hpDoFHandler<dim>::last_line () const {
-  return last_line (levels.size()-1);
-}
+  template <int dim>
+  typename DoFHandler<dim>::line_iterator
+  DoFHandler<dim>::last_line () const {
+    return last_line (levels.size()-1);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::quad_iterator
-hpDoFHandler<dim>::last_quad () const {
-  return last_quad (levels.size()-1);
-}
+  template <int dim>
+  typename DoFHandler<dim>::quad_iterator
+  DoFHandler<dim>::last_quad () const {
+    return last_quad (levels.size()-1);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::hex_iterator
-hpDoFHandler<dim>::last_hex () const {
-  return last_hex (levels.size()-1);
-}
+  template <int dim>
+  typename DoFHandler<dim>::hex_iterator
+  DoFHandler<dim>::last_hex () const {
+    return last_hex (levels.size()-1);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_line_iterator
-hpDoFHandler<dim>::last_active_line () const {
-  return last_active_line (levels.size()-1);
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_line_iterator
+  DoFHandler<dim>::last_active_line () const {
+    return last_active_line (levels.size()-1);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_quad_iterator
-hpDoFHandler<dim>::last_active_quad () const {
-  return last_active_quad (levels.size()-1);
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_quad_iterator
+  DoFHandler<dim>::last_active_quad () const {
+    return last_active_quad (levels.size()-1);
+  }
 
 
-template <int dim>
-typename hpDoFHandler<dim>::active_hex_iterator
-hpDoFHandler<dim>::last_active_hex () const {
-  return last_active_hex (levels.size()-1);
-}
+  template <int dim>
+  typename DoFHandler<dim>::active_hex_iterator
+  DoFHandler<dim>::last_active_hex () const {
+    return last_active_hex (levels.size()-1);
+  }
 
 
 //------------------------------------------------------------------
@@ -1145,763 +1148,763 @@ hpDoFHandler<dim>::last_active_hex () const {
 
 #if deal_II_dimension == 1
 
-template <>
-unsigned int hpDoFHandler<1>::n_boundary_dofs () const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
+  template <>
+  unsigned int DoFHandler<1>::n_boundary_dofs () const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
 
-  hpDoFHandler<1>::cell_iterator cell;
-  unsigned int n = 0;
+    DoFHandler<1>::cell_iterator cell;
+    unsigned int n = 0;
   
-                                   // search left-most cell
-  cell = this->begin_active();
-  while (!cell->at_boundary(0))
-    cell = cell->neighbor(0);
-  n += cell->get_fe().dofs_per_vertex;
+                                     // search left-most cell
+    cell = this->begin_active();
+    while (!cell->at_boundary(0))
+      cell = cell->neighbor(0);
+    n += cell->get_fe().dofs_per_vertex;
   
-                                   // same with right-most cell
-  cell = this->begin_active();
-  while (!cell->at_boundary(1))
-    cell = cell->neighbor(1);
-  n += cell->get_fe().dofs_per_vertex;
+                                     // same with right-most cell
+    cell = this->begin_active();
+    while (!cell->at_boundary(1))
+      cell = cell->neighbor(1);
+    n += cell->get_fe().dofs_per_vertex;
 
-  return n;
-}
+    return n;
+  }
 
 
 
-template <>
-unsigned int hpDoFHandler<1>::n_boundary_dofs (const FunctionMap &boundary_indicators) const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
-
-                                  // check that only boundary
-                                  // indicators 0 and 1 are allowed
-                                  // in 1d
-  for (FunctionMap::const_iterator i=boundary_indicators.begin();
-       i!=boundary_indicators.end(); ++i)
-    Assert ((i->first == 0) || (i->first == 1),
-           ExcInvalidBoundaryIndicator());
+  template <>
+  unsigned int DoFHandler<1>::n_boundary_dofs (const FunctionMap &boundary_indicators) const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
+
+                                     // check that only boundary
+                                     // indicators 0 and 1 are allowed
+                                     // in 1d
+    for (FunctionMap::const_iterator i=boundary_indicators.begin();
+         i!=boundary_indicators.end(); ++i)
+      Assert ((i->first == 0) || (i->first == 1),
+              ExcInvalidBoundaryIndicator());
   
-  hpDoFHandler<1>::active_cell_iterator cell;
-  unsigned int n = 0;
+    DoFHandler<1>::active_cell_iterator cell;
+    unsigned int n = 0;
   
-                                   // search left-most cell
-  if (boundary_indicators.find (0) != boundary_indicators.end())
-    {
-      cell = this->begin_active();
-      while (!cell->at_boundary(0))
-        cell = cell->neighbor(0);
-      n += cell->get_fe().dofs_per_vertex;
-    }
+                                     // search left-most cell
+    if (boundary_indicators.find (0) != boundary_indicators.end())
+      {
+        cell = this->begin_active();
+        while (!cell->at_boundary(0))
+          cell = cell->neighbor(0);
+        n += cell->get_fe().dofs_per_vertex;
+      }
   
-                                   // same with right-most cell
-  if (boundary_indicators.find (1) != boundary_indicators.end())
-    {
-      cell = this->begin_active();
-      while (!cell->at_boundary(1))
-        cell = cell->neighbor(1);
-      n += cell->get_fe().dofs_per_vertex;
-    }
+                                     // same with right-most cell
+    if (boundary_indicators.find (1) != boundary_indicators.end())
+      {
+        cell = this->begin_active();
+        while (!cell->at_boundary(1))
+          cell = cell->neighbor(1);
+        n += cell->get_fe().dofs_per_vertex;
+      }
   
-  return n;
-}
+    return n;
+  }
 
 
 
-template <>
-unsigned int hpDoFHandler<1>::n_boundary_dofs (const std::set<unsigned char> &boundary_indicators) const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
-
-                                  // check that only boundary
-                                  // indicators 0 and 1 are allowed
-                                  // in 1d
-  for (std::set<unsigned char>::const_iterator i=boundary_indicators.begin();
-       i!=boundary_indicators.end(); ++i)
-    Assert ((*i == 0) || (*i == 1),
-           ExcInvalidBoundaryIndicator());
+  template <>
+  unsigned int DoFHandler<1>::n_boundary_dofs (const std::set<unsigned char> &boundary_indicators) const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
+
+                                     // check that only boundary
+                                     // indicators 0 and 1 are allowed
+                                     // in 1d
+    for (std::set<unsigned char>::const_iterator i=boundary_indicators.begin();
+         i!=boundary_indicators.end(); ++i)
+      Assert ((*i == 0) || (*i == 1),
+              ExcInvalidBoundaryIndicator());
   
-  hpDoFHandler<1>::active_cell_iterator cell;
-  unsigned int n = 0;
+    DoFHandler<1>::active_cell_iterator cell;
+    unsigned int n = 0;
   
-                                   // search left-most cell
-  if (boundary_indicators.find (0) != boundary_indicators.end())
-    {
-      cell = this->begin_active();
-      while (!cell->at_boundary(0))
-        cell = cell->neighbor(0);
-      n += cell->get_fe().dofs_per_vertex;
-    }
+                                     // search left-most cell
+    if (boundary_indicators.find (0) != boundary_indicators.end())
+      {
+        cell = this->begin_active();
+        while (!cell->at_boundary(0))
+          cell = cell->neighbor(0);
+        n += cell->get_fe().dofs_per_vertex;
+      }
   
-                                   // same with right-most cell
-  if (boundary_indicators.find (1) != boundary_indicators.end())
-    {
-      cell = this->begin_active();
-      while (!cell->at_boundary(1))
-        cell = cell->neighbor(1);
-      n += cell->get_fe().dofs_per_vertex;
-    }
+                                     // same with right-most cell
+    if (boundary_indicators.find (1) != boundary_indicators.end())
+      {
+        cell = this->begin_active();
+        while (!cell->at_boundary(1))
+          cell = cell->neighbor(1);
+        n += cell->get_fe().dofs_per_vertex;
+      }
   
-  return n;
-}
+    return n;
+  }
 
 #endif
 
 
-template <int dim>
-unsigned int hpDoFHandler<dim>::n_boundary_dofs () const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
-
-  std::set<int> boundary_dofs;
-  std::vector<unsigned int> dofs_on_face;
-  dofs_on_face.reserve (this->get_fe ().max_dofs_per_face());
-
-                                  // loop over all faces to check
-                                  // whether they are at a
-                                  // boundary. note that we need not
-                                  // take special care of single
-                                  // lines in 3d (using
-                                  // @p{cell->has_boundary_lines}),
-                                  // since we do not support
-                                  // boundaries of dimension dim-2,
-                                  // and so every boundary line is
-                                  // also part of a boundary face.
-  typename hpDoFHandler<dim>::active_cell_iterator cell = this->begin_active (),
+  template <int dim>
+  unsigned int DoFHandler<dim>::n_boundary_dofs () const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
+
+    std::set<int> boundary_dofs;
+    std::vector<unsigned int> dofs_on_face;
+    dofs_on_face.reserve (this->get_fe ().max_dofs_per_face());
+
+                                     // loop over all faces to check
+                                     // whether they are at a
+                                     // boundary. note that we need not
+                                     // take special care of single
+                                     // lines in 3d (using
+                                     // @p{cell->has_boundary_lines}),
+                                     // since we do not support
+                                     // boundaries of dimension dim-2,
+                                     // and so every boundary line is
+                                     // also part of a boundary face.
+    typename DoFHandler<dim>::active_cell_iterator cell = this->begin_active (),
                                                    endc = this->end();
-  for (; cell!=endc; ++cell)
-    for (unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
-      if (cell->at_boundary(f))
-        {
-          const unsigned int dofs_per_face = cell->get_fe().dofs_per_face;
-          dofs_on_face.resize (dofs_per_face);
+    for (; cell!=endc; ++cell)
+      for (unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
+        if (cell->at_boundary(f))
+          {
+            const unsigned int dofs_per_face = cell->get_fe().dofs_per_face;
+            dofs_on_face.resize (dofs_per_face);
           
-          cell->face(f)->get_dof_indices (dofs_on_face);
-          for (unsigned int i=0; i<dofs_per_face; ++i)
-            boundary_dofs.insert(dofs_on_face[i]);
-        };
-  return boundary_dofs.size();  
-}
+            cell->face(f)->get_dof_indices (dofs_on_face);
+            for (unsigned int i=0; i<dofs_per_face; ++i)
+              boundary_dofs.insert(dofs_on_face[i]);
+          };
+    return boundary_dofs.size();  
+  }
 
 
 
-template <int dim>
-unsigned int
-hpDoFHandler<dim>::n_boundary_dofs (const FunctionMap &boundary_indicators) const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
-  Assert (boundary_indicators.find(255) == boundary_indicators.end(),
-         ExcInvalidBoundaryIndicator());
+  template <int dim>
+  unsigned int
+  DoFHandler<dim>::n_boundary_dofs (const FunctionMap &boundary_indicators) const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
+    Assert (boundary_indicators.find(255) == boundary_indicators.end(),
+            ExcInvalidBoundaryIndicator());
   
-                                   // same as above, but with
-                                   // additional checks for set of
-                                   // boundary indicators
-  std::set<int> boundary_dofs;
-  std::vector<unsigned int> dofs_on_face;
-  dofs_on_face.reserve (this->get_fe ().max_dofs_per_face());
-
-  typename hpDoFHandler<dim>::active_cell_iterator cell = this->begin_active (),
+                                     // same as above, but with
+                                     // additional checks for set of
+                                     // boundary indicators
+    std::set<int> boundary_dofs;
+    std::vector<unsigned int> dofs_on_face;
+    dofs_on_face.reserve (this->get_fe ().max_dofs_per_face());
+
+    typename DoFHandler<dim>::active_cell_iterator cell = this->begin_active (),
                                                    endc = this->end();
-  for (; cell!=endc; ++cell)
-    for (unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
-      if (cell->at_boundary(f) &&
-          (boundary_indicators.find(cell->face(f)->boundary_indicator()) !=
-           boundary_indicators.end()))
-        {
-          const unsigned int dofs_per_face = cell->get_fe().dofs_per_face;
-          dofs_on_face.resize (dofs_per_face);
+    for (; cell!=endc; ++cell)
+      for (unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
+        if (cell->at_boundary(f) &&
+            (boundary_indicators.find(cell->face(f)->boundary_indicator()) !=
+             boundary_indicators.end()))
+          {
+            const unsigned int dofs_per_face = cell->get_fe().dofs_per_face;
+            dofs_on_face.resize (dofs_per_face);
           
-          cell->face(f)->get_dof_indices (dofs_on_face);
-          for (unsigned int i=0; i<dofs_per_face; ++i)
-            boundary_dofs.insert(dofs_on_face[i]);
-        };
-  return boundary_dofs.size();
-}
+            cell->face(f)->get_dof_indices (dofs_on_face);
+            for (unsigned int i=0; i<dofs_per_face; ++i)
+              boundary_dofs.insert(dofs_on_face[i]);
+          };
+    return boundary_dofs.size();
+  }
 
 
 
-template <int dim>
-unsigned int
-hpDoFHandler<dim>::n_boundary_dofs (const std::set<unsigned char> &boundary_indicators) const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
-  Assert (boundary_indicators.find (255) == boundary_indicators.end(),
-         ExcInvalidBoundaryIndicator());
-
-                                   // same as above, but with
-                                   // additional checks for set of
-                                   // boundary indicators
-  std::set<int> boundary_dofs;
-  std::vector<unsigned int> dofs_on_face;
-  dofs_on_face.reserve (this->get_fe ().max_dofs_per_face());
-
-  typename hpDoFHandler<dim>::active_cell_iterator cell = this->begin_active (),
+  template <int dim>
+  unsigned int
+  DoFHandler<dim>::n_boundary_dofs (const std::set<unsigned char> &boundary_indicators) const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
+    Assert (boundary_indicators.find (255) == boundary_indicators.end(),
+            ExcInvalidBoundaryIndicator());
+
+                                     // same as above, but with
+                                     // additional checks for set of
+                                     // boundary indicators
+    std::set<int> boundary_dofs;
+    std::vector<unsigned int> dofs_on_face;
+    dofs_on_face.reserve (this->get_fe ().max_dofs_per_face());
+
+    typename DoFHandler<dim>::active_cell_iterator cell = this->begin_active (),
                                                    endc = this->end();
-  for (; cell!=endc; ++cell)
-    for (unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
-      if (cell->at_boundary(f) &&
-          (boundary_indicators.find(cell->face(f)->boundary_indicator()) !=
-           boundary_indicators.end()))
-        {
-          const unsigned int dofs_per_face = cell->get_fe().dofs_per_face;
-          dofs_on_face.resize (dofs_per_face);
+    for (; cell!=endc; ++cell)
+      for (unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
+        if (cell->at_boundary(f) &&
+            (boundary_indicators.find(cell->face(f)->boundary_indicator()) !=
+             boundary_indicators.end()))
+          {
+            const unsigned int dofs_per_face = cell->get_fe().dofs_per_face;
+            dofs_on_face.resize (dofs_per_face);
           
-          cell->face(f)->get_dof_indices (dofs_on_face);
-          for (unsigned int i=0; i<dofs_per_face; ++i)
-            boundary_dofs.insert(dofs_on_face[i]);
-        };
-  return boundary_dofs.size();
-}
+            cell->face(f)->get_dof_indices (dofs_on_face);
+            for (unsigned int i=0; i<dofs_per_face; ++i)
+              boundary_dofs.insert(dofs_on_face[i]);
+          };
+    return boundary_dofs.size();
+  }
 
 
-template <int dim>
-unsigned int
-hpDoFHandler<dim>::memory_consumption () const
-{
-  unsigned int mem = (MemoryConsumption::memory_consumption (tria) +
-                     MemoryConsumption::memory_consumption (finite_elements) +
-                     MemoryConsumption::memory_consumption (tria) +
-                     MemoryConsumption::memory_consumption (levels) +
-                     MemoryConsumption::memory_consumption (used_dofs) +
-                     MemoryConsumption::memory_consumption (vertex_dofs));
-  for (unsigned int i=0; i<levels.size(); ++i)
-    mem += MemoryConsumption::memory_consumption (*levels[i]);
+  template <int dim>
+  unsigned int
+  DoFHandler<dim>::memory_consumption () const
+  {
+    unsigned int mem = (MemoryConsumption::memory_consumption (tria) +
+                        MemoryConsumption::memory_consumption (finite_elements) +
+                        MemoryConsumption::memory_consumption (tria) +
+                        MemoryConsumption::memory_consumption (levels) +
+                        MemoryConsumption::memory_consumption (used_dofs) +
+                        MemoryConsumption::memory_consumption (vertex_dofs));
+    for (unsigned int i=0; i<levels.size(); ++i)
+      mem += MemoryConsumption::memory_consumption (*levels[i]);
   
-  return mem;
-}
+    return mem;
+  }
 
 
 
-template <int dim>
-void hpDoFHandler<dim>::distribute_dofs (const FECollection<dim> &ff)
-{
-  Assert (tria->n_levels() > 0, ExcInvalidTriangulation());
+  template <int dim>
+  void DoFHandler<dim>::distribute_dofs (const FECollection<dim> &ff)
+  {
+    Assert (tria->n_levels() > 0, ExcInvalidTriangulation());
 
-  finite_elements = &ff;
+    finite_elements = &ff;
   
-                                   // This call ensures, the active_fe_indices
-                                   // vectors are initialized correctly.
-  create_active_fe_table ();
-
-  reserve_space ();
-
-                                  // Clear user flags because we will
-                                  // need them. But first we save
-                                  // them and make sure that we
-                                  // restore them later such that at
-                                  // the end of this function the
-                                  // Triangulation will be in the
-                                  // same state as it was at the
-                                  // beginning of this function.
-  std::vector<bool> user_flags;
-  tria->save_user_flags(user_flags);
-  const_cast<Triangulation<dim> &>(*tria).clear_user_flags ();
+                                     // This call ensures, the active_fe_indices
+                                     // vectors are initialized correctly.
+    create_active_fe_table ();
+
+    reserve_space ();
+
+                                     // Clear user flags because we will
+                                     // need them. But first we save
+                                     // them and make sure that we
+                                     // restore them later such that at
+                                     // the end of this function the
+                                     // Triangulation will be in the
+                                     // same state as it was at the
+                                     // beginning of this function.
+    std::vector<bool> user_flags;
+    tria->save_user_flags(user_flags);
+    const_cast<Triangulation<dim> &>(*tria).clear_user_flags ();
   
-  unsigned int next_free_dof = 0;
-  active_cell_iterator cell = begin_active(),
-                      endc = end();
+    unsigned int next_free_dof = 0;
+    active_cell_iterator cell = begin_active(),
+                         endc = end();
 
-  for (; cell != endc; ++cell) 
-    next_free_dof = distribute_dofs_on_cell (cell, next_free_dof);
+    for (; cell != endc; ++cell) 
+      next_free_dof = distribute_dofs_on_cell (cell, next_free_dof);
 
-  used_dofs = next_free_dof;
+    used_dofs = next_free_dof;
 
-                                  // finally restore the user flags
-  const_cast<Triangulation<dim> &>(*tria).load_user_flags(user_flags);
-}
+                                     // finally restore the user flags
+    const_cast<Triangulation<dim> &>(*tria).load_user_flags(user_flags);
+  }
 
 
-template <int dim>
-void hpDoFHandler<dim>::clear ()
-{
-                                  // release lock to old fe
-  finite_elements = 0;
+  template <int dim>
+  void DoFHandler<dim>::clear ()
+  {
+                                     // release lock to old fe
+    finite_elements = 0;
 
-                                  // release memory
-  clear_space ();
-}
+                                     // release memory
+    clear_space ();
+  }
 
 
 #if deal_II_dimension == 1
 
-template <>
-unsigned int
-hpDoFHandler<1>::distribute_dofs_on_cell (active_cell_iterator &cell,
+  template <>
+  unsigned int
+  DoFHandler<1>::distribute_dofs_on_cell (active_cell_iterator &cell,
                                          unsigned int          next_free_dof)
-{
-                                  // get the fe for this cell
-  const FiniteElement<1> &fe = cell->get_fe();
-
-                                  // distribute dofs of vertices
-  for (unsigned int v=0; v<GeometryInfo<1>::vertices_per_cell; ++v)
-    {
-      cell_iterator neighbor = cell->neighbor(v);
-
-      if (neighbor.state() == IteratorState::valid)
-       {
-                                          // find true neighbor; may be its
-                                          // a child of @p{neighbor}
-         while (neighbor->has_children())
-           neighbor = neighbor->child(v==0 ? 1 : 0);
-
-                                          // has neighbor already been processed?
-         if (neighbor->user_flag_set())
-                                            // copy dofs
-           {
-             if (v==0) 
-               for (unsigned int d=0; d<fe.dofs_per_vertex; ++d)
-                 cell->set_vertex_dof_index (0, d,
-                                             neighbor->vertex_dof_index (1, d));
-             else
-               for (unsigned int d=0; d<fe.dofs_per_vertex; ++d)
-                 cell->set_vertex_dof_index (1, d,
-                                             neighbor->vertex_dof_index (0, d));
-
-                                              // next neighbor
-             continue;
-           };
-       };
+  {
+                                     // get the fe for this cell
+    const FiniteElement<1> &fe = cell->get_fe();
+
+                                     // distribute dofs of vertices
+    for (unsigned int v=0; v<GeometryInfo<1>::vertices_per_cell; ++v)
+      {
+        cell_iterator neighbor = cell->neighbor(v);
+
+        if (neighbor.state() == IteratorState::valid)
+          {
+                                             // find true neighbor; may be its
+                                             // a child of @p{neighbor}
+            while (neighbor->has_children())
+              neighbor = neighbor->child(v==0 ? 1 : 0);
+
+                                             // has neighbor already been processed?
+            if (neighbor->user_flag_set())
+                                               // copy dofs
+              {
+                if (v==0) 
+                  for (unsigned int d=0; d<fe.dofs_per_vertex; ++d)
+                    cell->set_vertex_dof_index (0, d,
+                                                neighbor->vertex_dof_index (1, d));
+                else
+                  for (unsigned int d=0; d<fe.dofs_per_vertex; ++d)
+                    cell->set_vertex_dof_index (1, d,
+                                                neighbor->vertex_dof_index (0, d));
+
+                                                 // next neighbor
+                continue;
+              };
+          };
             
-                                      // otherwise: create dofs newly
-      for (unsigned int d=0; d<fe.dofs_per_vertex; ++d)
-       cell->set_vertex_dof_index (v, d, next_free_dof++);
-    };
+                                         // otherwise: create dofs newly
+        for (unsigned int d=0; d<fe.dofs_per_vertex; ++d)
+          cell->set_vertex_dof_index (v, d, next_free_dof++);
+      };
   
-                                  // dofs of line
-  for (unsigned int d=0; d<fe.dofs_per_line; ++d)
-    cell->set_dof_index (d, next_free_dof++);
+                                     // dofs of line
+    for (unsigned int d=0; d<fe.dofs_per_line; ++d)
+      cell->set_dof_index (d, next_free_dof++);
 
-                                  // note that this cell has been processed
-  cell->set_user_flag ();
+                                     // note that this cell has been processed
+    cell->set_user_flag ();
   
-  return next_free_dof;
-}
+    return next_free_dof;
+  }
 
 #endif
 
 
 #if deal_II_dimension == 2
 
-template <>
-unsigned int
-hpDoFHandler<2>::distribute_dofs_on_cell (active_cell_iterator &cell,
+  template <>
+  unsigned int
+  DoFHandler<2>::distribute_dofs_on_cell (active_cell_iterator &cell,
                                          unsigned int          next_free_dof)
-{
-                                  // get the fe for this cell
-  const FiniteElement<2> &fe = cell->get_fe();
-
-  if (fe.dofs_per_vertex > 0)
-                                    // number dofs on vertices
-    for (unsigned int vertex=0; vertex<GeometryInfo<2>::vertices_per_cell; ++vertex)
-                                      // check whether dofs for this
-                                      // vertex have been distributed
-                                      // (only check the first dof)
-      if (cell->vertex_dof_index(vertex, 0) == invalid_dof_index)
-       for (unsigned int d=0; d<fe.dofs_per_vertex; ++d)
-         cell->set_vertex_dof_index (vertex, d, next_free_dof++);
+  {
+                                     // get the fe for this cell
+    const FiniteElement<2> &fe = cell->get_fe();
+
+    if (fe.dofs_per_vertex > 0)
+                                       // number dofs on vertices
+      for (unsigned int vertex=0; vertex<GeometryInfo<2>::vertices_per_cell; ++vertex)
+                                         // check whether dofs for this
+                                         // vertex have been distributed
+                                         // (only check the first dof)
+        if (cell->vertex_dof_index(vertex, 0) == invalid_dof_index)
+          for (unsigned int d=0; d<fe.dofs_per_vertex; ++d)
+            cell->set_vertex_dof_index (vertex, d, next_free_dof++);
     
-                                  // for the four sides
+                                     // for the four sides
 //TODO[?] Does not work for continuous FEs
-  if (fe.dofs_per_line > 0)
-    for (unsigned int side=0; side<GeometryInfo<2>::faces_per_cell; ++side)
-      {
-       line_iterator line = cell->line(side);
-
-                                        // distribute dofs if necessary:
-                                        // check whether line dof is already
-                                        // numbered (check only first dof)
-       if (line->dof_index(0) == invalid_dof_index)
-                                          // if not: distribute dofs
-         for (unsigned int d=0; d<fe.dofs_per_line; ++d)
-           line->set_dof_index (d, next_free_dof++);
-      };
+    if (fe.dofs_per_line > 0)
+      for (unsigned int side=0; side<GeometryInfo<2>::faces_per_cell; ++side)
+        {
+          line_iterator line = cell->line(side);
+
+                                           // distribute dofs if necessary:
+                                           // check whether line dof is already
+                                           // numbered (check only first dof)
+          if (line->dof_index(0) == invalid_dof_index)
+                                             // if not: distribute dofs
+            for (unsigned int d=0; d<fe.dofs_per_line; ++d)
+              line->set_dof_index (d, next_free_dof++);
+        };
 
 
-                                  // dofs of quad
-  if (fe.dofs_per_quad > 0)
-    for (unsigned int d=0; d<fe.dofs_per_quad; ++d)
-      cell->set_dof_index (d, next_free_dof++);
+                                     // dofs of quad
+    if (fe.dofs_per_quad > 0)
+      for (unsigned int d=0; d<fe.dofs_per_quad; ++d)
+        cell->set_dof_index (d, next_free_dof++);
 
 
-                                  // note that this cell has been processed
-  cell->set_user_flag ();
+                                     // note that this cell has been processed
+    cell->set_user_flag ();
   
-  return next_free_dof;
-}
+    return next_free_dof;
+  }
 
 #endif
 
 
 #if deal_II_dimension == 3
 
-template <>
-unsigned int
-hpDoFHandler<3>::distribute_dofs_on_cell (active_cell_iterator &cell,
+  template <>
+  unsigned int
+  DoFHandler<3>::distribute_dofs_on_cell (active_cell_iterator &cell,
                                          unsigned int          next_free_dof)
-{
-                                  // get the fe for this cell
-  const FiniteElement<3> &fe = cell->get_fe();
-
-  if (fe.dofs_per_vertex > 0)
-                                    // number dofs on vertices
-    for (unsigned int vertex=0; vertex<GeometryInfo<3>::vertices_per_cell; ++vertex)
-                                      // check whether dofs for this
-                                      // vertex have been distributed
-                                      // (only check the first dof)
-      if (cell->vertex_dof_index(vertex, 0) == invalid_dof_index)
-       for (unsigned int d=0; d<fe.dofs_per_vertex; ++d)
-         cell->set_vertex_dof_index (vertex, d, next_free_dof++);
+  {
+                                     // get the fe for this cell
+    const FiniteElement<3> &fe = cell->get_fe();
+
+    if (fe.dofs_per_vertex > 0)
+                                       // number dofs on vertices
+      for (unsigned int vertex=0; vertex<GeometryInfo<3>::vertices_per_cell; ++vertex)
+                                         // check whether dofs for this
+                                         // vertex have been distributed
+                                         // (only check the first dof)
+        if (cell->vertex_dof_index(vertex, 0) == invalid_dof_index)
+          for (unsigned int d=0; d<fe.dofs_per_vertex; ++d)
+            cell->set_vertex_dof_index (vertex, d, next_free_dof++);
     
-                                  // for the lines
-  if (fe.dofs_per_line > 0)
-    for (unsigned int l=0; l<GeometryInfo<3>::lines_per_cell; ++l)
-      {
-       line_iterator line = cell->line(l);
+                                     // for the lines
+    if (fe.dofs_per_line > 0)
+      for (unsigned int l=0; l<GeometryInfo<3>::lines_per_cell; ++l)
+        {
+          line_iterator line = cell->line(l);
        
-                                        // distribute dofs if necessary:
-                                        // check whether line dof is already
-                                        // numbered (check only first dof)
-       if (line->dof_index(0) == invalid_dof_index)
-                                          // if not: distribute dofs
-         for (unsigned int d=0; d<fe.dofs_per_line; ++d)
-           line->set_dof_index (d, next_free_dof++);       
-      };
+                                           // distribute dofs if necessary:
+                                           // check whether line dof is already
+                                           // numbered (check only first dof)
+          if (line->dof_index(0) == invalid_dof_index)
+                                             // if not: distribute dofs
+            for (unsigned int d=0; d<fe.dofs_per_line; ++d)
+              line->set_dof_index (d, next_free_dof++);            
+        };
 
-                                  // for the quads
-  if (fe.dofs_per_quad > 0)
-    for (unsigned int q=0; q<GeometryInfo<3>::quads_per_cell; ++q)
-      {
-       quad_iterator quad = cell->quad(q);
+                                     // for the quads
+    if (fe.dofs_per_quad > 0)
+      for (unsigned int q=0; q<GeometryInfo<3>::quads_per_cell; ++q)
+        {
+          quad_iterator quad = cell->quad(q);
        
-                                        // distribute dofs if necessary:
-                                        // check whether quad dof is already
-                                        // numbered (check only first dof)
-       if (quad->dof_index(0) == invalid_dof_index)
-                                          // if not: distribute dofs
-         for (unsigned int d=0; d<fe.dofs_per_quad; ++d)
-           quad->set_dof_index (d, next_free_dof++);       
-      };
+                                           // distribute dofs if necessary:
+                                           // check whether quad dof is already
+                                           // numbered (check only first dof)
+          if (quad->dof_index(0) == invalid_dof_index)
+                                             // if not: distribute dofs
+            for (unsigned int d=0; d<fe.dofs_per_quad; ++d)
+              quad->set_dof_index (d, next_free_dof++);            
+        };
 
 
-                                  // dofs of hex
-  if (fe.dofs_per_hex > 0)
-    for (unsigned int d=0; d<fe.dofs_per_hex; ++d)
-      cell->set_dof_index (d, next_free_dof++);
+                                     // dofs of hex
+    if (fe.dofs_per_hex > 0)
+      for (unsigned int d=0; d<fe.dofs_per_hex; ++d)
+        cell->set_dof_index (d, next_free_dof++);
 
 
-                                  // note that this cell has been processed
-  cell->set_user_flag ();
+                                     // note that this cell has been processed
+    cell->set_user_flag ();
   
-  return next_free_dof;
-}
+    return next_free_dof;
+  }
 
 #endif
 
 
 #if deal_II_dimension == 1
 
-template <>
-void hpDoFHandler<1>::renumber_dofs (const std::vector<unsigned int> &new_numbers)
-{
-  Assert (new_numbers.size() == n_dofs(), ExcRenumberingIncomplete());
+  template <>
+  void DoFHandler<1>::renumber_dofs (const std::vector<unsigned int> &new_numbers)
+  {
+    Assert (new_numbers.size() == n_dofs(), ExcRenumberingIncomplete());
 #ifdef DEBUG
-                                  // assert that the new indices are
-                                  // consecutively numbered
-  if (true)
-    {
-      std::vector<unsigned int> tmp(new_numbers);
-      std::sort (tmp.begin(), tmp.end());
-      std::vector<unsigned int>::const_iterator p = tmp.begin();
-      unsigned int                         i = 0;
-      for (; p!=tmp.end(); ++p, ++i)
-       Assert (*p == i, ExcNewNumbersNotConsecutive(i));
-    };
+                                     // assert that the new indices are
+                                     // consecutively numbered
+    if (true)
+      {
+        std::vector<unsigned int> tmp(new_numbers);
+        std::sort (tmp.begin(), tmp.end());
+        std::vector<unsigned int>::const_iterator p = tmp.begin();
+        unsigned int                         i = 0;
+        for (; p!=tmp.end(); ++p, ++i)
+          Assert (*p == i, ExcNewNumbersNotConsecutive(i));
+      };
 #endif
 
-                                  // note that we can not use cell iterators
-                                  // in this function since then we would
-                                  // renumber the dofs on the interface of
-                                  // two cells more than once. Anyway, this
-                                  // way it's not only more correct but also
-                                  // faster; note, however, that dof numbers
-                                  // may be invalid_dof_index, namely when the appropriate
-                                  // vertex/line/etc is unused
-  for (std::vector<unsigned int>::iterator i=vertex_dofs.begin(); i!=vertex_dofs.end(); ++i)
-    if (*i != invalid_dof_index)
-      *i = new_numbers[*i];
-  
-  for (unsigned int level=0; level<levels.size(); ++level) 
-    for (std::vector<unsigned int>::iterator i=levels[level]->line_dofs.begin();
-        i!=levels[level]->line_dofs.end(); ++i)
+                                     // note that we can not use cell iterators
+                                     // in this function since then we would
+                                     // renumber the dofs on the interface of
+                                     // two cells more than once. Anyway, this
+                                     // way it's not only more correct but also
+                                     // faster; note, however, that dof numbers
+                                     // may be invalid_dof_index, namely when the appropriate
+                                     // vertex/line/etc is unused
+    for (std::vector<unsigned int>::iterator i=vertex_dofs.begin(); i!=vertex_dofs.end(); ++i)
       if (*i != invalid_dof_index)
-       *i = new_numbers[*i];
-}
+        *i = new_numbers[*i];
+  
+    for (unsigned int level=0; level<levels.size(); ++level) 
+      for (std::vector<unsigned int>::iterator i=levels[level]->line_dofs.begin();
+           i!=levels[level]->line_dofs.end(); ++i)
+        if (*i != invalid_dof_index)
+          *i = new_numbers[*i];
+  }
 
 #endif
 
 
 #if deal_II_dimension == 2
 
-template <>
-void hpDoFHandler<2>::renumber_dofs (const std::vector<unsigned int> &new_numbers)
-{
-  Assert (new_numbers.size() == n_dofs(), ExcRenumberingIncomplete());
+  template <>
+  void DoFHandler<2>::renumber_dofs (const std::vector<unsigned int> &new_numbers)
+  {
+    Assert (new_numbers.size() == n_dofs(), ExcRenumberingIncomplete());
 #ifdef DEBUG
-                                  // assert that the new indices are
-                                  // consecutively numbered
-  if (true)
-    {
-      std::vector<unsigned int> tmp(new_numbers);
-      std::sort (tmp.begin(), tmp.end());
-      std::vector<unsigned int>::const_iterator p = tmp.begin();
-      unsigned int                         i = 0;
-      for (; p!=tmp.end(); ++p, ++i)
-       Assert (*p == i, ExcNewNumbersNotConsecutive(i));
-    };
+                                     // assert that the new indices are
+                                     // consecutively numbered
+    if (true)
+      {
+        std::vector<unsigned int> tmp(new_numbers);
+        std::sort (tmp.begin(), tmp.end());
+        std::vector<unsigned int>::const_iterator p = tmp.begin();
+        unsigned int                         i = 0;
+        for (; p!=tmp.end(); ++p, ++i)
+          Assert (*p == i, ExcNewNumbersNotConsecutive(i));
+      };
 #endif
 
-                                  // note that we can not use cell iterators
-                                  // in this function since then we would
-                                  // renumber the dofs on the interface of
-                                  // two cells more than once. Anyway, this
-                                  // way it's not only more correct but also
-                                  // faster; note, however, that dof numbers
-                                  // may be invalid_dof_index, namely when the appropriate
-                                  // vertex/line/etc is unused
-  for (std::vector<unsigned int>::iterator i=vertex_dofs.begin(); i!=vertex_dofs.end(); ++i)
-    if (*i != invalid_dof_index)
-      *i = new_numbers[*i];
+                                     // note that we can not use cell iterators
+                                     // in this function since then we would
+                                     // renumber the dofs on the interface of
+                                     // two cells more than once. Anyway, this
+                                     // way it's not only more correct but also
+                                     // faster; note, however, that dof numbers
+                                     // may be invalid_dof_index, namely when the appropriate
+                                     // vertex/line/etc is unused
+    for (std::vector<unsigned int>::iterator i=vertex_dofs.begin(); i!=vertex_dofs.end(); ++i)
+      if (*i != invalid_dof_index)
+        *i = new_numbers[*i];
   
-  for (unsigned int level=0; level<levels.size(); ++level) 
-    {
-      for (std::vector<unsigned int>::iterator i=levels[level]->line_dofs.begin();
-          i!=levels[level]->line_dofs.end(); ++i)
-       if (*i != invalid_dof_index)
-         *i = new_numbers[*i];
-      for (std::vector<unsigned int>::iterator i=levels[level]->quad_dofs.begin();
-          i!=levels[level]->quad_dofs.end(); ++i)
-       if (*i != invalid_dof_index)
-         *i = new_numbers[*i];
-    };
-}
+    for (unsigned int level=0; level<levels.size(); ++level) 
+      {
+        for (std::vector<unsigned int>::iterator i=levels[level]->line_dofs.begin();
+             i!=levels[level]->line_dofs.end(); ++i)
+          if (*i != invalid_dof_index)
+            *i = new_numbers[*i];
+        for (std::vector<unsigned int>::iterator i=levels[level]->quad_dofs.begin();
+             i!=levels[level]->quad_dofs.end(); ++i)
+          if (*i != invalid_dof_index)
+            *i = new_numbers[*i];
+      };
+  }
 
 #endif
 
 
 #if deal_II_dimension == 3
 
-template <>
-void hpDoFHandler<3>::renumber_dofs (const std::vector<unsigned int> &new_numbers)
-{
-  Assert (new_numbers.size() == n_dofs(), ExcRenumberingIncomplete());
+  template <>
+  void DoFHandler<3>::renumber_dofs (const std::vector<unsigned int> &new_numbers)
+  {
+    Assert (new_numbers.size() == n_dofs(), ExcRenumberingIncomplete());
 #ifdef DEBUG
-                                  // assert that the new indices are
-                                  // consecutively numbered
-  if (true)
-    {
-      std::vector<unsigned int> tmp(new_numbers);
-      std::sort (tmp.begin(), tmp.end());
-      std::vector<unsigned int>::const_iterator p = tmp.begin();
-      unsigned int                              i = 0;
-      for (; p!=tmp.end(); ++p, ++i)
-       Assert (*p == i, ExcNewNumbersNotConsecutive(i));
-    };
+                                     // assert that the new indices are
+                                     // consecutively numbered
+    if (true)
+      {
+        std::vector<unsigned int> tmp(new_numbers);
+        std::sort (tmp.begin(), tmp.end());
+        std::vector<unsigned int>::const_iterator p = tmp.begin();
+        unsigned int                              i = 0;
+        for (; p!=tmp.end(); ++p, ++i)
+          Assert (*p == i, ExcNewNumbersNotConsecutive(i));
+      };
 #endif
 
-                                  // note that we can not use cell iterators
-                                  // in this function since then we would
-                                  // renumber the dofs on the interface of
-                                  // two cells more than once. Anyway, this
-                                  // way it's not only more correct but also
-                                  // faster; note, however, that dof numbers
-                                  // may be invalid_dof_index, namely when the appropriate
-                                  // vertex/line/etc is unused
-  for (std::vector<unsigned int>::iterator i=vertex_dofs.begin(); i!=vertex_dofs.end(); ++i)
-    if (*i != invalid_dof_index)
-      *i = new_numbers[*i];
+                                     // note that we can not use cell iterators
+                                     // in this function since then we would
+                                     // renumber the dofs on the interface of
+                                     // two cells more than once. Anyway, this
+                                     // way it's not only more correct but also
+                                     // faster; note, however, that dof numbers
+                                     // may be invalid_dof_index, namely when the appropriate
+                                     // vertex/line/etc is unused
+    for (std::vector<unsigned int>::iterator i=vertex_dofs.begin(); i!=vertex_dofs.end(); ++i)
+      if (*i != invalid_dof_index)
+        *i = new_numbers[*i];
   
-  for (unsigned int level=0; level<levels.size(); ++level) 
-    {
-      for (std::vector<unsigned int>::iterator i=levels[level]->line_dofs.begin();
-          i!=levels[level]->line_dofs.end(); ++i)
-       if (*i != invalid_dof_index)
-         *i = new_numbers[*i];
-      for (std::vector<unsigned int>::iterator i=levels[level]->quad_dofs.begin();
-          i!=levels[level]->quad_dofs.end(); ++i)
-       if (*i != invalid_dof_index)
-         *i = new_numbers[*i];
-      for (std::vector<unsigned int>::iterator i=levels[level]->hex_dofs.begin();
-          i!=levels[level]->hex_dofs.end(); ++i)
-       if (*i != invalid_dof_index)
-         *i = new_numbers[*i];
-    };
-}
+    for (unsigned int level=0; level<levels.size(); ++level) 
+      {
+        for (std::vector<unsigned int>::iterator i=levels[level]->line_dofs.begin();
+             i!=levels[level]->line_dofs.end(); ++i)
+          if (*i != invalid_dof_index)
+            *i = new_numbers[*i];
+        for (std::vector<unsigned int>::iterator i=levels[level]->quad_dofs.begin();
+             i!=levels[level]->quad_dofs.end(); ++i)
+          if (*i != invalid_dof_index)
+            *i = new_numbers[*i];
+        for (std::vector<unsigned int>::iterator i=levels[level]->hex_dofs.begin();
+             i!=levels[level]->hex_dofs.end(); ++i)
+          if (*i != invalid_dof_index)
+            *i = new_numbers[*i];
+      };
+  }
 
 #endif
 
 
 #if deal_II_dimension == 1
 
-template <>
-unsigned int
-hpDoFHandler<1>::max_couplings_between_dofs () const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
-  return std::min(3*finite_elements->max_dofs_per_vertex() +
-                 2*finite_elements->max_dofs_per_line(), n_dofs());
-}
+  template <>
+  unsigned int
+  DoFHandler<1>::max_couplings_between_dofs () const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
+    return std::min(3*finite_elements->max_dofs_per_vertex() +
+                    2*finite_elements->max_dofs_per_line(), n_dofs());
+  }
 
 
 
-template <>
-unsigned int
-hpDoFHandler<1>::max_couplings_between_boundary_dofs () const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
-  return finite_elements->max_dofs_per_vertex();
-}
+  template <>
+  unsigned int
+  DoFHandler<1>::max_couplings_between_boundary_dofs () const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
+    return finite_elements->max_dofs_per_vertex();
+  }
 
 #endif
 
 
 #if deal_II_dimension == 2
 
-template <>
-unsigned int
-hpDoFHandler<2>::max_couplings_between_dofs () const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
-
-                                  // get these numbers by drawing pictures
-                                  // and counting...
-                                  // example:
-                                  //   |     |     |
-                                  // --x-----x--x--X--
-                                  //   |     |  |  |
-                                  //   |     x--x--x
-                                  //   |     |  |  |
-                                  // --x--x--*--x--x--
-                                  //   |  |  |     |
-                                  //   x--x--x     |
-                                  //   |  |  |     |
-                                  // --X--x--x-----x--
-                                  //   |     |     |
-                                  // x = vertices connected with center vertex *;
-                                  //   = total of 19
-                                  // (the X vertices are connected with * if
-                                  // the vertices adjacent to X are hanging
-                                  // nodes)
-                                  // count lines -> 28 (don't forget to count
-                                  // mother and children separately!)
-  unsigned int max_couplings;
-  switch (tria->max_adjacent_cells())
-    {
-      case 4:
-           max_couplings=19*finite_elements->max_dofs_per_vertex() +
-                         28*finite_elements->max_dofs_per_line() +
-                         8*finite_elements->max_dofs_per_quad();
-           break;
-      case 5:
-           max_couplings=21*finite_elements->max_dofs_per_vertex() +
-                         31*finite_elements->max_dofs_per_line() +
-                         9*finite_elements->max_dofs_per_quad();
-           break;
-      case 6:
-           max_couplings=28*finite_elements->max_dofs_per_vertex() +
-                         42*finite_elements->max_dofs_per_line() +
-                         12*finite_elements->max_dofs_per_quad();
-           break;
-      case 7:
-           max_couplings=30*finite_elements->max_dofs_per_vertex() +
-                         45*finite_elements->max_dofs_per_line() +
-                         13*finite_elements->max_dofs_per_quad();
-           break;
-      case 8:
-           max_couplings=37*finite_elements->max_dofs_per_vertex() +
-                         56*finite_elements->max_dofs_per_line() +
-                         16*finite_elements->max_dofs_per_quad();
-           break;
-      default:
-           Assert (false, ExcNotImplemented());
-           max_couplings=0;
-    };
-  return std::min(max_couplings,n_dofs());
-}
+  template <>
+  unsigned int
+  DoFHandler<2>::max_couplings_between_dofs () const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
+
+                                     // get these numbers by drawing pictures
+                                     // and counting...
+                                     // example:
+                                     //   |     |     |
+                                     // --x-----x--x--X--
+                                     //   |     |  |  |
+                                     //   |     x--x--x
+                                     //   |     |  |  |
+                                     // --x--x--*--x--x--
+                                     //   |  |  |     |
+                                     //   x--x--x     |
+                                     //   |  |  |     |
+                                     // --X--x--x-----x--
+                                     //   |     |     |
+                                     // x = vertices connected with center vertex *;
+                                     //   = total of 19
+                                     // (the X vertices are connected with * if
+                                     // the vertices adjacent to X are hanging
+                                     // nodes)
+                                     // count lines -> 28 (don't forget to count
+                                     // mother and children separately!)
+    unsigned int max_couplings;
+    switch (tria->max_adjacent_cells())
+      {
+        case 4:
+              max_couplings=19*finite_elements->max_dofs_per_vertex() +
+                            28*finite_elements->max_dofs_per_line() +
+                            8*finite_elements->max_dofs_per_quad();
+              break;
+        case 5:
+              max_couplings=21*finite_elements->max_dofs_per_vertex() +
+                            31*finite_elements->max_dofs_per_line() +
+                            9*finite_elements->max_dofs_per_quad();
+              break;
+        case 6:
+              max_couplings=28*finite_elements->max_dofs_per_vertex() +
+                            42*finite_elements->max_dofs_per_line() +
+                            12*finite_elements->max_dofs_per_quad();
+              break;
+        case 7:
+              max_couplings=30*finite_elements->max_dofs_per_vertex() +
+                            45*finite_elements->max_dofs_per_line() +
+                            13*finite_elements->max_dofs_per_quad();
+              break;
+        case 8:
+              max_couplings=37*finite_elements->max_dofs_per_vertex() +
+                            56*finite_elements->max_dofs_per_line() +
+                            16*finite_elements->max_dofs_per_quad();
+              break;
+        default:
+              Assert (false, ExcNotImplemented());
+              max_couplings=0;
+      };
+    return std::min(max_couplings,n_dofs());
+  }
 
 
 
-template <>
-unsigned int
-hpDoFHandler<2>::max_couplings_between_boundary_dofs () const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
-  return (3*finite_elements->max_dofs_per_vertex()
-         +
-         2*finite_elements->max_dofs_per_line());
-}
+  template <>
+  unsigned int
+  DoFHandler<2>::max_couplings_between_boundary_dofs () const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
+    return (3*finite_elements->max_dofs_per_vertex()
+            +
+            2*finite_elements->max_dofs_per_line());
+  }
 
 #endif
 
 
 #if deal_II_dimension == 3
 
-template <>
-unsigned int
-hpDoFHandler<3>::max_couplings_between_dofs () const
-{
+  template <>
+  unsigned int
+  DoFHandler<3>::max_couplings_between_dofs () const
+  {
 //TODO:[?] Invent significantly better estimates than the ones in this function  
-  Assert (finite_elements != 0, ExcNoFESelected());
-
-                                  // doing the same thing here is a rather
-                                  // complicated thing, compared to the 2d
-                                  // case, since it is hard to draw pictures
-                                  // with several refined hexahedra :-) so I
-                                  // presently only give a coarse estimate
-                                  // for the case that at most 8 hexes meet
-                                  // at each vertex
-                                  //
-                                  // can anyone give better estimate here?
-  const unsigned int max_adjacent_cells = tria->max_adjacent_cells();
-
-  unsigned int max_couplings;
-  if (max_adjacent_cells <= 8)
-    max_couplings=7*7*7*finite_elements->max_dofs_per_vertex() +
-                 7*6*7*3*finite_elements->max_dofs_per_line() +
-                 9*4*7*3*finite_elements->max_dofs_per_quad() +
-                 27*finite_elements->max_dofs_per_hex();
-  else
-    {
-      Assert (false, ExcNotImplemented());
-      max_couplings=0;
-    }
+    Assert (finite_elements != 0, ExcNoFESelected());
+
+                                     // doing the same thing here is a rather
+                                     // complicated thing, compared to the 2d
+                                     // case, since it is hard to draw pictures
+                                     // with several refined hexahedra :-) so I
+                                     // presently only give a coarse estimate
+                                     // for the case that at most 8 hexes meet
+                                     // at each vertex
+                                     //
+                                     // can anyone give better estimate here?
+    const unsigned int max_adjacent_cells = tria->max_adjacent_cells();
+
+    unsigned int max_couplings;
+    if (max_adjacent_cells <= 8)
+      max_couplings=7*7*7*finite_elements->max_dofs_per_vertex() +
+                    7*6*7*3*finite_elements->max_dofs_per_line() +
+                    9*4*7*3*finite_elements->max_dofs_per_quad() +
+                    27*finite_elements->max_dofs_per_hex();
+    else
+      {
+        Assert (false, ExcNotImplemented());
+        max_couplings=0;
+      }
   
-  return std::min(max_couplings,n_dofs());
-}
+    return std::min(max_couplings,n_dofs());
+  }
 
 
-template <>
-unsigned int
-hpDoFHandler<3>::max_couplings_between_boundary_dofs () const
-{
-  Assert (finite_elements != 0, ExcNoFESelected());
-                                  // we need to take refinement of
-                                  // one boundary face into consideration
-                                  // here; in fact, this function returns
-                                  // what #max_coupling_between_dofs<2>
-                                  // returns
-                                  //
-                                  // we assume here, that only four faces
-                                  // meet at the boundary; this assumption
-                                  // is not justified and needs to be
-                                  // fixed some time. fortunately, ommitting
-                                  // it for now does no harm since the
-                                  // matrix will cry foul if its requirements
-                                  // are not satisfied
-  return (19*finite_elements->max_dofs_per_vertex() +
-         28*finite_elements->max_dofs_per_line() +
-         8*finite_elements->max_dofs_per_quad());
-}
+  template <>
+  unsigned int
+  DoFHandler<3>::max_couplings_between_boundary_dofs () const
+  {
+    Assert (finite_elements != 0, ExcNoFESelected());
+                                     // we need to take refinement of
+                                     // one boundary face into consideration
+                                     // here; in fact, this function returns
+                                     // what #max_coupling_between_dofs<2>
+                                     // returns
+                                     //
+                                     // we assume here, that only four faces
+                                     // meet at the boundary; this assumption
+                                     // is not justified and needs to be
+                                     // fixed some time. fortunately, ommitting
+                                     // it for now does no harm since the
+                                     // matrix will cry foul if its requirements
+                                     // are not satisfied
+    return (19*finite_elements->max_dofs_per_vertex() +
+            28*finite_elements->max_dofs_per_line() +
+            8*finite_elements->max_dofs_per_quad());
+  }
 
 
 #endif
@@ -1910,49 +1913,49 @@ hpDoFHandler<3>::max_couplings_between_boundary_dofs () const
 
 #if deal_II_dimension == 1
 
-template <>
-void hpDoFHandler<1>::reserve_space ()
-{
+  template <>
+  void DoFHandler<1>::reserve_space ()
+  {
 //TODO: This presently works only on the first FE of the FECollection. Fix this
-  Assert (finite_elements != 0, ExcNoFESelected());
-  Assert (tria->n_levels() > 0, ExcInvalidTriangulation());
-  Assert (tria->n_levels() == levels.size (), ExcInternalError ());
+    Assert (finite_elements != 0, ExcNoFESelected());
+    Assert (tria->n_levels() > 0, ExcInvalidTriangulation());
+    Assert (tria->n_levels() == levels.size (), ExcInternalError ());
   
-                                   // Backup the active_fe_indices vectors.
-                                   // The user might have put something
-                                   // important in them.
-  std::vector<std::vector<unsigned int> > active_fe_backup(levels.size ());
-  for (unsigned int i = 0; i < levels.size (); ++i)
+                                     // Backup the active_fe_indices vectors.
+                                     // The user might have put something
+                                     // important in them.
+    std::vector<std::vector<unsigned int> > active_fe_backup(levels.size ());
+    for (unsigned int i = 0; i < levels.size (); ++i)
       std::swap (levels[i]->active_fe_indices, active_fe_backup[i]);
 
-                                   // delete all levels and set them up
-                                   // newly, since vectors are
-                                   // troublesome if you want to change
-                                   // their size
-  clear_space ();
-
-  vertex_dofs.resize(tria->vertices.size()*finite_elements->get_fe(0).dofs_per_vertex,
-                    invalid_dof_index);
+                                     // delete all levels and set them up
+                                     // newly, since vectors are
+                                     // troublesome if you want to change
+                                     // their size
+    clear_space ();
 
-  for (unsigned int i=0; i<tria->n_levels(); ++i) 
-    {
-      levels.push_back (new hpDoFLevel<1>);
-      std::swap (active_fe_backup[i], levels.back()->active_fe_indices);
+    vertex_dofs.resize(tria->vertices.size()*finite_elements->get_fe(0).dofs_per_vertex,
+                       invalid_dof_index);
 
-      levels.back()->dof_line_index_offset = std::vector<unsigned int>
-         (tria->levels[i]->lines.lines.size (),static_cast<unsigned int>(-1));
-      unsigned int dofs_for_lines = 0;
-      for (unsigned int j = 0; j < tria->levels[i]->lines.lines.size(); ++j)
+    for (unsigned int i=0; i<tria->n_levels(); ++i) 
       {
-         levels.back()->dof_line_index_offset[j] = dofs_for_lines;
-         dofs_for_lines += finite_elements->
-             get_fe (levels.back ()->active_fe_indices[j]).dofs_per_line;
-      }
-
-      levels.back()->line_dofs = std::vector<unsigned int>(dofs_for_lines,
-                                                          invalid_dof_index);
-    };
-}
+        levels.push_back (new hp::DoFLevel<1>);
+        std::swap (active_fe_backup[i], levels.back()->active_fe_indices);
+
+        levels.back()->dof_line_index_offset = std::vector<unsigned int>
+                                               (tria->levels[i]->lines.lines.size (),static_cast<unsigned int>(-1));
+        unsigned int dofs_for_lines = 0;
+        for (unsigned int j = 0; j < tria->levels[i]->lines.lines.size(); ++j)
+          {
+            levels.back()->dof_line_index_offset[j] = dofs_for_lines;
+            dofs_for_lines += finite_elements->
+                              get_fe (levels.back ()->active_fe_indices[j]).dofs_per_line;
+          }
+
+        levels.back()->line_dofs = std::vector<unsigned int>(dofs_for_lines,
+                                                             invalid_dof_index);
+      };
+  }
 
 
 #endif
@@ -1960,244 +1963,244 @@ void hpDoFHandler<1>::reserve_space ()
 
 #if deal_II_dimension == 2
 
-template <>
-void hpDoFHandler<2>::reserve_space ()
-{
+  template <>
+  void DoFHandler<2>::reserve_space ()
+  {
 //TODO: This presently works only on the first FE of the FECollection. Fix this
-  Assert (finite_elements != 0, ExcNoFESelected());
-  Assert (tria->n_levels() > 0, ExcInvalidTriangulation());
-  Assert (tria->n_levels() == levels.size (), ExcInternalError ());
+    Assert (finite_elements != 0, ExcNoFESelected());
+    Assert (tria->n_levels() > 0, ExcInvalidTriangulation());
+    Assert (tria->n_levels() == levels.size (), ExcInternalError ());
   
-                                   // Backup the active_fe_indices vectors.
-                                   // The user might have put something
-                                   // important in them.
-  std::vector<std::vector<unsigned int> > active_fe_backup(levels.size ());
-  for (unsigned int i = 0; i < levels.size (); ++i)
+                                     // Backup the active_fe_indices vectors.
+                                     // The user might have put something
+                                     // important in them.
+    std::vector<std::vector<unsigned int> > active_fe_backup(levels.size ());
+    for (unsigned int i = 0; i < levels.size (); ++i)
       std::swap (levels[i]->active_fe_indices, active_fe_backup[i]);
 
-                                   // delete all levels and set them up
-                                   // newly, since vectors are
-                                   // troublesome if you want to change
-                                   // their size
-  clear_space ();
+                                     // delete all levels and set them up
+                                     // newly, since vectors are
+                                     // troublesome if you want to change
+                                     // their size
+    clear_space ();
   
-  vertex_dofs.resize(tria->vertices.size()*finite_elements->get_fe(0).dofs_per_vertex,
-                    invalid_dof_index);
+    vertex_dofs.resize(tria->vertices.size()*finite_elements->get_fe(0).dofs_per_vertex,
+                       invalid_dof_index);
 
 //TODO[?] Does not work for continuous FEs. Problem is at faces, which might have a different
 // number of DoFs due to the different active_fe_index of the adjacent cells.
-  for (unsigned int i=0; i<tria->n_levels(); ++i) 
-    {
-      levels.push_back (new hpDoFLevel<2>);
-      std::swap (active_fe_backup[i], levels.back()->active_fe_indices);
-
-      levels.back()->dof_line_index_offset = std::vector<unsigned int>
-         (tria->levels[i]->lines.lines.size (),static_cast<unsigned int>(-1));
-      levels.back()->dof_quad_index_offset = std::vector<unsigned int>
-         (tria->levels[i]->quads.quads.size (),static_cast<unsigned int>(-1));
-
-                                   // Create table of active_fe_levels of cells
-                                   // adjacent to the lines.
-      std::vector<unsigned int> line_active_fe_indices
+    for (unsigned int i=0; i<tria->n_levels(); ++i) 
+      {
+        levels.push_back (new hp::DoFLevel<2>);
+        std::swap (active_fe_backup[i], levels.back()->active_fe_indices);
+
+        levels.back()->dof_line_index_offset = std::vector<unsigned int>
+                                               (tria->levels[i]->lines.lines.size (),static_cast<unsigned int>(-1));
+        levels.back()->dof_quad_index_offset = std::vector<unsigned int>
+                                               (tria->levels[i]->quads.quads.size (),static_cast<unsigned int>(-1));
+
+                                         // Create table of active_fe_levels of cells
+                                         // adjacent to the lines.
+        std::vector<unsigned int> line_active_fe_indices
          (tria->levels[i]->lines.lines.size () * 2, 
           static_cast<unsigned int>(-1));
 
-      for (unsigned int j = 0; j < tria->levels[i]->quads.quads.size (); ++j)
-      {
-         const unsigned int cell_fe_index = levels.back ()->active_fe_indices[j];
-
-                                  // Referring to the following diagram from
-                                  // documentation of the triangulation class,
-                                  // it can be seen where the indices in the
-                                  // following lines of code come from.
-                                  //          2
-                                  //      3--->---2
-                                  //      |       |
-                                  //     3^       ^1
-                                  //      |       |
-                                  //      0--->---1
-                                  //          0
-                                  // Face 0 and 1 have the cell to the left,
-                                  // while Face 2 and 3 have the cell to
-                                  // the right (if the line points upward).
-         line_active_fe_indices[tria->levels[i]->
-                                quads.quads[j].line(0) * 2] = cell_fe_index;
-         line_active_fe_indices[tria->levels[i]->
-                                quads.quads[j].line(1) * 2] = cell_fe_index;
-         line_active_fe_indices[tria->levels[i]->
-                                quads.quads[j].line(2) * 2 + 1] = cell_fe_index;
-         line_active_fe_indices[tria->levels[i]->
-                                quads.quads[j].line(3) * 2 + 1] = cell_fe_index;
-      }
-
-      unsigned int dofs_for_lines = 0;
-      for (unsigned int j = 0; j < tria->levels[i]->lines.lines.size (); ++j)
-      {
-         levels.back()->dof_line_index_offset[j] = dofs_for_lines;
-
-         // The "line_dofs" field in the hpDoFLevel class for 2D gets a
-         // slightly different meaning in 2D. Actually in 2D one line can have
-         // two different active_fe_indices. Therefore it is not sufficient to
-         // reserve some space for the DoFs on one active_fe_index. Instead
-         // the DoF indices for both active_fe_indices will be stored in the
-         // "line_dofs" field. To differentiate between these field later,
-         // a simple linked list based will be maintained to allow access to
-         // the correct DoFs:
-         // 0: active_fe_index of line, to which the following DoFs belong.
-         // 1: index of next active_fe_index for this line. Value: (x + 1)
-         // 2-x: DoFs (will be filled out by distribute_dofs_on_cell
-         // x+1: active_fe_index of line, to which the following DoFs belong.
-         // x+2: index to next active_fe_index for this line. Value: (y + 1)
-         // ...
-         // In 3D, the same datastructure is used but can have up to 4 different
-         // active_fe_indices on one line.
-         unsigned int active_fe1 = line_active_fe_indices[j*2],
-             active_fe2 = line_active_fe_indices[j*2+1];
-
-         // Check for boundary lines, where clearly one of the line indices
-         // is missing.
-         if (active_fe1 == static_cast<unsigned int>(-1))
+        for (unsigned int j = 0; j < tria->levels[i]->quads.quads.size (); ++j)
+          {
+            const unsigned int cell_fe_index = levels.back ()->active_fe_indices[j];
+
+                                             // Referring to the following diagram from
+                                             // documentation of the triangulation class,
+                                             // it can be seen where the indices in the
+                                             // following lines of code come from.
+                                             //          2
+                                             //      3--->---2
+                                             //      |       |
+                                             //     3^       ^1
+                                             //      |       |
+                                             //      0--->---1
+                                             //          0
+                                             // Face 0 and 1 have the cell to the left,
+                                             // while Face 2 and 3 have the cell to
+                                             // the right (if the line points upward).
+            line_active_fe_indices[tria->levels[i]->
+                                   quads.quads[j].line(0) * 2] = cell_fe_index;
+            line_active_fe_indices[tria->levels[i]->
+                                   quads.quads[j].line(1) * 2] = cell_fe_index;
+            line_active_fe_indices[tria->levels[i]->
+                                   quads.quads[j].line(2) * 2 + 1] = cell_fe_index;
+            line_active_fe_indices[tria->levels[i]->
+                                   quads.quads[j].line(3) * 2 + 1] = cell_fe_index;
+          }
+
+        unsigned int dofs_for_lines = 0;
+        for (unsigned int j = 0; j < tria->levels[i]->lines.lines.size (); ++j)
+          {
+            levels.back()->dof_line_index_offset[j] = dofs_for_lines;
+
+// The "line_dofs" field in the hpDoFLevel class for 2D gets a
+// slightly different meaning in 2D. Actually in 2D one line can have
+// two different active_fe_indices. Therefore it is not sufficient to
+// reserve some space for the DoFs on one active_fe_index. Instead
+// the DoF indices for both active_fe_indices will be stored in the
+// "line_dofs" field. To differentiate between these field later,
+// a simple linked list based will be maintained to allow access to
+// the correct DoFs:
+// 0: active_fe_index of line, to which the following DoFs belong.
+// 1: index of next active_fe_index for this line. Value: (x + 1)
+// 2-x: DoFs (will be filled out by distribute_dofs_on_cell
+// x+1: active_fe_index of line, to which the following DoFs belong.
+// x+2: index to next active_fe_index for this line. Value: (y + 1)
+// ...
+// In 3D, the same datastructure is used but can have up to 4 different
+// active_fe_indices on one line.
+            unsigned int active_fe1 = line_active_fe_indices[j*2],
+                         active_fe2 = line_active_fe_indices[j*2+1];
+
+                                             // Check for boundary lines, where clearly one of the line indices
+                                             // is missing.
+            if (active_fe1 == static_cast<unsigned int>(-1))
              active_fe1 = active_fe2;
-         if (active_fe2 == static_cast<unsigned int>(-1))
+            if (active_fe2 == static_cast<unsigned int>(-1))
              active_fe2 = active_fe1;
 
-         if (active_fe1 == active_fe2)
+            if (active_fe1 == active_fe2)
              dofs_for_lines += finite_elements->get_fe (active_fe1).dofs_per_line + 2;
-         else
+            else
              dofs_for_lines += finite_elements->get_fe (active_fe1).dofs_per_line +
-                 finite_elements->get_fe (active_fe2).dofs_per_line + 4;
-      }
-
-      unsigned int dofs_for_quads = 0;
-      for (unsigned int j = 0; j < tria->levels[i]->quads.quads.size (); ++j)
-      {
-         levels.back()->dof_quad_index_offset[j] = dofs_for_quads;
-         dofs_for_quads += finite_elements->
-             get_fe (levels.back ()->active_fe_indices[j]).dofs_per_quad;
-      }
-
-      levels.back()->line_dofs = std::vector<unsigned int> (dofs_for_lines,
-                                                           invalid_dof_index);
-      levels.back()->quad_dofs = std::vector<unsigned int> (dofs_for_quads,
-                                                           invalid_dof_index);
-
-      // As we already have the active_fe_indices for the lines, it is probably
-      // a good idea to directly use those to create the linked list structure
-      // within the line_dofs field.
-      for (unsigned int j = 0; j < tria->levels[i]->lines.lines.size (); ++j)
-      {
-         dofs_for_lines = levels.back()->dof_line_index_offset[j];
-
-         levels.back()->dof_line_index_offset[j] = dofs_for_lines;
-         unsigned int active_fe1 = line_active_fe_indices[j*2],
-             active_fe2 = line_active_fe_indices[j*2+1];
-
-         // Check for boundary lines, where clearly one of the line indices
-         // is missing.
-         if (active_fe1 == static_cast<unsigned int>(-1))
+                                finite_elements->get_fe (active_fe2).dofs_per_line + 4;
+          }
+
+        unsigned int dofs_for_quads = 0;
+        for (unsigned int j = 0; j < tria->levels[i]->quads.quads.size (); ++j)
+          {
+            levels.back()->dof_quad_index_offset[j] = dofs_for_quads;
+            dofs_for_quads += finite_elements->
+                              get_fe (levels.back ()->active_fe_indices[j]).dofs_per_quad;
+          }
+
+        levels.back()->line_dofs = std::vector<unsigned int> (dofs_for_lines,
+                                                              invalid_dof_index);
+        levels.back()->quad_dofs = std::vector<unsigned int> (dofs_for_quads,
+                                                              invalid_dof_index);
+
+                                         // As we already have the active_fe_indices for the lines, it is probably
+                                         // a good idea to directly use those to create the linked list structure
+                                         // within the line_dofs field.
+        for (unsigned int j = 0; j < tria->levels[i]->lines.lines.size (); ++j)
+          {
+            dofs_for_lines = levels.back()->dof_line_index_offset[j];
+
+            levels.back()->dof_line_index_offset[j] = dofs_for_lines;
+            unsigned int active_fe1 = line_active_fe_indices[j*2],
+                         active_fe2 = line_active_fe_indices[j*2+1];
+
+                                             // Check for boundary lines, where clearly one of the line indices
+                                             // is missing.
+            if (active_fe1 == static_cast<unsigned int>(-1))
              active_fe1 = active_fe2;
-         if (active_fe2 == static_cast<unsigned int>(-1))
+            if (active_fe2 == static_cast<unsigned int>(-1))
              active_fe2 = active_fe1;
 
-         // Now create prepare linked list, with either 1 or two entries.
-         levels.back()->line_dofs[dofs_for_lines] = active_fe1;
-         if (active_fe1 == active_fe2)
+                                             // Now create prepare linked list, with either 1 or two entries.
+            levels.back()->line_dofs[dofs_for_lines] = active_fe1;
+            if (active_fe1 == active_fe2)
              levels.back()->line_dofs[dofs_for_lines + 1] = 
-                 static_cast<unsigned int>(-1);
-         else
-         {
-             unsigned int start_next_fe = dofs_for_lines + 
-                 finite_elements->get_fe (active_fe1).dofs_per_line + 2;
+                static_cast<unsigned int>(-1);
+            else
+              {
+                unsigned int start_next_fe = dofs_for_lines + 
+                                             finite_elements->get_fe (active_fe1).dofs_per_line + 2;
 
-             levels.back()->line_dofs[dofs_for_lines + 1] = start_next_fe;
+                levels.back()->line_dofs[dofs_for_lines + 1] = start_next_fe;
 
-             levels.back()->line_dofs[start_next_fe] = active_fe2;
-             levels.back()->line_dofs[start_next_fe + 1] = 
+                levels.back()->line_dofs[start_next_fe] = active_fe2;
+                levels.back()->line_dofs[start_next_fe + 1] = 
                  static_cast<unsigned int>(-1);
-         }
-      }
-    };
-}
+              }
+          }
+      };
+  }
 
 #endif
 
 
 #if deal_II_dimension == 3
 
-template <>
-void hpDoFHandler<3>::reserve_space ()
-{
+  template <>
+  void DoFHandler<3>::reserve_space ()
+  {
 //TODO: This presently works only on the first FE of the FECollection. Fix this
-  Assert (finite_elements != 0, ExcNoFESelected());
-  Assert (tria->n_levels() > 0, ExcInvalidTriangulation());
-  Assert (tria->n_levels() == levels.size (), ExcInternalError ());
+    Assert (finite_elements != 0, ExcNoFESelected());
+    Assert (tria->n_levels() > 0, ExcInvalidTriangulation());
+    Assert (tria->n_levels() == levels.size (), ExcInternalError ());
   
-                                   // Backup the active_fe_indices vectors.
-                                   // The user might have put something
-                                   // important in them.
-  std::vector<std::vector<unsigned int> > active_fe_backup(levels.size ());
-  for (unsigned int i = 0; i < levels.size (); ++i)
+                                     // Backup the active_fe_indices vectors.
+                                     // The user might have put something
+                                     // important in them.
+    std::vector<std::vector<unsigned int> > active_fe_backup(levels.size ());
+    for (unsigned int i = 0; i < levels.size (); ++i)
       std::swap (levels[i]->active_fe_indices, active_fe_backup[i]);
 
-                                   // delete all levels and set them up
-                                   // newly, since vectors are
-                                   // troublesome if you want to change
-                                   // their size
-  clear_space ();
+                                     // delete all levels and set them up
+                                     // newly, since vectors are
+                                     // troublesome if you want to change
+                                     // their size
+    clear_space ();
   
-  vertex_dofs.resize(tria->vertices.size()*finite_elements->get_fe(0).dofs_per_vertex,
-                    invalid_dof_index);
+    vertex_dofs.resize(tria->vertices.size()*finite_elements->get_fe(0).dofs_per_vertex,
+                       invalid_dof_index);
 
 //TODO[?] Does not work for continuous FEs. Problem is at faces, which might have a different
 // number of DoFs due to the different active_fe_index of the adjacent cells.
-  for (unsigned int i=0; i<tria->n_levels(); ++i) 
-    {
-      levels.push_back (new hpDoFLevel<3>);
-      std::swap (active_fe_backup[i], levels.back()->active_fe_indices);
-
-      levels.back()->dof_line_index_offset = std::vector<unsigned int>
-         (tria->levels[i]->lines.lines.size (),static_cast<unsigned int>(-1));
-      levels.back()->dof_quad_index_offset = std::vector<unsigned int>
-         (tria->levels[i]->quads.quads.size (),static_cast<unsigned int>(-1));
-      levels.back()->dof_hex_index_offset = std::vector<unsigned int>
-         (tria->levels[i]->hexes.hexes.size (),static_cast<unsigned int>(-1));
-
-      unsigned int dofs_for_lines = 0;
+    for (unsigned int i=0; i<tria->n_levels(); ++i) 
+      {
+        levels.push_back (new hp::DoFLevel<3>);
+        std::swap (active_fe_backup[i], levels.back()->active_fe_indices);
+
+        levels.back()->dof_line_index_offset = std::vector<unsigned int>
+                                               (tria->levels[i]->lines.lines.size (),static_cast<unsigned int>(-1));
+        levels.back()->dof_quad_index_offset = std::vector<unsigned int>
+                                               (tria->levels[i]->quads.quads.size (),static_cast<unsigned int>(-1));
+        levels.back()->dof_hex_index_offset = std::vector<unsigned int>
+                                              (tria->levels[i]->hexes.hexes.size (),static_cast<unsigned int>(-1));
+
+        unsigned int dofs_for_lines = 0;
 /* Uncommented as we actually need some information about how many DoFs should be reserved
    for the lines, which could have different active_fe_indices. For DG there should be no
    DoFs on lines or quads anyway.
-      for (unsigned int j=0; j<tria->levels[i]->lines.lines.size(); ++j)
-      {
-         levels.back()->dof_line_index_offset[j] = dofs_for_lines;
-         dofs_for_lines += finite_elements->
-             get_fe (levels.back ()->active_fe_indices[j]).dofs_per_line;
-      }
+   for (unsigned int j=0; j<tria->levels[i]->lines.lines.size(); ++j)
+   {
+   levels.back()->dof_line_index_offset[j] = dofs_for_lines;
+   dofs_for_lines += finite_elements->
+   get_fe (levels.back ()->active_fe_indices[j]).dofs_per_line;
+   }
 */
-      unsigned int dofs_for_quads = 0;
+        unsigned int dofs_for_quads = 0;
 /*
-      for (unsigned int j=0; j<tria->levels[i]->quads.quads.size(); ++j)
-      {
-         levels.back()->dof_quad_index_offset[j] = dofs_for_quads;
-         dofs_for_quads += finite_elements->
-             get_fe (levels.back ()->active_fe_indices[j]).dofs_per_quad;
-      }
+  for (unsigned int j=0; j<tria->levels[i]->quads.quads.size(); ++j)
+  {
+  levels.back()->dof_quad_index_offset[j] = dofs_for_quads;
+  dofs_for_quads += finite_elements->
+  get_fe (levels.back ()->active_fe_indices[j]).dofs_per_quad;
+  }
 */
-      unsigned int dofs_for_hexes = 0;
-      for (unsigned int j=0; j<tria->levels[i]->hexes.hexes.size(); ++j)
-      {
-         levels.back()->dof_hex_index_offset[j] = dofs_for_hexes;
-         dofs_for_hexes += finite_elements->
-             get_fe (levels.back ()->active_fe_indices[j]).dofs_per_hex;
-      }
-
-      levels.back()->line_dofs = std::vector<unsigned int> (dofs_for_lines,
-                                                           invalid_dof_index);
-      levels.back()->quad_dofs = std::vector<unsigned int> (dofs_for_quads,
-                                                           invalid_dof_index);
-      levels.back()->hex_dofs = std::vector<unsigned int> (dofs_for_hexes,
-                                                          invalid_dof_index);
-    };
-}
+        unsigned int dofs_for_hexes = 0;
+        for (unsigned int j=0; j<tria->levels[i]->hexes.hexes.size(); ++j)
+          {
+            levels.back()->dof_hex_index_offset[j] = dofs_for_hexes;
+            dofs_for_hexes += finite_elements->
+                              get_fe (levels.back ()->active_fe_indices[j]).dofs_per_hex;
+          }
+
+        levels.back()->line_dofs = std::vector<unsigned int> (dofs_for_lines,
+                                                              invalid_dof_index);
+        levels.back()->quad_dofs = std::vector<unsigned int> (dofs_for_quads,
+                                                              invalid_dof_index);
+        levels.back()->hex_dofs = std::vector<unsigned int> (dofs_for_hexes,
+                                                             invalid_dof_index);
+      };
+  }
 
 #endif
 
@@ -2209,205 +2212,206 @@ void hpDoFHandler<3>::reserve_space ()
 // where an incorrect active_fe table can cause some trouble.
 //
 
-template <int dim>
-void hpDoFHandler<dim>::create_active_fe_table ()
-{
-                                   // Create sufficiently many hpDoFLevels.
-  while (levels.size () < tria->n_levels ())
-      levels.push_back (new hpDoFLevel<dim>);
-
-  for (unsigned int i=0; i<levels.size(); ++i)
+  template <int dim>
+  void DoFHandler<dim>::create_active_fe_table ()
   {
-      if (levels[i]->active_fe_indices.size () == 0)
-      {
-                                   // The size of "refine_flags" serves as
-                                   // the number of cells available on that
-                                   // level. The alternative would be to
-                                   // implement this method for each dimension.
-         levels[i]->active_fe_indices.reserve (tria->levels[i]->refine_flags.size ());
-         std::fill (levels[i]->active_fe_indices.begin (),
-                    levels[i]->active_fe_indices.end (),
-                    0);
-      }
-      else
+                                     // Create sufficiently many hpDoFLevels.
+    while (levels.size () < tria->n_levels ())
+      levels.push_back (new hp::DoFLevel<dim>);
+
+    for (unsigned int i=0; i<levels.size(); ++i)
       {
-                                  // Either the active_fe_indices have size
-                                  // zero, or the correct size. Other sizes
-                                  // indicate that something went wrong.
-         Assert (levels[i]->active_fe_indices.size () ==
-                 tria->levels[i]->refine_flags.size (), ExcInternalError ());
+        if (levels[i]->active_fe_indices.size () == 0)
+          {
+// The size of "refine_flags" serves as
+// the number of cells available on that
+// level. The alternative would be to
+// implement this method for each dimension.
+            levels[i]->active_fe_indices.reserve (tria->levels[i]->refine_flags.size ());
+            std::fill (levels[i]->active_fe_indices.begin (),
+                       levels[i]->active_fe_indices.end (),
+                       0);
+          }
+        else
+          {
+                                             // Either the active_fe_indices have size
+                                             // zero, or the correct size. Other sizes
+                                             // indicate that something went wrong.
+            Assert (levels[i]->active_fe_indices.size () ==
+                    tria->levels[i]->refine_flags.size (), ExcInternalError ());
+          }
       }
   }
-}
 
 
-template <int dim>
-void hpDoFHandler<dim>::pre_refinement_notification (const Triangulation<dim> &)
-{
+  template <int dim>
+  void DoFHandler<dim>::pre_refinement_notification (const Triangulation<dim> &)
+  {
     create_active_fe_table ();
-}
+  }
 
 
 #if deal_II_dimension == 1
-template <>
-void hpDoFHandler<1>::pre_refinement_notification (const Triangulation<1> &tria)
-{
+  template <>
+  void DoFHandler<1>::pre_refinement_notification (const Triangulation<1> &tria)
+  {
     create_active_fe_table ();
 
-                                   // Remember if the cells have already
-                                   // children. That will make the transfer
-                                   // of the active_fe_index to the finer
-                                   // levels easier.
+                                     // Remember if the cells have already
+                                     // children. That will make the transfer
+                                     // of the active_fe_index to the finer
+                                     // levels easier.
     Assert (has_children.size () == 0, ExcInternalError ());
     for (unsigned int i=0; i<levels.size(); ++i)
-    {
+      {
        const unsigned int lines_on_level = tria.levels[i]->lines.lines.size ();
        std::vector<bool> *has_children_level =
-           new std::vector<bool> (lines_on_level);
+          new std::vector<bool> (lines_on_level);
 
-                                  // Check for each cell, if it has children.
+                                         // Check for each cell, if it has children.
        transform (tria.levels[i]->lines.children.begin (),
                   tria.levels[i]->lines.children.end (),
                   has_children_level->begin (),
                   std::bind2nd (std::not_equal_to<int>(), -1));
 
        has_children.push_back (has_children_level);
-    }
-}
+      }
+  }
 #endif
 
 #if deal_II_dimension == 2
-template <>
-void hpDoFHandler<2>::pre_refinement_notification (const Triangulation<2> &tria)
-{
+  template <>
+  void DoFHandler<2>::pre_refinement_notification (const Triangulation<2> &tria)
+  {
     create_active_fe_table ();
 
-                                   // Remember if the cells have already
-                                   // children. That will make the transfer
-                                   // of the active_fe_index to the finer
-                                   // levels easier.
+                                     // Remember if the cells have already
+                                     // children. That will make the transfer
+                                     // of the active_fe_index to the finer
+                                     // levels easier.
     Assert (has_children.size () == 0, ExcInternalError ());
     for (unsigned int i=0; i<levels.size(); ++i)
-    {
+      {
        const unsigned int quads_on_level = tria.levels[i]->quads.quads.size ();
        std::vector<bool> *has_children_level =
-           new std::vector<bool> (quads_on_level);
+          new std::vector<bool> (quads_on_level);
 
-                                  // Check for each cell, if it has children.
+                                         // Check for each cell, if it has children.
        transform (tria.levels[i]->quads.children.begin (),
                   tria.levels[i]->quads.children.end (),
                   has_children_level->begin (),
                   std::bind2nd (std::not_equal_to<int>(), -1));
 
        has_children.push_back (has_children_level);
-    }
-}
+      }
+  }
 #endif
 
 #if deal_II_dimension == 3
-template <>
-void hpDoFHandler<3>::pre_refinement_notification (const Triangulation<3> &tria)
-{
+  template <>
+  void DoFHandler<3>::pre_refinement_notification (const Triangulation<3> &tria)
+  {
     create_active_fe_table ();
 
-                                   // Remember if the cells have already
-                                   // children. That will make the transfer
-                                   // of the active_fe_index to the finer
-                                   // levels easier.
+                                     // Remember if the cells have already
+                                     // children. That will make the transfer
+                                     // of the active_fe_index to the finer
+                                     // levels easier.
     Assert (has_children.size () == 0, ExcInternalError ());
     for (unsigned int i=0; i<levels.size(); ++i)
-    {
+      {
        const unsigned int hexes_on_level = tria.levels[i]->hexes.hexes.size ();
        std::vector<bool> *has_children_level =
-           new std::vector<bool> (hexes_on_level);
+          new std::vector<bool> (hexes_on_level);
 
-                                  // Check for each cell, if it has children.
+                                         // Check for each cell, if it has children.
        transform (tria.levels[i]->hexes.children.begin (),
                   tria.levels[i]->hexes.children.end (),
                   has_children_level->begin (),
                   std::bind2nd (std::not_equal_to<int>(), -1));
 
        has_children.push_back (has_children_level);
-    }
-}
+      }
+  }
 #endif
 
-template <int dim>
-void hpDoFHandler<dim>::post_refinement_notification (const Triangulation<dim> &tria)
-{
+  template <int dim>
+  void DoFHandler<dim>::post_refinement_notification (const Triangulation<dim> &tria)
+  {
     Assert (has_children.size () == levels.size (), ExcInternalError ());
 
-                                   // In each refinement at most one new
-                                   // new level may appear. If that happened
-                                   // it is appended to the hpDoFHandler
-                                   // levels.
+                                     // In each refinement at most one new
+                                     // new level may appear. If that happened
+                                     // it is appended to the DoFHandler
+                                     // levels.
     if (levels.size () < tria.n_levels ())
-       levels.push_back (new hpDoFLevel<dim>);
+      levels.push_back (new hp::DoFLevel<dim>);
 
-                                   // Coarsening can lead to the loss
-                                   // of levels. Hence remove them.
+                                     // Coarsening can lead to the loss
+                                     // of levels. Hence remove them.
     while (levels.size () > tria.n_levels ())
       { 
        delete levels[levels.size ()-1];
        levels.pop_back ();
       }
 
-                                   // Resize active_fe_indices vectors
+                                     // Resize active_fe_indices vectors
     for (unsigned int i=0; i<levels.size(); ++i)
-       levels[i]->active_fe_indices.resize (tria.levels[i]->refine_flags.size ());
+      levels[i]->active_fe_indices.resize (tria.levels[i]->refine_flags.size ());
 
     cell_iterator cell = begin(),
-       endc = end ();
+                  endc = end ();
     for (; cell != endc; ++cell)
-    {
-                                  // Look if the cell got children during
-                                  // refinement
-                                  // Note: Although one level is added to
-                                  // the hpDoFHandler levels, when the
-                                  // triangulation got one, for the buffer
-                                  // has_children this new level is not
-                                   // required, because the cells on the
-                                   // finest level never have children. Hence
-                                   // cell->has_children () will always return
-                                  // false on that level, which would cause
-                                  // shortcut evaluation of the following
-                                  // expression. Thus an index error in
-                                  // has_children should never occur.
+      {
+                                         // Look if the cell got children during
+                                         // refinement
+                                         // Note: Although one level is added to
+                                         // the DoFHandler levels, when the
+                                         // triangulation got one, for the buffer
+                                         // has_children this new level is not
+                                         // required, because the cells on the
+                                         // finest level never have children. Hence
+                                         // cell->has_children () will always return
+                                         // false on that level, which would cause
+                                         // shortcut evaluation of the following
+                                         // expression. Thus an index error in
+                                         // has_children should never occur.
        if (cell->has_children () &&
            !(*has_children [cell->level ()])[cell->index ()])
-       {
-                                  // Set active_fe_index in children to the
-                                   // same value as in the parent cell.
+          {
+                                             // Set active_fe_index in children to the
+                                             // same value as in the parent cell.
            for (unsigned int i = 0; i < GeometryInfo<dim>::children_per_cell; ++i)
-               cell->child (i)->set_active_fe_index (cell->active_fe_index ());
-       }
-    }
+              cell->child (i)->set_active_fe_index (cell->active_fe_index ());
+          }
+      }
 
-                                   // Free buffer objects
+                                     // Free buffer objects
     std::vector<std::vector<bool> *>::iterator children_level;
     for (children_level = has_children.begin ();
         children_level != has_children.end ();
         ++children_level)
-       delete (*children_level);
-    /*
-    for_each (has_children.begin (),
-             has_children.end (),
-             delete());
-    */
+      delete (*children_level);
+                                     /*
+                                       for_each (has_children.begin (),
+                                       has_children.end (),
+                                       delete());
+                                     */
     has_children.clear ();
-}
+  }
 
 
-template <int dim>
-void hpDoFHandler<dim>::clear_space () {  
-  for (unsigned int i=0; i<levels.size(); ++i)
-    delete levels[i];
-  levels.resize (0);
+  template <int dim>
+  void DoFHandler<dim>::clear_space () {  
+    for (unsigned int i=0; i<levels.size(); ++i)
+      delete levels[i];
+    levels.resize (0);
 
-  std::vector<unsigned int> tmp;
-  std::swap (vertex_dofs, tmp);
-}
+    std::vector<unsigned int> tmp;
+    std::swap (vertex_dofs, tmp);
+  }
 
 
 /*-------------- Explicit Instantiations -------------------------------*/
-template class hpDoFHandler<deal_II_dimension>;
+  template class DoFHandler<deal_II_dimension>;
+}
index 6d81211aac0c148e717c0ae4f812004b01099f1b..42c1beaaa96c9f5302670d999ed44c61b88fda78 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 2003 by the deal.II authors
+//    Copyright (C) 2003, 2006 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
 #include <dofs/hp_dof_levels.h>
 
 
-unsigned int
-hpDoFLevel<1>::memory_consumption () const
+namespace hp
 {
-  return (MemoryConsumption::memory_consumption (line_dofs) +
-         MemoryConsumption::memory_consumption (dof_line_index_offset));
-}
+  unsigned int
+  DoFLevel<1>::memory_consumption () const
+  {
+    return (MemoryConsumption::memory_consumption (line_dofs) +
+            MemoryConsumption::memory_consumption (dof_line_index_offset));
+  }
 
 
 
-unsigned int
-hpDoFLevel<2>::memory_consumption () const
-{
-  return (hpDoFLevel<1>::memory_consumption () +
-         MemoryConsumption::memory_consumption (quad_dofs) +
-         MemoryConsumption::memory_consumption (dof_quad_index_offset));
-}
+  unsigned int
+  DoFLevel<2>::memory_consumption () const
+  {
+    return (hp::DoFLevel<1>::memory_consumption () +
+            MemoryConsumption::memory_consumption (quad_dofs) +
+            MemoryConsumption::memory_consumption (dof_quad_index_offset));
+  }
 
 
 
-unsigned int
-hpDoFLevel<3>::memory_consumption () const
-{
-  return (hpDoFLevel<2>::memory_consumption () +
-         MemoryConsumption::memory_consumption (hex_dofs) +
-         MemoryConsumption::memory_consumption (dof_hex_index_offset));
+  unsigned int
+  DoFLevel<3>::memory_consumption () const
+  {
+    return (hp::DoFLevel<2>::memory_consumption () +
+            MemoryConsumption::memory_consumption (hex_dofs) +
+            MemoryConsumption::memory_consumption (dof_hex_index_offset));
+  }
 }
index 17c0a4cc1374dbbae2954c75e07d5923054f1a23..e70cea625d66e1a69ea3547beb2ba888b4f8ea38 100644 (file)
@@ -1135,7 +1135,7 @@ FEValues<dim>::reinit (const typename DoFHandler<dim>::cell_iterator &cell)
 
 template <int dim>
 void
-FEValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterator &cell)
+FEValues<dim>::reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell)
 {
                                   // assert that the finite elements
                                   // passed to the constructor and
@@ -1152,7 +1152,7 @@ FEValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterator &cell)
                                    // destruction of this class
   this->present_cell.reset 
     (new typename FEValuesBase<dim>::template
-     CellIterator<typename hpDoFHandler<dim>::cell_iterator> (cell));
+     CellIterator<typename hp::DoFHandler<dim>::cell_iterator> (cell));
 
                                    // this was the part of the work
                                    // that is dependent on the actual
@@ -1394,11 +1394,11 @@ void FEFaceValues<dim>::reinit (const typename DoFHandler<dim>::cell_iterator &c
 
 
 
-//TODO:[?] Change for real hpDoFHandler
-// Probably the first assertion has to be changed, when the real hpDoFHandler
+//TODO:[?] Change for real hp::DoFHandler
+// Probably the first assertion has to be changed, when the real hp::DoFHandler
 // is available.
 template <int dim>
-void FEFaceValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
+void FEFaceValues<dim>::reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
                                const unsigned int              face_no)
 {
                                   // assert that the finite elements
@@ -1419,7 +1419,7 @@ void FEFaceValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterator
                                    // destruction of this class
   this->present_cell.reset 
     (new typename FEValuesBase<dim>::template
-     CellIterator<typename hpDoFHandler<dim>::cell_iterator> (cell));
+     CellIterator<typename hp::DoFHandler<dim>::cell_iterator> (cell));
 
                                    // this was the part of the work
                                    // that is dependent on the actual
@@ -1608,17 +1608,17 @@ void FESubfaceValues<dim>::reinit (const typename DoFHandler<dim>::cell_iterator
 }
 
 
-//TODO:[?] Change for real hpDoFHandler
-// Probably the first assertion has to be changed, when the real hpDoFHandler
+//TODO:[?] Change for real hp::DoFHandler
+// Probably the first assertion has to be changed, when the real hp::DoFHandler
 // is available.
 template <int dim>
-void FESubfaceValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
+void FESubfaceValues<dim>::reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
                                   const unsigned int         face_no,
                                   const unsigned int         subface_no)
 {
                                   // assert that the finite elements
                                   // passed to the constructor and
-                                  // used by the hpDoFHandler used by
+                                  // used by the hp::DoFHandler used by
                                   // this cell, are the same
   Assert (static_cast<const FiniteElementData<dim>&>(*this->fe) ==
          static_cast<const FiniteElementData<dim>&>(cell->get_dof_handler().get_fe().get_fe (cell->active_fe_index ())),
@@ -1639,7 +1639,7 @@ void FESubfaceValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterat
                                    // destruction of this class
   this->present_cell.reset
     (new typename FEValuesBase<dim>::template
-     CellIterator<typename hpDoFHandler<dim>::cell_iterator> (cell));
+     CellIterator<typename hp::DoFHandler<dim>::cell_iterator> (cell));
 
                                    // this was the part of the work
                                    // that is dependent on the actual
index 5dbf7d07de0c36a5c243810620895a8814ac6e73..243e0df076e6af78ed14718d66440c3700e76e75 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 2003 by the deal.II authors
+//    Copyright (C) 2003, 2006 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
 
 // -------------------------- FEValuesMap -------------------------
 
-namespace internal 
+namespace hp
 {
-  template <int dim, class FEValues>
-  FEValuesMap<dim,FEValues>::~FEValuesMap () 
-  {}
-  
   
-  template <int dim, class FEValues>
-  FEValues &
-  FEValuesMap<dim,FEValues>::select_fe_values (const FiniteElement<dim> &fe,
-                                              const unsigned int active_fe_index)
+  namespace internal 
   {
-                                     // check if the finite element
-                                     // does not exist as a key in the
-                                     // map
-    if (fe_to_fe_values_map.find (std::make_pair(&fe, active_fe_index)) ==
-        fe_to_fe_values_map.end())
-                                       // a-ha! doesn't yet, so let's
-                                       // make it up
-      fe_to_fe_values_map[std::make_pair(&fe, active_fe_index)]
-        = boost::shared_ptr<FEValues> (create_fe_values (fe, active_fe_index));
+    template <int dim, class FEValues>
+    FEValuesMap<dim,FEValues>::~FEValuesMap () 
+    {}
+  
+  
+    template <int dim, class FEValues>
+    FEValues &
+    FEValuesMap<dim,FEValues>::select_fe_values (const FiniteElement<dim> &fe,
+                                                 const unsigned int active_fe_index)
+    {
+                                       // check if the finite element
+                                       // does not exist as a key in the
+                                       // map
+      if (fe_to_fe_values_map.find (std::make_pair(&fe, active_fe_index)) ==
+          fe_to_fe_values_map.end())
+                                         // a-ha! doesn't yet, so let's
+                                         // make it up
+        fe_to_fe_values_map[std::make_pair(&fe, active_fe_index)]
+          = boost::shared_ptr<FEValues> (create_fe_values (fe, active_fe_index));
 
 
-                                     // now there definitely is one!
-    present_fe_values = fe_to_fe_values_map[std::make_pair (&fe, active_fe_index)];
+                                       // now there definitely is one!
+      present_fe_values = fe_to_fe_values_map[std::make_pair (&fe, active_fe_index)];
 
-    return *present_fe_values;
-  }
+      return *present_fe_values;
+    }
 
 
-// -------------------------- hpFEValuesBase -------------------------
+// -------------------------- FEValuesBase -------------------------
 
-  template <int dim, int q_dim>
-  const MappingQ1<dim>
-  hpFEValuesBase<dim,q_dim>::default_mapping;
+    template <int dim, int q_dim>
+    const MappingQ1<dim>
+    FEValuesBase<dim,q_dim>::default_mapping;
 
   
 
-  template <int dim, int q_dim>
-  hpFEValuesBase<dim,q_dim>::hpFEValuesBase (
+    template <int dim, int q_dim>
+    FEValuesBase<dim,q_dim>::FEValuesBase (
       const MappingCollection<dim> &mapping_collection,
       const QCollection<q_dim>     &qcollection,
       const UpdateFlags             update_flags)
-      :
-                  mapping_collection (mapping_collection),
-                  qcollection (qcollection),
-                  update_flags (update_flags)
-  {}
+                    :
+                    mapping_collection (mapping_collection),
+                    qcollection (qcollection),
+                    update_flags (update_flags)
+    {}
 
 
-  template <int dim, int q_dim>
-  hpFEValuesBase<dim,q_dim>::hpFEValuesBase (const QCollection<q_dim> &qcollection,
-                                             const UpdateFlags         update_flags)
-                  :
-                  mapping_collection (default_mapping),
-                  qcollection (qcollection),
-                  update_flags (update_flags)
-  {}
+    template <int dim, int q_dim>
+    FEValuesBase<dim,q_dim>::FEValuesBase (const QCollection<q_dim> &qcollection,
+                                           const UpdateFlags         update_flags)
+                    :
+                    mapping_collection (default_mapping),
+                    qcollection (qcollection),
+                    update_flags (update_flags)
+    {}
 
-}
+  }
 
 
-// -------------------------- hpFEValues -------------------------
+// -------------------------- FEValues -------------------------
 
 
-template <int dim>
-hpFEValues<dim>::hpFEValues (const MappingCollection<dim> &mapping,
-                             const FECollection<dim>      &/*fe_collection*/,
-                             const QCollection<dim>       &qcollection,
-                             const UpdateFlags             update_flags)
-                :
-                internal::hpFEValuesBase<dim,dim> (mapping,
+  template <int dim>
+  FEValues<dim>::FEValues (const MappingCollection<dim> &mapping,
+                           const FECollection<dim>      &/*fe_collection*/,
+                           const QCollection<dim>       &qcollection,
+                           const UpdateFlags             update_flags)
+                  :
+                  internal::FEValuesBase<dim,dim> (mapping,
                                                    qcollection,
                                                    update_flags)
-{}
+  {}
 
 
-template <int dim>
-hpFEValues<dim>::hpFEValues (const FECollection<dim> &/*fe_collection*/,
-                             const QCollection<dim>  &qcollection,
-                             const UpdateFlags        update_flags)
-                :
-                internal::hpFEValuesBase<dim,dim> (qcollection,
+  template <int dim>
+  FEValues<dim>::FEValues (const FECollection<dim> &/*fe_collection*/,
+                           const QCollection<dim>  &qcollection,
+                           const UpdateFlags        update_flags)
+                  :
+                  internal::FEValuesBase<dim,dim> (qcollection,
                                                    update_flags)
-{}
+  {}
 
 
-template <int dim>
-void
-hpFEValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterator &cell)
-{
-  this->present_fe_index = cell->active_fe_index ();
-  this->select_fe_values (cell->get_fe(), this->present_fe_index).reinit (cell);
-}
+  template <int dim>
+  void
+  FEValues<dim>::reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell)
+  {
+    this->present_fe_index = cell->active_fe_index ();
+    this->select_fe_values (cell->get_fe(), this->present_fe_index).reinit (cell);
+  }
 
 
 
-template <int dim>
-FEValues<dim> *
-hpFEValues<dim>::create_fe_values (const FiniteElement<dim> &fe,
-                                  const unsigned int active_fe_index) const
-{
-  return new FEValues<dim> (
+  template <int dim>
+  ::FEValues<dim> *
+  FEValues<dim>::create_fe_values (const FiniteElement<dim> &fe,
+                                   const unsigned int active_fe_index) const
+  {
+    return new ::FEValues<dim> (
       this->mapping_collection.get_mapping (active_fe_index), fe,
       this->qcollection.get_quadrature (active_fe_index),
       this->update_flags);
-}
+  }
 
 
-// -------------------------- hpFEFaceValues -------------------------
+// -------------------------- FEFaceValues -------------------------
 
 
-template <int dim>
-hpFEFaceValues<dim>::hpFEFaceValues (const MappingCollection<dim> &mapping,
-                                     const FECollection<dim>  &/*fe_collection*/,
-                                     const QCollection<dim-1> &qcollection,
-                                     const UpdateFlags         update_flags)
-                :
-                internal::hpFEValuesBase<dim,dim-1> (mapping,
+  template <int dim>
+  FEFaceValues<dim>::FEFaceValues (const MappingCollection<dim> &mapping,
+                                   const FECollection<dim>  &/*fe_collection*/,
+                                   const QCollection<dim-1> &qcollection,
+                                   const UpdateFlags         update_flags)
+                  :
+                  internal::FEValuesBase<dim,dim-1> (mapping,
                                                      qcollection,
                                                      update_flags)
-{}
+  {}
 
 
-template <int dim>
-hpFEFaceValues<dim>::hpFEFaceValues (const FECollection<dim>  &/*fe_collection*/,
-                                     const QCollection<dim-1> &qcollection,
-                                     const UpdateFlags         update_flags)
-                :
-                internal::hpFEValuesBase<dim,dim-1> (qcollection,
+  template <int dim>
+  FEFaceValues<dim>::FEFaceValues (const FECollection<dim>  &/*fe_collection*/,
+                                   const QCollection<dim-1> &qcollection,
+                                   const UpdateFlags         update_flags)
+                  :
+                  internal::FEValuesBase<dim,dim-1> (qcollection,
                                                      update_flags)
-{}
+  {}
 
 
-template <int dim>
-void
-hpFEFaceValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
+  template <int dim>
+  void
+  FEFaceValues<dim>::reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
                              const unsigned int face_no)
-{
-  this->present_fe_index = cell->active_fe_index ();
-  this->select_fe_values (cell->get_fe(), this->present_fe_index).reinit (cell, face_no);
-}
+  {
+    this->present_fe_index = cell->active_fe_index ();
+    this->select_fe_values (cell->get_fe(), this->present_fe_index).reinit (cell, face_no);
+  }
 
 
-template <int dim>
-void
-hpFEFaceValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
-                            const unsigned int face_no,
-                            const unsigned int active_fe_index)
-{
-  this->present_fe_index = active_fe_index;
-  this->select_fe_values (cell->get_fe(), active_fe_index).reinit (cell, face_no);
-}
+  template <int dim>
+  void
+  FEFaceValues<dim>::reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
+                             const unsigned int face_no,
+                             const unsigned int active_fe_index)
+  {
+    this->present_fe_index = active_fe_index;
+    this->select_fe_values (cell->get_fe(), active_fe_index).reinit (cell, face_no);
+  }
 
 
-template <int dim>
-FEFaceValues<dim> *
-hpFEFaceValues<dim>::create_fe_values (const FiniteElement<dim> &fe,
-                                      const unsigned int active_fe_index) const
-{
-  return new FEFaceValues<dim> (
+  template <int dim>
+  ::FEFaceValues<dim> *
+  FEFaceValues<dim>::create_fe_values (const FiniteElement<dim> &fe,
+                                       const unsigned int active_fe_index) const
+  {
+    return new ::FEFaceValues<dim> (
       this->mapping_collection.get_mapping (active_fe_index), fe,
       this->qcollection.get_quadrature (active_fe_index),
       this->update_flags);
-}
+  }
 
 
-// -------------------------- hpFESubfaceValues -------------------------
+// -------------------------- FESubfaceValues -------------------------
 
 
-template <int dim>
-hpFESubfaceValues<dim>::hpFESubfaceValues (const MappingCollection<dim> &mapping,
-                                           const FECollection<dim>  &/*fe_collection*/,
-                                           const QCollection<dim-1> &qcollection,
-                                           const UpdateFlags         update_flags)
-                :
-                internal::hpFEValuesBase<dim,dim-1> (mapping,
+  template <int dim>
+  FESubfaceValues<dim>::FESubfaceValues (const MappingCollection<dim> &mapping,
+                                         const FECollection<dim>  &/*fe_collection*/,
+                                         const QCollection<dim-1> &qcollection,
+                                         const UpdateFlags         update_flags)
+                  :
+                  internal::FEValuesBase<dim,dim-1> (mapping,
                                                      qcollection,
                                                      update_flags)
-{}
+  {}
 
 
-template <int dim>
-hpFESubfaceValues<dim>::hpFESubfaceValues (const FECollection<dim>  &/*fe_collection*/,
-                                           const QCollection<dim-1> &qcollection,
-                                           const UpdateFlags         update_flags)
-                :
-                internal::hpFEValuesBase<dim,dim-1> (qcollection,
+  template <int dim>
+  FESubfaceValues<dim>::FESubfaceValues (const FECollection<dim>  &/*fe_collection*/,
+                                         const QCollection<dim-1> &qcollection,
+                                         const UpdateFlags         update_flags)
+                  :
+                  internal::FEValuesBase<dim,dim-1> (qcollection,
                                                      update_flags)
-{}
+  {}
 
 
-template <int dim>
-void
-hpFESubfaceValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
+  template <int dim>
+  void
+  FESubfaceValues<dim>::reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
                                 const unsigned int face_no,
                                 const unsigned int subface_no)
-{
-  this->present_fe_index = cell->active_fe_index ();
-  this->select_fe_values (cell->get_fe(), this->present_fe_index).reinit (cell, face_no, subface_no);
-}
+  {
+    this->present_fe_index = cell->active_fe_index ();
+    this->select_fe_values (cell->get_fe(), this->present_fe_index).reinit (cell, face_no, subface_no);
+  }
 
 
-template <int dim>
-void
-hpFESubfaceValues<dim>::reinit (const typename hpDoFHandler<dim>::cell_iterator &cell,
+  template <int dim>
+  void
+  FESubfaceValues<dim>::reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
                                 const unsigned int face_no,
                                 const unsigned int subface_no,
-                               const unsigned int active_fe_index)
-{
-  this->present_fe_index = active_fe_index;
-  this->select_fe_values (cell->get_fe(), active_fe_index).reinit (cell, face_no, subface_no);
-}
+                                const unsigned int active_fe_index)
+  {
+    this->present_fe_index = active_fe_index;
+    this->select_fe_values (cell->get_fe(), active_fe_index).reinit (cell, face_no, subface_no);
+  }
 
 
-template <int dim>
-FESubfaceValues<dim> *
-hpFESubfaceValues<dim>::create_fe_values (const FiniteElement<dim> &fe,
-                                         const unsigned int active_fe_index) const
-{
-  return new FESubfaceValues<dim> (
+  template <int dim>
+  ::FESubfaceValues<dim> *
+  FESubfaceValues<dim>::create_fe_values (const FiniteElement<dim> &fe,
+                                          const unsigned int active_fe_index) const
+  {
+    return new ::FESubfaceValues<dim> (
       this->mapping_collection.get_mapping (active_fe_index), fe,
       this->qcollection.get_quadrature (active_fe_index),
       this->update_flags);
-}
+  }
 
 
 
 
 // explicit instantiations
-namespace internal
-{
-  template class FEValuesMap<deal_II_dimension,FEValues<deal_II_dimension> >;
-  template class FEValuesMap<deal_II_dimension,FEFaceValues<deal_II_dimension> >;
-  template class FEValuesMap<deal_II_dimension,FESubfaceValues<deal_II_dimension> >;
+  namespace internal
+  {
+    template class FEValuesMap<deal_II_dimension,FEValues<deal_II_dimension> >;
+    template class FEValuesMap<deal_II_dimension,FEFaceValues<deal_II_dimension> >;
+    template class FEValuesMap<deal_II_dimension,FESubfaceValues<deal_II_dimension> >;
 
-  template class hpFEValuesBase<deal_II_dimension,deal_II_dimension>;
+    template class FEValuesBase<deal_II_dimension,deal_II_dimension>;
 #if deal_II_dimension >= 2
-  template class hpFEValuesBase<deal_II_dimension,deal_II_dimension-1>;
+    template class FEValuesBase<deal_II_dimension,deal_II_dimension-1>;
 #endif
-}
+  }
 
-template class hpFEValues<deal_II_dimension>;
+  template class FEValues<deal_II_dimension>;
 #if deal_II_dimension >= 2
-template class hpFEFaceValues<deal_II_dimension>;
-template class hpFESubfaceValues<deal_II_dimension>;
+  template class FEFaceValues<deal_II_dimension>;
+  template class FESubfaceValues<deal_II_dimension>;
 #endif
-
+  
+}
index 4689503339e42962a5ce4cd1d71d30060b524ca1..b90fbd675f1bdb7da75d7378577b55890cb91895 100644 (file)
@@ -752,16 +752,16 @@ INSTANTIATE_VECTORS(deal_II_dimension,DoFHandler,deal_II_dimension-1,deal_II_dim
 template class DataOut<deal_II_dimension,DoFHandler>;
 
 
-// ...and now for hpDoFHandler
-template class DataOut_DoFData<deal_II_dimension,hpDoFHandler,deal_II_dimension>;
-template class DataOut_DoFData<deal_II_dimension,hpDoFHandler,deal_II_dimension+1>;
-INSTANTIATE_VECTORS(deal_II_dimension,hpDoFHandler,deal_II_dimension,deal_II_dimension);
-INSTANTIATE_VECTORS(deal_II_dimension,hpDoFHandler,deal_II_dimension+1,deal_II_dimension+1);
+// ...and now for hp::DoFHandler
+template class DataOut_DoFData<deal_II_dimension,hp::DoFHandler,deal_II_dimension>;
+template class DataOut_DoFData<deal_II_dimension,hp::DoFHandler,deal_II_dimension+1>;
+INSTANTIATE_VECTORS(deal_II_dimension,hp::DoFHandler,deal_II_dimension,deal_II_dimension);
+INSTANTIATE_VECTORS(deal_II_dimension,hp::DoFHandler,deal_II_dimension+1,deal_II_dimension+1);
 
 #if deal_II_dimension >= 2
-template class DataOut_DoFData<deal_II_dimension,hpDoFHandler,
+template class DataOut_DoFData<deal_II_dimension,hp::DoFHandler,
                               deal_II_dimension-1,deal_II_dimension>;
-INSTANTIATE_VECTORS(deal_II_dimension,hpDoFHandler,deal_II_dimension-1,deal_II_dimension);
+INSTANTIATE_VECTORS(deal_II_dimension,hp::DoFHandler,deal_II_dimension-1,deal_II_dimension);
 #endif
 
-template class DataOut<deal_II_dimension,hpDoFHandler>;
+template class DataOut<deal_II_dimension,hp::DoFHandler>;
index 2393155a3440af3ede6f8a9d2abaff02011ba815..8262757f4d3af5bd9c1ef7026ec31764a3d1279b 100644 (file)
@@ -295,5 +295,5 @@ DataOutFaces<dim,DH>::next_face (const FaceDescriptor &old_face)
 // don't instantiate anything for the 1d and 2d cases
 #if deal_II_dimension >=2
 template class DataOutFaces<deal_II_dimension,DoFHandler>;
-template class DataOutFaces<deal_II_dimension,hpDoFHandler>;
+template class DataOutFaces<deal_II_dimension,hp::DoFHandler>;
 #endif
index 7170863254993ec0cbcb06e85260eb9493e0e160..5c3aae5093bf73b59eb31ace47150f120dc50470 100644 (file)
@@ -507,11 +507,11 @@ template void DataOutStack<deal_II_dimension,DoFHandler>::
 add_data_vector<float> (const Vector<float>  &vec,
                        const std::string    &name);
 
-template class DataOutStack<deal_II_dimension,hpDoFHandler>;
-template void DataOutStack<deal_II_dimension,hpDoFHandler>::
+template class DataOutStack<deal_II_dimension,hp::DoFHandler>;
+template void DataOutStack<deal_II_dimension,hp::DoFHandler>::
 add_data_vector<double> (const Vector<double> &vec,
                         const std::string    &name);
-template void DataOutStack<deal_II_dimension,hpDoFHandler>::
+template void DataOutStack<deal_II_dimension,hp::DoFHandler>::
 add_data_vector<float> (const Vector<float>  &vec,
                        const std::string    &name);
 
index 2a1413c50348d0bf99e694402abc8e374c40b807..9d142a7e4a2be3247b16502aa2934b785db0ffaf 100644 (file)
@@ -473,11 +473,11 @@ namespace WorkAround
   };
   template <template <int> class DH> const bool IsHP<DH>::value;
 
-  template <> struct IsHP<hpDoFHandler>
+  template <> struct IsHP<hp::DoFHandler>
   {
       static const bool value = true;
   };
-  const bool IsHP<hpDoFHandler>::value;  
+  const bool IsHP<hp::DoFHandler>::value;  
 }
 
 
@@ -513,7 +513,7 @@ approximate_derivative (const Mapping<dim>    &mapping,
 #ifdef DEAL_II_FUNPTR_TEMPLATE_TEMPLATE_BUG
   const FunPtr fun_ptr
     = (WorkAround::IsHP<DH>::value ?
-       &DerivativeApproximation::template approximate<DerivativeDescription,dim,hpDoFHandler,InputVector> :
+       &DerivativeApproximation::template approximate<DerivativeDescription,dim,hp::DoFHandler,InputVector> :
        &DerivativeApproximation::template approximate<DerivativeDescription,dim,DoFHandler,InputVector>);
 #else
   const FunPtr fun_ptr
@@ -799,17 +799,17 @@ INSTANTIATE(Vector<float>, DoFHandler);
 INSTANTIATE(BlockVector<double>, DoFHandler);
 INSTANTIATE(BlockVector<float>, DoFHandler);
 
-INSTANTIATE(Vector<double>, hpDoFHandler);
-INSTANTIATE(Vector<float>, hpDoFHandler);
-INSTANTIATE(BlockVector<double>, hpDoFHandler);
-INSTANTIATE(BlockVector<float>, hpDoFHandler);
+INSTANTIATE(Vector<double>, hp::DoFHandler);
+INSTANTIATE(Vector<float>, hp::DoFHandler);
+INSTANTIATE(BlockVector<double>, hp::DoFHandler);
+INSTANTIATE(BlockVector<float>, hp::DoFHandler);
 
 #ifdef DEAL_II_USE_PETSC
 INSTANTIATE(PETScWrappers::Vector, DoFHandler);
 INSTANTIATE(PETScWrappers::BlockVector, DoFHandler);
 
-INSTANTIATE(PETScWrappers::Vector, hpDoFHandler);
-INSTANTIATE(PETScWrappers::BlockVector, hpDoFHandler);
+INSTANTIATE(PETScWrappers::Vector, hp::DoFHandler);
+INSTANTIATE(PETScWrappers::BlockVector, hp::DoFHandler);
 #endif
 
 
index d6bc5bc22ccd954440497455b2bfd79a6b4b032b..bf045fa4e7772c098ff3cb70419e79f2fc45ca09 100644 (file)
@@ -41,10 +41,10 @@ namespace
   }
 
 
-  // Functions for the hpDoFHandler
+  // Functions for the hp::DoFHandler
   template <int dim>
   unsigned int
-  max_dofs_per_cell (const hpDoFHandler<dim> &dh) 
+  max_dofs_per_cell (const hp::DoFHandler<dim> &dh) 
   {
     return dh.get_fe().max_dofs_per_cell ();
   }
@@ -52,7 +52,7 @@ namespace
 
   template <int dim>
   unsigned int
-  max_dofs_per_face (const hpDoFHandler<dim> &dh) 
+  max_dofs_per_face (const hp::DoFHandler<dim> &dh) 
   {
     return dh.get_fe().max_dofs_per_face ();
   }
@@ -61,7 +61,7 @@ namespace
 
   template <int dim>
   unsigned int
-  get_n_components (const hpDoFHandler<dim> &dh) 
+  get_n_components (const hp::DoFHandler<dim> &dh) 
   {
     return dh.get_fe().n_components();
   }
index 936fd5df2c99cd2ee177c862e8ea2c0355d29596..6784b59e9da67ef6506226c7e41d24a6e52f99e8 100644 (file)
@@ -594,6 +594,7 @@ void ElasticProblem<dim>::assemble_system ()
                 for (unsigned int q_point=0; q_point<n_q_points;
                      ++q_point)
                   {
+//TODO investigate really small values here                    
                     cell_matrix(i,j) 
                       += 
                       (
index 7a96abe8ae7289cff09ca7737ea918c0305008a4..5cecab44d4351ffa1ed4b96339d2f4fb1a32234b 100644 (file)
@@ -14,7 +14,7 @@ target = $(basename $(shell echo step-*.cc))
 # run-time checking of parameters and internal states is performed, so
 # you should set this value to `on' while you develop your program,
 # and to `off' when running production computations.
-debug-mode = off
+debug-mode = on
 
 
 # As third field, we need to give the path to the top-level deal.II
index 3a6a3a4af6e07ea869456639474573459bc0bc1e..62bbb50b972a6552a79204ea77614412a133d30a 100644 (file)
@@ -14,7 +14,7 @@ target = $(basename $(shell echo step-*.cc))
 # run-time checking of parameters and internal states is performed, so
 # you should set this value to `on' while you develop your program,
 # and to `off' when running production computations.
-debug-mode = on
+debug-mode = off
 
 
 # As third field, we need to give the path to the top-level deal.II
index e16e2313abe58a670d5c1cdc18a393dde69cfa16..f4bb9e71b638addd346ceadcef7d12e0f2e4928c 100644 (file)
@@ -32,7 +32,7 @@
 #include <grid/tria_iterator.h>
 #include <fe/fe_values.h>
                                  // Instead of the usual DoFHandler
-                                 // the hpDoFHandler class has to be
+                                 // the hp::DoFHandler class has to be
                                  // used to gain access to the
                                  // hp-Functionality. The hpDoFHandler
                                  // provides essentially the same
@@ -72,7 +72,7 @@
 #include <fe/q_collection.h>
 
                                 // The first of the following
-                                 // two files provides the hpFEValues
+                                 // two files provides the hp::FEValues
                                  // class, which implements the same
                                  // functionality as the FEValues class
                                  // with the difference that it takes
@@ -618,8 +618,8 @@ class DGMethod
 
                                     // As already mentioned, the
                                      // standard DoFHandler has to be
-                                     // replaced by a hpDoFHandler.
-    hpDoFHandler<dim>    dof_handler;
+                                     // replaced by a hp::DoFHandler.
+    hp::DoFHandler<dim>    dof_handler;
 
     SparsityPattern sparsity;
     SparseMatrix<double> system_matrix;
@@ -854,7 +854,7 @@ void DGMethod<dim>::assemble_system1 ()
                                   // assumes a ``MappingQ1'' mapping)
                                   // and makes it easier to change
                                   // the mapping object later.
-  hpFEValues<dim> fe_v_x (mapping, fe_collection, *quadrature, update_flags);
+  hp::FEValues<dim> fe_v_x (mapping, fe_collection, *quadrature, update_flags);
   
                                   // Similarly we create the
                                   // ``FEFaceValues'' and
@@ -866,13 +866,13 @@ void DGMethod<dim>::assemble_system1 ()
                                   // they will be reinited to the
                                   // current cell and the face (and
                                   // subface) number.
-  hpFEFaceValues<dim> fe_v_face_x (
+  hp::FEFaceValues<dim> fe_v_face_x (
     mapping, fe_collection, *face_quadrature, face_update_flags);
-  hpFESubfaceValues<dim> fe_v_subface_x (
+  hp::FESubfaceValues<dim> fe_v_subface_x (
     mapping, fe_collection, *face_quadrature, face_update_flags);
-  hpFEFaceValues<dim> fe_v_face_neighbor_x (
+  hp::FEFaceValues<dim> fe_v_face_neighbor_x (
     mapping, fe_collection, *face_quadrature, neighbor_face_update_flags);
-  hpFESubfaceValues<dim> fe_v_subface_neighbor_x (
+  hp::FESubfaceValues<dim> fe_v_subface_neighbor_x (
     mapping, fe_collection, *face_quadrature, neighbor_face_update_flags);
 
                                   // Now we create the cell matrices
@@ -897,7 +897,7 @@ void DGMethod<dim>::assemble_system1 ()
 
                                   // Furthermore we need some cell
                                   // iterators.
-  typename hpDoFHandler<dim>::active_cell_iterator
+  typename hp::DoFHandler<dim>::active_cell_iterator
     cell = dof_handler.begin_active(),
     endc = dof_handler.end();
 
@@ -948,7 +948,7 @@ void DGMethod<dim>::assemble_system1 ()
        {
                                           // First we set the face
                                           // iterator
-         typename hpDoFHandler<dim>::face_iterator face=cell->face(face_no);
+         typename hp::DoFHandler<dim>::face_iterator face=cell->face(face_no);
          
                                           // and clear the
                                           // ``un_v_matrix'' on each
@@ -983,7 +983,7 @@ void DGMethod<dim>::assemble_system1 ()
                                               // domain, therefore
                                               // there must exist a
                                               // neighboring cell.
-             typename hpDoFHandler<dim>::cell_iterator neighbor=
+             typename hp::DoFHandler<dim>::cell_iterator neighbor=
                cell->neighbor(face_no);
              
                                               // We proceed with the
@@ -1043,7 +1043,7 @@ void DGMethod<dim>::assemble_system1 ()
                                                       // `behind' the
                                                       // current
                                                       // subface.
-                     typename hpDoFHandler<dim>::active_cell_iterator neighbor_child=
+                     typename hp::DoFHandler<dim>::active_cell_iterator neighbor_child=
                        neighbor->child(GeometryInfo<dim>::
                                        child_cell_on_face(neighbor2,subface_no));
 
@@ -1347,13 +1347,13 @@ void DGMethod<dim>::assemble_system2 ()
                                   // Here we do not need
                                   // ``fe_v_face_neighbor'' as case 4
                                   // does not occur.
-  hpFEValues<dim> fe_v_x (
+  hp::FEValues<dim> fe_v_x (
     mapping, fe_collection, *quadrature, update_flags);
-  hpFEFaceValues<dim> fe_v_face_x (
+  hp::FEFaceValues<dim> fe_v_face_x (
     mapping, fe_collection, *face_quadrature, face_update_flags);
-  hpFESubfaceValues<dim> fe_v_subface_x (
+  hp::FESubfaceValues<dim> fe_v_subface_x (
     mapping, fe_collection, *face_quadrature, face_update_flags);
-  hpFEFaceValues<dim> fe_v_face_neighbor_x (
+  hp::FEFaceValues<dim> fe_v_face_neighbor_x (
     mapping, fe_collection, *face_quadrature, neighbor_face_update_flags);
 
   const unsigned int max_dofs_per_cell = fe_collection.max_dofs_per_cell ();
@@ -1379,7 +1379,7 @@ void DGMethod<dim>::assemble_system2 ()
                                   // The following lines are roughly
                                   // the same as in the previous
                                   // function.
-  typename hpDoFHandler<dim>::active_cell_iterator
+  typename hp::DoFHandler<dim>::active_cell_iterator
     cell = dof_handler.begin_active(),
     endc = dof_handler.end();
   for (;cell!=endc; ++cell) 
@@ -1401,7 +1401,7 @@ void DGMethod<dim>::assemble_system2 ()
 
       for (unsigned int face_no=0; face_no<GeometryInfo<dim>::faces_per_cell; ++face_no)
        {
-         typename hpDoFHandler<dim>::face_iterator face=
+         typename hp::DoFHandler<dim>::face_iterator face=
            cell->face(face_no);
 
                                           // Case 1:
@@ -1417,7 +1417,7 @@ void DGMethod<dim>::assemble_system2 ()
            {
              Assert (cell->neighbor(face_no).state() == IteratorState::valid,
                      ExcInternalError());
-             typename hpDoFHandler<dim>::cell_iterator neighbor=
+             typename hp::DoFHandler<dim>::cell_iterator neighbor=
                cell->neighbor(face_no);
 
              const unsigned int dofs_on_neighbor = neighbor->get_fe().dofs_per_cell;
@@ -1432,7 +1432,7 @@ void DGMethod<dim>::assemble_system2 ()
                       subface_no<GeometryInfo<dim>::subfaces_per_face;
                       ++subface_no)
                    {
-                     typename hpDoFHandler<dim>::cell_iterator neighbor_child=
+                     typename hp::DoFHandler<dim>::cell_iterator neighbor_child=
                        neighbor->child(GeometryInfo<dim>::child_cell_on_face(
                          neighbor2,subface_no));
                      const unsigned int dofs_on_neighbor_child = neighbor_child->get_fe().dofs_per_cell;
@@ -1640,7 +1640,7 @@ void DGMethod<dim>::refine_grid ()
 
                                   // and they are cell-wise scaled by
                                   // the factor $h^{1+d/2}$
-  typename hpDoFHandler<dim>::active_cell_iterator
+  typename hp::DoFHandler<dim>::active_cell_iterator
      cell = dof_handler.begin_active(),
     endc = dof_handler.end();
 
@@ -1702,7 +1702,7 @@ void DGMethod<dim>::output_results (const unsigned int cycle) const
            << std::endl << std::endl;
   std::ofstream gnuplot_output (filename.c_str());
   
-  DataOut<dim, hpDoFHandler> data_out;
+  DataOut<dim, hp::DoFHandler> data_out;
   data_out.attach_dof_handler (dof_handler);
   data_out.add_data_vector (solution2, "u");
 
index a31c6d32405be2e7710f8cba33b51f4995a1ea7b..57e36c3ba789e904c5907e32066aa2dc724a02ec 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$ 
 //
-//    Copyright (C) 2005 by the deal.II authors
+//    Copyright (C) 2005, 2006 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
@@ -13,7 +13,7 @@
 
 
 /* Author: Ralf Hartmann, 2005, O. Kayser-Herold, simply modified
-  the mg_dof_handler.cc test for the hpDoFHandler. */
+  the mg_dof_handler.cc test for the hp::DoFHandler. */
 
 #include <base/logstream.h>
 #include <grid/tria.h>
@@ -42,7 +42,7 @@ int main ()
   FECollection<dim> fe_collection;
   fe_collection.add_fe (FE_DGQ<dim> (1));
 
-  hpDoFHandler<dim> dof_handler(tria);
+  hp::DoFHandler<dim> dof_handler(tria);
   
   tria.begin_active()->set_refine_flag();
   tria.execute_coarsening_and_refinement();

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.