]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Clean up hp-developments: remove unnecessary template argument.
authorRalf Hartmann <Ralf.Hartmann@dlr.de>
Fri, 10 Feb 2006 16:20:32 +0000 (16:20 +0000)
committerRalf Hartmann <Ralf.Hartmann@dlr.de>
Fri, 10 Feb 2006 16:20:32 +0000 (16:20 +0000)
git-svn-id: https://svn.dealii.org/trunk@12298 0785d39b-7218-0410-832d-ea1e28bc413d

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_handler.h
deal.II/deal.II/include/dofs/dof_iterator_selector.h
deal.II/deal.II/include/dofs/hp_dof_handler.h
deal.II/deal.II/include/multigrid/mg_dof_accessor.h
deal.II/deal.II/source/dofs/dof_accessor.cc
deal.II/deal.II/source/multigrid/mg_dof_accessor.cc
deal.II/deal.II/source/multigrid/mg_transfer_block.cc

index dbe1c588afb64a19ea49327d92f0d15aa3993591..e051ce0f71e569b3c0c31da75ad9c76250df2488 100644 (file)
@@ -16,6 +16,8 @@
 
 #include <base/config.h>
 #include <grid/tria_accessor.h>
+#include <dofs/dof_handler.h>
+#include <dofs/hp_dof_handler.h>
 #include <vector>
 
 template <typename number> class FullMatrix;
@@ -29,11 +31,7 @@ namespace hp
 }
 template <int dim> class FiniteElement;
 
-template <int celldim, int dim, template <int> class DH> class DoFObjectAccessor;
-template <int dim, template <int> class DH>              class DoFObjectAccessor<0, dim, DH>;
-template <int dim, template <int> class DH>              class DoFObjectAccessor<1, dim, DH>;
-template <int dim, template <int> class DH>              class DoFObjectAccessor<2, dim, DH>;
-template <int dim, template <int> class DH>              class DoFObjectAccessor<3, dim, DH>;
+template <int celldim, class DH> class DoFObjectAccessor;
 
 template <int dim, typename Accessor> class TriaRawIterator;
 
@@ -60,7 +58,7 @@ template <int dim, typename Accessor> class TriaRawIterator;
  * @ingroup Accessors 
  * @author Wolfgang Bangerth, 1998
  */
-template <int dim, template <int> class DH>
+template <class DH>
 class DoFAccessor
 {
   public:
@@ -79,26 +77,26 @@ class DoFAccessor
                                      * non-const, even if they preserve
                                      * constness.
                                      */
-    DoFAccessor (const DH<dim> *dof_handler);
+    DoFAccessor (const DH *dof_handler);
 
                                     /**
                                      * Reset the DoF handler pointer.
                                      */
-    void set_dof_handler (DH<dim> *dh);
+    void set_dof_handler (DH *dh);
 
                                     /**
                                      * Return a handle on the
                                      * DoFHandler object which we
                                      * are using.
                                      */
-    const DH<dim> &
+    const DH &
     get_dof_handler () const;
 
                                     /**
                                      * Copy operator.
                                      */
-    DoFAccessor<dim, DH> &
-    operator = (const DoFAccessor<dim, DH> &da);
+    DoFAccessor<DH> &
+    operator = (const DoFAccessor<DH> &da);
 
                                     /**
                                      * Exception for child classes
@@ -155,7 +153,7 @@ class DoFAccessor
                                      * Store the address of the DoFHandler object
                                      * to be accessed.
                                      */
-    DH<dim> *dof_handler;  
+    DH *dof_handler;  
 };
 
 
@@ -255,15 +253,20 @@ class DoFObjectAccessor_Inheritance<dim,dim>
  * @ingroup Accessors 
  * @author Wolfgang Bangerth, 1998; Guido Kanschat, 1999
  */
-template<int celldim, int dim, template <int> class DH>
-class DoFObjectAccessor : public DoFAccessor<dim, DH>,
-                         public TriaObjectAccessor<celldim,dim>
+template<int celldim, class DH>
+class DoFObjectAccessor : public DoFAccessor<DH>,
+                         public TriaObjectAccessor<celldim, DH::dimension>
 {
   public:
+                                    /**
+                                     * Extract dimension from DH.
+                                     */
+    static const unsigned int dim = DH::dimension;
+    
                                     /**
                                      * Data type  passed by the iterator class.
                                      */
-    typedef DH<dim> AccessorData;
+    typedef DH AccessorData;
 
                                     /**
                                      * Declare base class as a local typedef
@@ -429,14 +432,14 @@ class DoFObjectAccessor : public DoFAccessor<dim, DH>,
                                      *  Pointer to the <i>i</i>th line
                                      *  bounding this Object.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<1, dim, DH> >
+    TriaIterator<dim,DoFObjectAccessor<1, DH> >
     line (const unsigned int i) const;
 
                                     /**
                                      *  Pointer to the <i>i</i>th quad
                                      *  bounding this Object.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<2, dim, DH> >
+    TriaIterator<dim,DoFObjectAccessor<2, DH> >
     quad (const unsigned int i) const;
     
                                     /**
@@ -446,7 +449,7 @@ class DoFObjectAccessor : public DoFAccessor<dim, DH>,
                                      * class returns a hex accessor without
                                      * access to the DoF data.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<celldim, dim, DH> > child (const unsigned int) const;
+    TriaIterator<dim,DoFObjectAccessor<celldim, DH> > child (const unsigned int) const;
 
                                     /**
                                      * Distribute a local (cell
@@ -487,7 +490,7 @@ class DoFObjectAccessor : public DoFAccessor<dim, DH>,
                                      * Implement the copy operator needed
                                      * for the iterator classes.
                                      */
-    void copy_from (const DoFObjectAccessor<celldim, dim, DH> &a);
+    void copy_from (const DoFObjectAccessor<celldim, DH> &a);
 
   protected:    
                                     /**
@@ -514,11 +517,16 @@ class DoFObjectAccessor : public DoFAccessor<dim, DH>,
  * Closure class.
  * @ingroup dofs
  */
-template<int dim, template <int> class DH>
-class DoFObjectAccessor<0, dim, DH> : public DoFAccessor<dim, DH>,
-                                     public DoFObjectAccessor_Inheritance<0,dim>::BaseClass
+template<class DH>
+class DoFObjectAccessor<0, DH> : public DoFAccessor<DH>,
+                                public DoFObjectAccessor_Inheritance<0,DH::dimension>::BaseClass
 {
   public:
+                                    /**
+                                     * Extract dimension from DH.
+                                     */
+    static const unsigned int dim = DH::dimension;
+
     typedef void AccessorData;
 
                                     /**
@@ -565,17 +573,23 @@ class DoFObjectAccessor<0, dim, DH> : public DoFAccessor<dim, DH>,
  * @ingroup dofs
  * @author Wolfgang Bangerth, 1998
  */
-template <int dim, template <int> class DH>
-class DoFObjectAccessor<1, dim, DH> :  public DoFAccessor<dim, DH>,
-                                      public DoFObjectAccessor_Inheritance<1,dim>::BaseClass
+template <class DH>
+class DoFObjectAccessor<1, DH> :
+  public DoFAccessor<DH>,
+  public DoFObjectAccessor_Inheritance<1,DH::dimension>::BaseClass
 {
   public:
+                                    /**
+                                     * Extract dimension from DH.
+                                     */
+    static const unsigned int dim = DH::dimension;
+    
                                     /**
                                      * Declare the data type that this accessor
                                      * class expects to get passed from the
                                      * iterator classes.
                                      */
-    typedef DH<dim> AccessorData;
+    typedef DH AccessorData;
 
                                     /**
                                      * Declare base class as a local typedef
@@ -594,7 +608,7 @@ class DoFObjectAccessor<1, dim, DH> :  public DoFAccessor<dim, DH>,
                                      * argument is assumed to be a pointer
                                      * to a DoFHandler object.
                                      */
-    DoFObjectAccessor (const Triangulation<dim> *tria,
+    DoFObjectAccessor (const Triangulation<DH::dimension> *tria,
                       const int                 level,
                       const int                 index,
                       const AccessorData       *local_data);
@@ -715,7 +729,7 @@ class DoFObjectAccessor<1, dim, DH> :  public DoFAccessor<dim, DH>,
                                       * for hp DoF handlers, this may
                                       * change from cell to cell.
                                       */
-    const FiniteElement<dim> &
+    const FiniteElement<DH::dimension> &
     get_fe () const;
     
                                      /**
@@ -738,7 +752,7 @@ class DoFObjectAccessor<1, dim, DH> :  public DoFAccessor<dim, DH>,
                                      * class returns a line accessor without
                                      * access to the DoF data.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<1,dim,DH> > child (const unsigned int) const;
+    TriaIterator<DH::dimension,DoFObjectAccessor<1,DH> > child (const unsigned int) const;
 
                                     /**
                                      * Distribute a local (cell based) vector
@@ -777,18 +791,18 @@ class DoFObjectAccessor<1, dim, DH> :  public DoFAccessor<dim, DH>,
                                      * Implement the copy operator needed
                                      * for the iterator classes.
                                      */
-    void copy_from (const DoFObjectAccessor<1,dim,DH> &a);
+    void copy_from (const DoFObjectAccessor<1,DH> &a);
 
   protected:    
                                     /**
                                      *  Compare for equality.            
                                      */
-    bool operator == (const DoFObjectAccessor<1,dim,DH> &) const;
+    bool operator == (const DoFObjectAccessor<1,DH> &) const;
        
                                     /**
                                      * Compare for inequality.
                                      */
-    bool operator != (const DoFObjectAccessor<1,dim,DH> &) const;
+    bool operator != (const DoFObjectAccessor<1,DH> &) const;
 
 
                                      /**
@@ -805,17 +819,23 @@ class DoFObjectAccessor<1, dim, DH> :  public DoFAccessor<dim, DH>,
  *
  * @ingroup dofs
  */
-template <int dim, template <int> class DH>
-class DoFObjectAccessor<2, dim, DH> :  public DoFAccessor<dim, DH>,
-                                      public DoFObjectAccessor_Inheritance<2,dim>::BaseClass
+template <class DH>
+class DoFObjectAccessor<2, DH> :
+  public DoFAccessor<DH>,
+  public DoFObjectAccessor_Inheritance<2,DH::dimension>::BaseClass
 {
   public:
+                                    /**
+                                     * Extract dimension from DH.
+                                     */
+    static const unsigned int dim = DH::dimension;
+
                                     /**
                                      * Declare the data type that this accessor
                                      * class expects to get passed from the
                                      * iterator classes.
                                      */
-    typedef DH<dim> AccessorData;
+    typedef DH AccessorData;
 
                                     /**
                                      * Declare base class as a local typedef
@@ -834,7 +854,7 @@ class DoFObjectAccessor<2, dim, DH> :  public DoFAccessor<dim, DH>,
                                      * argument is assumed to be a pointer
                                      * to a DoFHandler object.
                                      */
-    DoFObjectAccessor (const Triangulation<dim> *tria,
+    DoFObjectAccessor (const Triangulation<DH::dimension> *tria,
                       const int                 level,
                       const int                 index,
                       const AccessorData       *local_data);
@@ -956,7 +976,7 @@ class DoFObjectAccessor<2, dim, DH> :  public DoFAccessor<dim, DH>,
                                       * for hp DoF handlers, this may
                                       * change from cell to cell.
                                       */
-    const FiniteElement<dim> &
+    const FiniteElement<DH::dimension> &
     get_fe () const;
     
                                      /**
@@ -976,7 +996,7 @@ class DoFObjectAccessor<2, dim, DH> :  public DoFAccessor<dim, DH>,
                                      *  Return a pointer to the @p ith line
                                      *  bounding this @p Quad.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<1, dim, DH> >
+    TriaIterator<DH::dimension,DoFObjectAccessor<1, DH> >
     line (const unsigned int i) const;
     
                                     /**
@@ -986,7 +1006,7 @@ class DoFObjectAccessor<2, dim, DH> :  public DoFAccessor<dim, DH>,
                                      * class returns a quad accessor without
                                      * access to the DoF data.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<2, dim, DH> >
+    TriaIterator<DH::dimension,DoFObjectAccessor<2, DH> >
     child (const unsigned int) const;
 
                                     /**
@@ -1026,18 +1046,18 @@ class DoFObjectAccessor<2, dim, DH> :  public DoFAccessor<dim, DH>,
                                      * Implement the copy operator needed
                                      * for the iterator classes.
                                      */
-    void copy_from (const DoFObjectAccessor<2, dim, DH> &a);
+    void copy_from (const DoFObjectAccessor<2, DH> &a);
 
   protected:    
                                     /**
                                      *  Compare for equality.            
                                      */
-    bool operator == (const DoFObjectAccessor<2,dim,DH> &) const;
+    bool operator == (const DoFObjectAccessor<2,DH> &) const;
        
                                     /**
                                      * Compare for inequality.
                                      */
-    bool operator != (const DoFObjectAccessor<2,dim,DH> &) const;
+    bool operator != (const DoFObjectAccessor<2,DH> &) const;
 
 
                                      /**
@@ -1054,17 +1074,23 @@ class DoFObjectAccessor<2, dim, DH> :  public DoFAccessor<dim, DH>,
  *
  * @ingroup dofs
  */
-template <int dim, template <int> class DH>
-class DoFObjectAccessor<3, dim, DH> :  public DoFAccessor<dim, DH>,
-                                      public DoFObjectAccessor_Inheritance<3,dim>::BaseClass
+template <class DH>
+class DoFObjectAccessor<3, DH> :
+  public DoFAccessor<DH>,
+  public DoFObjectAccessor_Inheritance<3,DH::dimension>::BaseClass
 {
   public:
+                                    /**
+                                     * Extract dimension from DH.
+                                     */
+    static const unsigned int dim = DH::dimension;
+    
                                     /**
                                      * Declare the data type that this accessor
                                      * class expects to get passed from the
                                      * iterator classes.
                                      */
-    typedef DH<dim> AccessorData;
+    typedef DH AccessorData;
 
                                     /**
                                      * Declare base class as a local typedef
@@ -1083,7 +1109,7 @@ class DoFObjectAccessor<3, dim, DH> :  public DoFAccessor<dim, DH>,
                                      * argument is assumed to be a pointer
                                      * to a DoFHandler object.
                                      */
-    DoFObjectAccessor (const Triangulation<dim> *tria,
+    DoFObjectAccessor (const Triangulation<DH::dimension> *tria,
                       const int                 level,
                       const int                 index,
                       const AccessorData       *local_data);
@@ -1205,7 +1231,7 @@ class DoFObjectAccessor<3, dim, DH> :  public DoFAccessor<dim, DH>,
                                       * for hp DoF handlers, this may
                                       * change from cell to cell.
                                       */
-    const FiniteElement<dim> &
+    const FiniteElement<DH::dimension> &
     get_fe () const;
 
                                      /**
@@ -1225,14 +1251,14 @@ class DoFObjectAccessor<3, dim, DH> :  public DoFAccessor<dim, DH>,
                                      *  Return a pointer to the @p ith line
                                      *  bounding this @p Hex.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<1, dim, DH> >
+    TriaIterator<DH::dimension,DoFObjectAccessor<1, DH> >
     line (const unsigned int i) const;
 
                                     /**
                                      *  Return a pointer to the @p ith quad
                                      *  bounding this @p Hex.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<2, dim, DH> >
+    TriaIterator<DH::dimension,DoFObjectAccessor<2, DH> >
     quad (const unsigned int i) const;
     
                                     /**
@@ -1242,7 +1268,7 @@ class DoFObjectAccessor<3, dim, DH> :  public DoFAccessor<dim, DH>,
                                      * class returns a hex accessor without
                                      * access to the DoF data.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<3, dim, DH> > child (const unsigned int) const;
+    TriaIterator<DH::dimension,DoFObjectAccessor<3, DH> > child (const unsigned int) const;
 
                                     /**
                                      * Distribute a local (cell
@@ -1283,18 +1309,18 @@ class DoFObjectAccessor<3, dim, DH> :  public DoFAccessor<dim, DH>,
                                      * Implement the copy operator needed
                                      * for the iterator classes.
                                      */
-    void copy_from (const DoFObjectAccessor<3, dim, DH> &a);
+    void copy_from (const DoFObjectAccessor<3, DH> &a);
 
   protected:    
                                     /**
                                      *  Compare for equality.            
                                      */
-    bool operator == (const DoFObjectAccessor<3,dim,DH> &) const;
+    bool operator == (const DoFObjectAccessor<3,DH> &) const;
        
                                     /**
                                      * Compare for inequality.
                                      */
-    bool operator != (const DoFObjectAccessor<3,dim,DH> &) const;
+    bool operator != (const DoFObjectAccessor<3,DH> &) const;
 
 
                                      /**
@@ -1326,22 +1352,27 @@ class DoFObjectAccessor<3, dim, DH> :  public DoFAccessor<dim, DH>,
  * @ingroup dofs
  * @author Wolfgang Bangerth, 1998
  */
-template <int dim, template <int> class DH>
-class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, DH>
+template <class DH>
+class DoFCellAccessor :  public DoFObjectAccessor<DH::dimension,DH>
 {
   public:
+                                    /**
+                                     * Extract dimension from DH.
+                                     */
+    static const unsigned int dim = DH::dimension;
+    
                                     /**
                                      * Declare the data type that
                                      * this accessor class expects to
                                      * get passed from the iterator
                                      * classes.
                                      */
-    typedef typename DoFObjectAccessor<dim, dim, DH>::AccessorData AccessorData;
+    typedef typename DoFObjectAccessor<DH::dimension,DH>::AccessorData AccessorData;
     
                                     /**
                                      * Constructor
                                      */
-    DoFCellAccessor (const Triangulation<dim> *tria,
+    DoFCellAccessor (const Triangulation<DH::dimension> *tria,
                     const int                 level,
                     const int                 index,
                     const AccessorData       *local_data);
@@ -1355,7 +1386,7 @@ class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, DH>
                                      * without access to the DoF
                                      * data.
                                      */
-    TriaIterator<dim,DoFCellAccessor<dim, DH> >
+    TriaIterator<DH::dimension,DoFCellAccessor<DH> >
     neighbor (const unsigned int) const;
 
                                     /**
@@ -1367,7 +1398,7 @@ class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, DH>
                                      * without access to the DoF
                                      * data.
                                      */
-    TriaIterator<dim,DoFCellAccessor<dim, DH> >
+    TriaIterator<DH::dimension,DoFCellAccessor<DH> >
     child (const unsigned int) const;
 
                                     /**
@@ -1378,7 +1409,7 @@ class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, DH>
                                      * 1D, and maps to DoFObjectAccessor<2,
                                      * dim>::line in 2D.
                                      */
-    TriaIterator<dim, DoFObjectAccessor<dim-1, dim, DH> >
+    TriaIterator<DH::dimension, DoFObjectAccessor<dim-1, DH> >
     face (const unsigned int i) const;
 
                                      /**
@@ -1392,7 +1423,7 @@ class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, DH>
                                      * access to the triangulation
                                      * data).
                                      */
-    TriaIterator<dim,DoFCellAccessor<dim,DH> >
+    TriaIterator<DH::dimension,DoFCellAccessor<DH> >
     neighbor_child_on_subface (const unsigned int face_no,
                                const unsigned int subface_no) const;
 
@@ -1559,91 +1590,91 @@ class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, DH>
 /* -------------- declaration of explicit specializations ------------- */
 
 template <>
-TriaIterator<1, DoFObjectAccessor<0,1, DoFHandler> >
-DoFCellAccessor<1, DoFHandler>::face (const unsigned int) const;
+TriaIterator<1, DoFObjectAccessor<0,DoFHandler<1> > >
+DoFCellAccessor<DoFHandler<1> >::face (const unsigned int) const;
 template <>
-TriaIterator<2, DoFObjectAccessor<1,2, DoFHandler> >
-DoFCellAccessor<2, DoFHandler>::face (const unsigned int i) const;
+TriaIterator<2, DoFObjectAccessor<1,DoFHandler<2> > >
+DoFCellAccessor<DoFHandler<2> >::face (const unsigned int i) const;
 template <>
-TriaIterator<3, DoFObjectAccessor<2,3, DoFHandler> >
-DoFCellAccessor<3, DoFHandler>::face (const unsigned int i) const;
+TriaIterator<3, DoFObjectAccessor<2,DoFHandler<3> > >
+DoFCellAccessor<DoFHandler<3> >::face (const unsigned int i) const;
 
 template <>
 const FiniteElement<1> &
-DoFObjectAccessor<1,1,hp::DoFHandler>::get_fe () const;
+DoFObjectAccessor<1,hp::DoFHandler<1> >::get_fe () const;
 template <>
 const FiniteElement<2> &
-DoFObjectAccessor<1,2,hp::DoFHandler>::get_fe () const;
+DoFObjectAccessor<1,hp::DoFHandler<2> >::get_fe () const;
 template <>
 const FiniteElement<3> &
-DoFObjectAccessor<1,3,hp::DoFHandler>::get_fe () const;
+DoFObjectAccessor<1,hp::DoFHandler<3> >::get_fe () const;
 template <>
 const FiniteElement<2> &
-DoFObjectAccessor<2,2,hp::DoFHandler>::get_fe () const;
+DoFObjectAccessor<2,hp::DoFHandler<2> >::get_fe () const;
 template <>
 const FiniteElement<3> &
-DoFObjectAccessor<2,3,hp::DoFHandler>::get_fe () const;
+DoFObjectAccessor<2,hp::DoFHandler<3> >::get_fe () const;
 template <>
 const FiniteElement<3> &
-DoFObjectAccessor<3,3,hp::DoFHandler>::get_fe () const;
+DoFObjectAccessor<3,hp::DoFHandler<3> >::get_fe () const;
 
 template <>
-void DoFObjectAccessor<1,1,hp::DoFHandler>::set_dof_index (const unsigned int,
-                                                         const unsigned int) const;
+void DoFObjectAccessor<1,hp::DoFHandler<1> >::set_dof_index (const unsigned int,
+                                                            const unsigned int) const;
 template <>
-void DoFObjectAccessor<1,2,hp::DoFHandler>::set_dof_index (const unsigned int,
-                                                         const unsigned int) const;
+void DoFObjectAccessor<1,hp::DoFHandler<2> >::set_dof_index (const unsigned int,
+                                                            const unsigned int) const;
 template <>
-void DoFObjectAccessor<1,3,hp::DoFHandler>::set_dof_index (const unsigned int,
-                                                         const unsigned int) const;
+void DoFObjectAccessor<1,hp::DoFHandler<3> >::set_dof_index (const unsigned int,
+                                                            const unsigned int) const;
 template <>
-void DoFObjectAccessor<2,2,hp::DoFHandler>::set_dof_index (const unsigned int,
-                                                         const unsigned int) const;
+void DoFObjectAccessor<2,hp::DoFHandler<2> >::set_dof_index (const unsigned int,
+                                                            const unsigned int) const;
 template <>
-void DoFObjectAccessor<2,3,hp::DoFHandler>::set_dof_index (const unsigned int,
-                                                         const unsigned int) const;
+void DoFObjectAccessor<2,hp::DoFHandler<3> >::set_dof_index (const unsigned int,
+                                                            const unsigned int) const;
 template <>
-void DoFObjectAccessor<3,3,hp::DoFHandler>::set_dof_index (const unsigned int,
-                                                         const unsigned int) const;
+void DoFObjectAccessor<3,hp::DoFHandler<3> >::set_dof_index (const unsigned int,
+                                                            const unsigned int) const;
 
 
 template <>
 unsigned int
-DoFObjectAccessor<1,1,hp::DoFHandler>::active_fe_index () const;
+DoFObjectAccessor<1,hp::DoFHandler<1> >::active_fe_index () const;
 template <>
 unsigned int
-DoFObjectAccessor<1,2,hp::DoFHandler>::active_fe_index () const;
+DoFObjectAccessor<1,hp::DoFHandler<2> >::active_fe_index () const;
 template <>
 unsigned int
-DoFObjectAccessor<1,3,hp::DoFHandler>::active_fe_index () const;
+DoFObjectAccessor<1,hp::DoFHandler<3> >::active_fe_index () const;
 template <>
 unsigned int
-DoFObjectAccessor<2,2,hp::DoFHandler>::active_fe_index () const;
+DoFObjectAccessor<2,hp::DoFHandler<2> >::active_fe_index () const;
 template <>
 unsigned int
-DoFObjectAccessor<2,3,hp::DoFHandler>::active_fe_index () const;
+DoFObjectAccessor<2,hp::DoFHandler<3> >::active_fe_index () const;
 template <>
 unsigned int
-DoFObjectAccessor<3,3,hp::DoFHandler>::active_fe_index () const;
+DoFObjectAccessor<3,hp::DoFHandler<3> >::active_fe_index () const;
 
 template <>
 void
-DoFObjectAccessor<1,1,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<1,hp::DoFHandler<1> >::set_active_fe_index (const unsigned int i);
 template <>
 void
-DoFObjectAccessor<1,2,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<1,hp::DoFHandler<2> >::set_active_fe_index (const unsigned int i);
 template <>
 void
-DoFObjectAccessor<1,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<1,hp::DoFHandler<3> >::set_active_fe_index (const unsigned int i);
 template <>
 void
-DoFObjectAccessor<2,2,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<2,hp::DoFHandler<2> >::set_active_fe_index (const unsigned int i);
 template <>
 void
-DoFObjectAccessor<2,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<2,hp::DoFHandler<3> >::set_active_fe_index (const unsigned int i);
 template <>
 void
-DoFObjectAccessor<3,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i);
+DoFObjectAccessor<3,hp::DoFHandler<3> >::set_active_fe_index (const unsigned int i);
 
 
 // include more templates
index 762bf9663ed61bbacde502158972f447e6e57080..ff22b3b0a79471bd6093d5fdb8de02f69ae8e903 100644 (file)
@@ -16,8 +16,6 @@
 
 #include <base/config.h>
 #include <dofs/dof_accessor.h>
-#include <dofs/dof_handler.h>
-#include <dofs/hp_dof_handler.h>
 #include <dofs/dof_levels.h>
 #include <dofs/hp_dof_levels.h>
 #include <grid/tria_iterator.h>
@@ -29,8 +27,8 @@
 /*------------------------- Functions: DoFAccessor ---------------------------*/
 
 
-template <int dim, template <int> class DH>
-DoFAccessor<dim, DH>::DoFAccessor ()
+template <class DH>
+DoFAccessor<DH>::DoFAccessor ()
                 :
                dof_handler(0)
 {
@@ -39,17 +37,17 @@ DoFAccessor<dim, DH>::DoFAccessor ()
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-DoFAccessor<dim, DH>::DoFAccessor (const DH<dim> *dof_handler) :
-               dof_handler(const_cast<DH<dim>*>(dof_handler))
+DoFAccessor<DH>::DoFAccessor (const DH *dof_handler) :
+               dof_handler(const_cast<DH*>(dof_handler))
 {}
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 void
-DoFAccessor<dim, DH>::set_dof_handler (DH<dim> *dh)
+DoFAccessor<DH>::set_dof_handler (DH *dh)
 {
   Assert (dh != 0, ExcInvalidObject());
   dof_handler = dh;
@@ -57,19 +55,19 @@ DoFAccessor<dim, DH>::set_dof_handler (DH<dim> *dh)
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-const DH<dim> &
-DoFAccessor<dim, DH>::get_dof_handler () const
+const DH &
+DoFAccessor<DH>::get_dof_handler () const
 {
   return *this->dof_handler;
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-DoFAccessor<dim, DH> &
-DoFAccessor<dim, DH>::operator = (const DoFAccessor<dim, DH> &da)
+DoFAccessor<DH> &
+DoFAccessor<DH>::operator = (const DoFAccessor<DH> &da)
 {
   this->set_dof_handler (da.dof_handler);
   return *this;
@@ -77,10 +75,10 @@ DoFAccessor<dim, DH>::operator = (const DoFAccessor<dim, DH> &da)
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 bool
-DoFAccessor<dim, DH>::operator == (const DoFAccessor<dim, DH> &a) const
+DoFAccessor<DH>::operator == (const DoFAccessor<DH> &a) const
 {
   Assert (dof_handler == a.dof_handler, ExcCantCompareIterators());
 
@@ -92,10 +90,10 @@ DoFAccessor<dim, DH>::operator == (const DoFAccessor<dim, DH> &a) const
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 bool
-DoFAccessor<dim, DH>::operator != (const DoFAccessor<dim, DH> &a) const
+DoFAccessor<DH>::operator != (const DoFAccessor<DH> &a) const
 {
   Assert (dof_handler == a.dof_handler, ExcCantCompareIterators());
 
@@ -114,26 +112,26 @@ DoFAccessor<dim, DH>::operator != (const DoFAccessor<dim, DH> &a) const
 /*------------------------- Functions: DoFObjectAccessor<1,dim> -----------------------*/
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-DoFObjectAccessor<1,dim,DH>::
-DoFObjectAccessor (const Triangulation<dim> *tria,
+DoFObjectAccessor<1,DH>::
+DoFObjectAccessor (const Triangulation<DH::dimension> *tria,
                    const int                 level,
                    const int                 index,
                    const AccessorData       *local_data)
                 :
-                DoFAccessor<dim,DH> (local_data),
-                DoFObjectAccessor_Inheritance<1,dim>::BaseClass (tria,
-                                                                 level,
-                                                                 index)
+                DoFAccessor<DH> (local_data),
+                DoFObjectAccessor_Inheritance<1,DH::dimension>::BaseClass (tria,
+                                                                          level,
+                                                                          index)
 {}
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 unsigned int
-DoFObjectAccessor<1,dim,DH>::dof_index (const unsigned int i) const
+DoFObjectAccessor<1,DH>::dof_index (const unsigned int i) const
 {
                                   // since the exception classes are
                                   // from a template dependent base
@@ -144,7 +142,7 @@ DoFObjectAccessor<1,dim,DH>::dof_index (const unsigned int i) const
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject());
                                   // make sure a FE has been selected
@@ -158,10 +156,10 @@ DoFObjectAccessor<1,dim,DH>::dof_index (const unsigned int i) const
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 unsigned int
-DoFObjectAccessor<1,dim,DH>::vertex_dof_index (const unsigned int vertex,
+DoFObjectAccessor<1,DH>::vertex_dof_index (const unsigned int vertex,
                                               const unsigned int i) const
 {
                                   // since the exception classes are
@@ -173,7 +171,7 @@ DoFObjectAccessor<1,dim,DH>::vertex_dof_index (const unsigned int vertex,
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject());
   Assert (&this->get_fe() != 0, typename BaseClass::ExcInvalidObject());
@@ -188,10 +186,10 @@ DoFObjectAccessor<1,dim,DH>::vertex_dof_index (const unsigned int vertex,
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 void
-DoFObjectAccessor<1,dim,DH>::get_dof_indices (std::vector<unsigned int> &dof_indices) const
+DoFObjectAccessor<1,DH>::get_dof_indices (std::vector<unsigned int> &dof_indices) const
 {
                                   // since the exception classes are
                                   // from a template dependent base
@@ -202,7 +200,7 @@ DoFObjectAccessor<1,dim,DH>::get_dof_indices (std::vector<unsigned int> &dof_ind
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject());
   Assert (&this->get_fe() != 0, typename BaseClass::ExcInvalidObject());
@@ -235,15 +233,15 @@ DoFObjectAccessor<1,dim,DH>::get_dof_indices (std::vector<unsigned int> &dof_ind
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-TriaIterator<dim,DoFObjectAccessor<1,dim,DH> >
-DoFObjectAccessor<1,dim,DH>::child (const unsigned int i) const
+TriaIterator<DH::dimension,DoFObjectAccessor<1,DH> >
+DoFObjectAccessor<1,DH>::child (const unsigned int i) const
 {
-  TriaIterator<dim,DoFObjectAccessor<1,dim,DH> > q (this->tria,
-                                                   this->present_level+1,
-                                                   this->child_index (i),
-                                                   this->dof_handler);
+  TriaIterator<dim,DoFObjectAccessor<1,DH> > q (this->tria,
+                                               this->present_level+1,
+                                               this->child_index (i),
+                                               this->dof_handler);
   
 #ifdef DEBUG
   if (q.state() != IteratorState::past_the_end)
@@ -254,39 +252,39 @@ DoFObjectAccessor<1,dim,DH>::child (const unsigned int i) const
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-const FiniteElement<dim> &
-DoFObjectAccessor<1,dim,DH>::get_fe () const
+const FiniteElement<DH::dimension> &
+DoFObjectAccessor<1,DH>::get_fe () const
 {
   return *this->dof_handler->selected_fe;
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 unsigned int
-DoFObjectAccessor<1,dim,DH>::active_fe_index () const
+DoFObjectAccessor<1,DH>::active_fe_index () const
 {
     return 0;
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 void
-DoFObjectAccessor<1,dim,DH>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<1,DH>::set_active_fe_index (const unsigned int i)
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   Assert (i == 0, typename BaseClass::ExcInvalidObject());
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <typename number, typename OutputVector>
 inline
 void
-DoFObjectAccessor<1, dim, DH>::
+DoFObjectAccessor<1,DH>::
 distribute_local_to_global (const Vector<number> &local_source,
                            OutputVector         &global_destination) const
 {
@@ -299,7 +297,7 @@ distribute_local_to_global (const Vector<number> &local_source,
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<dim,DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -326,11 +324,11 @@ distribute_local_to_global (const Vector<number> &local_source,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <typename number, typename OutputMatrix>
 inline
 void
-DoFObjectAccessor<1, dim, DH>::
+DoFObjectAccessor<1,DH>::
 distribute_local_to_global (const FullMatrix<number> &local_source,
                            OutputMatrix             &global_destination) const
 {
@@ -343,7 +341,7 @@ distribute_local_to_global (const FullMatrix<number> &local_source,
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<dim,DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -375,10 +373,10 @@ distribute_local_to_global (const FullMatrix<number> &local_source,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 void
-DoFObjectAccessor<1,dim,DH>::copy_from (const DoFObjectAccessor<1,dim,DH> &a)
+DoFObjectAccessor<1,DH>::copy_from (const DoFObjectAccessor<1,DH> &a)
 {
   BaseClass::copy_from (a);
   this->set_dof_handler (a.dof_handler);
@@ -386,38 +384,38 @@ DoFObjectAccessor<1,dim,DH>::copy_from (const DoFObjectAccessor<1,dim,DH> &a)
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 bool
-DoFObjectAccessor<1,dim,DH>::operator == (const DoFObjectAccessor<1,dim,DH> &a) const
+DoFObjectAccessor<1,DH>::operator == (const DoFObjectAccessor<1,DH> &a) const
 {
   return (TriaObjectAccessor<1,dim>::operator == (a)
           &&
-          DoFAccessor<dim,DH>::operator == (a));
+          DoFAccessor<DH>::operator == (a));
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 bool
-DoFObjectAccessor<1,dim,DH>::operator != (const DoFObjectAccessor<1,dim,DH> &a) const
+DoFObjectAccessor<1,DH>::operator != (const DoFObjectAccessor<1,DH> &a) const
 {
   return (TriaObjectAccessor<1,dim>::operator != (a)
           ||
-          DoFAccessor<dim,DH>::operator != (a));
+          DoFAccessor<DH>::operator != (a));
 }
 
 
 /*------------------------- Functions: DoFObjectAccessor<2,dim> -----------------------*/
 
-template <int dim, template <int> class DH>
-DoFObjectAccessor<2,dim,DH>::
-DoFObjectAccessor (const Triangulation<dim> *tria,
+template <class DH>
+DoFObjectAccessor<2,DH>::
+DoFObjectAccessor (const Triangulation<DH::dimension> *tria,
                    const int                 level,
                    const int                 index,
                    const AccessorData       *local_data)
                 :
-                DoFAccessor<dim,DH> (local_data),
+                DoFAccessor<DH> (local_data),
                 DoFObjectAccessor_Inheritance<2,dim>::BaseClass (tria,
                                                                  level,
                                                                  index)
@@ -425,12 +423,12 @@ DoFObjectAccessor (const Triangulation<dim> *tria,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 unsigned int
-DoFObjectAccessor<2,dim,DH>::dof_index (const unsigned int i) const
+DoFObjectAccessor<2,DH>::dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<dim,DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -446,13 +444,13 @@ DoFObjectAccessor<2,dim,DH>::dof_index (const unsigned int i) const
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 unsigned int
-DoFObjectAccessor<2,dim,DH>::vertex_dof_index (const unsigned int vertex,
+DoFObjectAccessor<2,DH>::vertex_dof_index (const unsigned int vertex,
                                               const unsigned int i) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -470,12 +468,12 @@ DoFObjectAccessor<2,dim,DH>::vertex_dof_index (const unsigned int vertex,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 void
-DoFObjectAccessor<2,dim,DH>::get_dof_indices (std::vector<unsigned int> &dof_indices) const
+DoFObjectAccessor<2,DH>::get_dof_indices (std::vector<unsigned int> &dof_indices) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -515,14 +513,14 @@ DoFObjectAccessor<2,dim,DH>::get_dof_indices (std::vector<unsigned int> &dof_ind
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-TriaIterator<dim,DoFObjectAccessor<1,dim,DH> >
-DoFObjectAccessor<2,dim,DH>::line (const unsigned int i) const
+TriaIterator<DH::dimension,DoFObjectAccessor<1,DH> >
+DoFObjectAccessor<2,DH>::line (const unsigned int i) const
 {
   Assert (i<4, ExcIndexRange (i, 0, 4));
 
-  return TriaIterator<dim,DoFObjectAccessor<1,dim,DH> >
+  return TriaIterator<dim,DoFObjectAccessor<1,DH> >
     (
       this->tria,
       this->present_level,
@@ -532,15 +530,15 @@ DoFObjectAccessor<2,dim,DH>::line (const unsigned int i) const
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-TriaIterator<dim,DoFObjectAccessor<2,dim,DH> >
-DoFObjectAccessor<2,dim,DH>::child (const unsigned int i) const
+TriaIterator<DH::dimension,DoFObjectAccessor<2,DH> >
+DoFObjectAccessor<2,DH>::child (const unsigned int i) const
 {
-  TriaIterator<dim,DoFObjectAccessor<2,dim,DH> > q (this->tria,
-                                                this->present_level+1,
-                                                this->child_index (i),
-                                                this->dof_handler);
+  TriaIterator<dim,DoFObjectAccessor<2,DH> > q (this->tria,
+                                               this->present_level+1,
+                                               this->child_index (i),
+                                               this->dof_handler);
   
 #ifdef DEBUG
   if (q.state() != IteratorState::past_the_end)
@@ -550,40 +548,40 @@ DoFObjectAccessor<2,dim,DH>::child (const unsigned int i) const
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-const FiniteElement<dim> &
-DoFObjectAccessor<2,dim,DH>::get_fe () const
+const FiniteElement<DH::dimension> &
+DoFObjectAccessor<2,DH>::get_fe () const
 {
   return *this->dof_handler->selected_fe;
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 unsigned int
-DoFObjectAccessor<2,dim,DH>::active_fe_index () const
+DoFObjectAccessor<2,DH>::active_fe_index () const
 {
     return 0;
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 void
-DoFObjectAccessor<2,dim,DH>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<2,DH>::set_active_fe_index (const unsigned int i)
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   Assert (i == 0, typename BaseClass::ExcInvalidObject());
 }
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <typename number, typename OutputVector>
 inline
 void
-DoFObjectAccessor<2, dim, DH>::
+DoFObjectAccessor<2,DH>::
 distribute_local_to_global (const Vector<number> &local_source,
                            OutputVector         &global_destination) const
 {
@@ -596,7 +594,7 @@ distribute_local_to_global (const Vector<number> &local_source,
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<dim,DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -624,11 +622,11 @@ distribute_local_to_global (const Vector<number> &local_source,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <typename number, typename OutputMatrix>
 inline
 void
-DoFObjectAccessor<2, dim, DH>::
+DoFObjectAccessor<2,DH>::
 distribute_local_to_global (const FullMatrix<number> &local_source,
                            OutputMatrix             &global_destination) const
 {
@@ -641,7 +639,7 @@ distribute_local_to_global (const FullMatrix<number> &local_source,
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<dim,DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -674,10 +672,10 @@ distribute_local_to_global (const FullMatrix<number> &local_source,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 void
-DoFObjectAccessor<2,dim,DH>::copy_from (const DoFObjectAccessor<2,dim,DH> &a)
+DoFObjectAccessor<2,DH>::copy_from (const DoFObjectAccessor<2,DH> &a)
 {
   BaseClass::copy_from (a);
   this->set_dof_handler (a.dof_handler);
@@ -685,40 +683,40 @@ DoFObjectAccessor<2,dim,DH>::copy_from (const DoFObjectAccessor<2,dim,DH> &a)
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 bool
-DoFObjectAccessor<2,dim,DH>::operator == (const DoFObjectAccessor<2,dim,DH> &a) const
+DoFObjectAccessor<2,DH>::operator == (const DoFObjectAccessor<2,DH> &a) const
 {
   return (TriaObjectAccessor<2,dim>::operator == (a)
           &&
-          DoFAccessor<dim,DH>::operator == (a));
+          DoFAccessor<DH>::operator == (a));
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 bool
-DoFObjectAccessor<2,dim,DH>::operator != (const DoFObjectAccessor<2,dim,DH> &a) const
+DoFObjectAccessor<2,DH>::operator != (const DoFObjectAccessor<2,DH> &a) const
 {
   return (TriaObjectAccessor<2,dim>::operator != (a)
           ||
-          DoFAccessor<dim,DH>::operator != (a));
+          DoFAccessor<DH>::operator != (a));
 }
 
 
 
 /*------------------------- Functions: DoFObjectAccessor<3,dim> -----------------------*/
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-DoFObjectAccessor<3,dim,DH>::
-DoFObjectAccessor (const Triangulation<dim> *tria,
+DoFObjectAccessor<3,DH>::
+DoFObjectAccessor (const Triangulation<DH::dimension> *tria,
                    const int                 level,
                    const int                 index,
                    const AccessorData       *local_data)
                 :
-                DoFAccessor<dim,DH> (local_data),
+                DoFAccessor<DH> (local_data),
                 DoFObjectAccessor_Inheritance<3,dim>::BaseClass (tria,
                                                                  level,
                                                                  index)
@@ -726,12 +724,12 @@ DoFObjectAccessor (const Triangulation<dim> *tria,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 unsigned int
-DoFObjectAccessor<3,dim,DH>::dof_index (const unsigned int i) const
+DoFObjectAccessor<3,DH>::dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -747,13 +745,13 @@ DoFObjectAccessor<3,dim,DH>::dof_index (const unsigned int i) const
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 unsigned int
-DoFObjectAccessor<3,dim,DH>::vertex_dof_index (const unsigned int vertex,
+DoFObjectAccessor<3,DH>::vertex_dof_index (const unsigned int vertex,
                                               const unsigned int i) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -770,12 +768,12 @@ DoFObjectAccessor<3,dim,DH>::vertex_dof_index (const unsigned int vertex,
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 void
-DoFObjectAccessor<3,dim,DH>::get_dof_indices (std::vector<unsigned int> &dof_indices) const
+DoFObjectAccessor<3,DH>::get_dof_indices (std::vector<unsigned int> &dof_indices) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -820,13 +818,13 @@ DoFObjectAccessor<3,dim,DH>::get_dof_indices (std::vector<unsigned int> &dof_ind
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-TriaIterator<dim,DoFObjectAccessor<1,dim,DH> >
-DoFObjectAccessor<3,dim,DH>::line (const unsigned int i) const
+TriaIterator<DH::dimension,DoFObjectAccessor<1,DH> >
+DoFObjectAccessor<3,DH>::line (const unsigned int i) const
 {
   TriaIterator<dim,TriaObjectAccessor<1,dim> > l = BaseClass::line(i);
-  return TriaIterator<dim,DoFObjectAccessor<1,dim,DH> >
+  return TriaIterator<dim,DoFObjectAccessor<1,DH> >
     (
       this->tria,
       this->present_level,
@@ -836,14 +834,14 @@ DoFObjectAccessor<3,dim,DH>::line (const unsigned int i) const
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-TriaIterator<dim,DoFObjectAccessor<2,dim,DH> >
-DoFObjectAccessor<3,dim,DH>::quad (const unsigned int i) const
+TriaIterator<DH::dimension,DoFObjectAccessor<2,DH> >
+DoFObjectAccessor<3,DH>::quad (const unsigned int i) const
 {
   Assert (i<6, ExcIndexRange (i, 0, 6));
 
-  return TriaIterator<dim,DoFObjectAccessor<2,dim,DH> >
+  return TriaIterator<dim,DoFObjectAccessor<2,DH> >
     (
       this->tria,
       this->present_level,
@@ -853,15 +851,15 @@ DoFObjectAccessor<3,dim,DH>::quad (const unsigned int i) const
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-TriaIterator<dim,DoFObjectAccessor<3,dim,DH> >
-DoFObjectAccessor<3,dim,DH>::child (const unsigned int i) const
+TriaIterator<DH::dimension,DoFObjectAccessor<3,DH> >
+DoFObjectAccessor<3,DH>::child (const unsigned int i) const
 {
-  TriaIterator<dim,DoFObjectAccessor<3,dim,DH> > q (this->tria,
-                                                   this->present_level+1,
-                                                   this->child_index (i),
-                                                   this->dof_handler);
+  TriaIterator<dim,DoFObjectAccessor<3,DH> > q (this->tria,
+                                               this->present_level+1,
+                                               this->child_index (i),
+                                               this->dof_handler);
   
 #ifdef DEBUG
   if (q.state() != IteratorState::past_the_end)
@@ -871,39 +869,39 @@ DoFObjectAccessor<3,dim,DH>::child (const unsigned int i) const
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-const FiniteElement<dim> &
-DoFObjectAccessor<3,dim,DH>::get_fe () const
+const FiniteElement<DH::dimension> &
+DoFObjectAccessor<3,DH>::get_fe () const
 {
   return *this->dof_handler->selected_fe;
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 unsigned int
-DoFObjectAccessor<3,dim,DH>::active_fe_index () const
+DoFObjectAccessor<3,DH>::active_fe_index () const
 {
     return 0;
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 void
-DoFObjectAccessor<3,dim,DH>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<3,DH>::set_active_fe_index (const unsigned int i)
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   Assert (i == 0, typename BaseClass::ExcInvalidObject());
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <typename number, typename OutputVector>
 inline
 void
-DoFObjectAccessor<3, dim, DH>::
+DoFObjectAccessor<3,DH>::
 distribute_local_to_global (const Vector<number> &local_source,
                            OutputVector         &global_destination) const
 {
@@ -916,7 +914,7 @@ distribute_local_to_global (const Vector<number> &local_source,
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<dim,DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -945,11 +943,11 @@ distribute_local_to_global (const Vector<number> &local_source,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <typename number, typename OutputMatrix>
 inline
 void
-DoFObjectAccessor<3, dim, DH>::
+DoFObjectAccessor<3,DH>::
 distribute_local_to_global (const FullMatrix<number> &local_source,
                            OutputMatrix             &global_destination) const
 {
@@ -962,7 +960,7 @@ distribute_local_to_global (const FullMatrix<number> &local_source,
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<dim,DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -996,8 +994,8 @@ distribute_local_to_global (const FullMatrix<number> &local_source,
 
 
 
-template <int dim, template <int> class DH>
-void DoFObjectAccessor<3,dim,DH>::copy_from (const DoFObjectAccessor<3,dim,DH> &a)
+template <class DH>
+void DoFObjectAccessor<3,DH>::copy_from (const DoFObjectAccessor<3,DH> &a)
 {
   BaseClass::copy_from (a);
   this->set_dof_handler (a.dof_handler);
@@ -1005,25 +1003,25 @@ void DoFObjectAccessor<3,dim,DH>::copy_from (const DoFObjectAccessor<3,dim,DH> &
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 bool
-DoFObjectAccessor<3,dim,DH>::operator == (const DoFObjectAccessor<3,dim,DH> &a) const
+DoFObjectAccessor<3,DH>::operator == (const DoFObjectAccessor<3,DH> &a) const
 {
   return (TriaObjectAccessor<3,dim>::operator == (a)
           &&
-          DoFAccessor<dim,DH>::operator == (a));
+          DoFAccessor<DH>::operator == (a));
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
 bool
-DoFObjectAccessor<3,dim,DH>::operator != (const DoFObjectAccessor<3,dim,DH> &a) const
+DoFObjectAccessor<3,DH>::operator != (const DoFObjectAccessor<3,DH> &a) const
 {
   return (TriaObjectAccessor<3,dim>::operator != (a)
           ||
-          DoFAccessor<dim,DH>::operator != (a));
+          DoFAccessor<DH>::operator != (a));
 }
 
 
@@ -1032,7 +1030,7 @@ DoFObjectAccessor<3,dim,DH>::operator != (const DoFObjectAccessor<3,dim,DH> &a)
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,1,hp::DoFHandler>::dof_index (const unsigned int i) const
+DoFObjectAccessor<1,hp::DoFHandler<1> >::dof_index (const unsigned int i) const
 {
                                   // since the exception classes are
                                   // from a template dependent base
@@ -1043,7 +1041,7 @@ DoFObjectAccessor<1,1,hp::DoFHandler>::dof_index (const unsigned int i) const
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<1, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<1> > BaseClass;
   
   Assert (this->dof_handler != 0, BaseClass::ExcInvalidObject());
                                   // make sure a FE has been selected
@@ -1062,7 +1060,7 @@ DoFObjectAccessor<1,1,hp::DoFHandler>::dof_index (const unsigned int i) const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,2,hp::DoFHandler>::dof_index (const unsigned int i) const
+DoFObjectAccessor<1,hp::DoFHandler<2> >::dof_index (const unsigned int i) const
 {
                                   // since the exception classes are
                                   // from a template dependent base
@@ -1073,7 +1071,7 @@ DoFObjectAccessor<1,2,hp::DoFHandler>::dof_index (const unsigned int i) const
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<2, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<2> > BaseClass;
   
   Assert (this->dof_handler != 0, BaseClass::ExcInvalidObject());
                                   // make sure a FE has been selected
@@ -1092,7 +1090,7 @@ DoFObjectAccessor<1,2,hp::DoFHandler>::dof_index (const unsigned int i) const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,3,hp::DoFHandler>::dof_index (const unsigned int i) const
+DoFObjectAccessor<1,hp::DoFHandler<3> >::dof_index (const unsigned int i) const
 {
                                   // since the exception classes are
                                   // from a template dependent base
@@ -1103,7 +1101,7 @@ DoFObjectAccessor<1,3,hp::DoFHandler>::dof_index (const unsigned int i) const
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<3> > BaseClass;
   
   Assert (this->dof_handler != 0, BaseClass::ExcInvalidObject());
                                   // make sure a FE has been selected
@@ -1123,10 +1121,10 @@ DoFObjectAccessor<1,3,hp::DoFHandler>::dof_index (const unsigned int i) const
 template <>
 inline
 void
-DoFObjectAccessor<1, 1, hp::DoFHandler>::set_dof_index (const unsigned int i,
-                                                      const unsigned int index) const
+DoFObjectAccessor<1,hp::DoFHandler<1> >::set_dof_index (const unsigned int i,
+                                                       const unsigned int index) const
 {
-  typedef DoFAccessor<1, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<1> > BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1147,10 +1145,10 @@ DoFObjectAccessor<1, 1, hp::DoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 void
-DoFObjectAccessor<1, 2, hp::DoFHandler>::set_dof_index (const unsigned int i,
-                                                      const unsigned int index) const
+DoFObjectAccessor<1, hp::DoFHandler<2> >::set_dof_index (const unsigned int i,
+                                                        const unsigned int index) const
 {
-  typedef DoFAccessor<2, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<2> > BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1175,10 +1173,10 @@ DoFObjectAccessor<1, 2, hp::DoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 void
-DoFObjectAccessor<1, 3, hp::DoFHandler>::set_dof_index (const unsigned int i,
-                                                      const unsigned int index) const
+DoFObjectAccessor<1, hp::DoFHandler<3> >::set_dof_index (const unsigned int i,
+                                                        const unsigned int index) const
 {
-  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<3> > BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1201,21 +1199,21 @@ DoFObjectAccessor<1, 3, hp::DoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 const FiniteElement<1> &
-DoFObjectAccessor<1,1,hp::DoFHandler>::get_fe () const
+DoFObjectAccessor<1,hp::DoFHandler<1> >::get_fe () const
 {
   return (*dof_handler->finite_elements)[active_fe_index ()];
 }
 template <>
 inline
 const FiniteElement<2> &
-DoFObjectAccessor<1,2,hp::DoFHandler>::get_fe () const
+DoFObjectAccessor<1,hp::DoFHandler<2> >::get_fe () const
 {
   return (*dof_handler->finite_elements)[active_fe_index ()];
 }
 template <>
 inline
 const FiniteElement<3> &
-DoFObjectAccessor<1,3,hp::DoFHandler>::get_fe () const
+DoFObjectAccessor<1,hp::DoFHandler<3> >::get_fe () const
 {
   return (*dof_handler->finite_elements)[active_fe_index ()];
 }
@@ -1224,7 +1222,7 @@ DoFObjectAccessor<1,3,hp::DoFHandler>::get_fe () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,1,hp::DoFHandler>::active_fe_index () const
+DoFObjectAccessor<1,hp::DoFHandler<1> >::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 +1234,7 @@ DoFObjectAccessor<1,1,hp::DoFHandler>::active_fe_index () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,2,hp::DoFHandler>::active_fe_index () const
+DoFObjectAccessor<1,hp::DoFHandler<2> >::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 +1246,7 @@ DoFObjectAccessor<1,2,hp::DoFHandler>::active_fe_index () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<1,3,hp::DoFHandler>::active_fe_index () const
+DoFObjectAccessor<1,hp::DoFHandler<3> >::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 +1260,7 @@ DoFObjectAccessor<1,3,hp::DoFHandler>::active_fe_index () const
 template <>
 inline
 void
-DoFObjectAccessor<1,1,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<1,hp::DoFHandler<1> >::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 +1275,7 @@ DoFObjectAccessor<1,1,hp::DoFHandler>::set_active_fe_index (const unsigned int i
 template <>
 inline
 void
-DoFObjectAccessor<1,2,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<1,hp::DoFHandler<2> >::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 +1290,7 @@ DoFObjectAccessor<1,2,hp::DoFHandler>::set_active_fe_index (const unsigned int i
 template <>
 inline
 void
-DoFObjectAccessor<1,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<1,hp::DoFHandler<3> >::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) <
@@ -1310,9 +1308,9 @@ DoFObjectAccessor<1,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i
 
 template <>
 inline
-unsigned int DoFObjectAccessor<2,2,hp::DoFHandler>::dof_index (const unsigned int i) const
+unsigned int DoFObjectAccessor<2,hp::DoFHandler<2> >::dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<2, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<2> > BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1331,9 +1329,9 @@ unsigned int DoFObjectAccessor<2,2,hp::DoFHandler>::dof_index (const unsigned in
 
 template <>
 inline
-unsigned int DoFObjectAccessor<2,3,hp::DoFHandler>::dof_index (const unsigned int i) const
+unsigned int DoFObjectAccessor<2,hp::DoFHandler<3> >::dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<3> > BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1354,10 +1352,10 @@ unsigned int DoFObjectAccessor<2,3,hp::DoFHandler>::dof_index (const unsigned in
 template <>
 inline
 void
-DoFObjectAccessor<2, 2, hp::DoFHandler>::set_dof_index (const unsigned int i,
-                                                      const unsigned int index) const
+DoFObjectAccessor<2, hp::DoFHandler<2> >::set_dof_index (const unsigned int i,
+                                                        const unsigned int index) const
 {
-  typedef DoFAccessor<2, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<2> > BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1378,10 +1376,10 @@ DoFObjectAccessor<2, 2, hp::DoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 void
-DoFObjectAccessor<2, 3, hp::DoFHandler>::set_dof_index (const unsigned int i,
+DoFObjectAccessor<2, hp::DoFHandler<3> >::set_dof_index (const unsigned int i,
                                                       const unsigned int index) const
 {
-  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<3> > BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1403,7 +1401,7 @@ DoFObjectAccessor<2, 3, hp::DoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 const FiniteElement<2> &
-DoFObjectAccessor<2,2,hp::DoFHandler>::get_fe () const
+DoFObjectAccessor<2,hp::DoFHandler<2> >::get_fe () const
 {
   return (*dof_handler->finite_elements)[active_fe_index ()];
 }
@@ -1413,7 +1411,7 @@ DoFObjectAccessor<2,2,hp::DoFHandler>::get_fe () const
 template <>
 inline
 const FiniteElement<3> &
-DoFObjectAccessor<2,3,hp::DoFHandler>::get_fe () const
+DoFObjectAccessor<2,hp::DoFHandler<3> >::get_fe () const
 {
   return (*dof_handler->finite_elements)[active_fe_index ()];
 }
@@ -1423,7 +1421,7 @@ DoFObjectAccessor<2,3,hp::DoFHandler>::get_fe () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<2,2,hp::DoFHandler>::active_fe_index () const
+DoFObjectAccessor<2,hp::DoFHandler<2> >::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 +1436,7 @@ DoFObjectAccessor<2,2,hp::DoFHandler>::active_fe_index () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<2,3,hp::DoFHandler>::active_fe_index () const
+DoFObjectAccessor<2,hp::DoFHandler<3> >::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 +1450,7 @@ DoFObjectAccessor<2,3,hp::DoFHandler>::active_fe_index () const
 template <>
 inline
 void
-DoFObjectAccessor<2,2,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<2,hp::DoFHandler<2> >::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 +1468,7 @@ DoFObjectAccessor<2,2,hp::DoFHandler>::set_active_fe_index (const unsigned int i
 template <>
 inline
 void
-DoFObjectAccessor<2,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<2,hp::DoFHandler<3> >::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) <
@@ -1489,9 +1487,9 @@ DoFObjectAccessor<2,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i
 template <>
 inline
 unsigned int
-DoFObjectAccessor<3,3,hp::DoFHandler>::dof_index (const unsigned int i) const
+DoFObjectAccessor<3,hp::DoFHandler<3> >::dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<3> > BaseClass;
 
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1512,10 +1510,10 @@ DoFObjectAccessor<3,3,hp::DoFHandler>::dof_index (const unsigned int i) const
 template <>
 inline
 void
-DoFObjectAccessor<3, 3, hp::DoFHandler>::set_dof_index (const unsigned int i,
+DoFObjectAccessor<3, hp::DoFHandler<3> >::set_dof_index (const unsigned int i,
                                                       const unsigned int index) const
 {
-  typedef DoFAccessor<3, hp::DoFHandler> BaseClass;
+  typedef DoFAccessor<hp::DoFHandler<3> > BaseClass;
     
   Assert (this->dof_handler != 0,
          BaseClass::ExcInvalidObject());
@@ -1537,7 +1535,7 @@ DoFObjectAccessor<3, 3, hp::DoFHandler>::set_dof_index (const unsigned int i,
 template <>
 inline
 const FiniteElement<3> &
-DoFObjectAccessor<3,3,hp::DoFHandler>::get_fe () const
+DoFObjectAccessor<3,hp::DoFHandler<3> >::get_fe () const
 {
   return (*dof_handler->finite_elements)[active_fe_index ()];
 }
@@ -1546,7 +1544,7 @@ DoFObjectAccessor<3,3,hp::DoFHandler>::get_fe () const
 template <>
 inline
 unsigned int
-DoFObjectAccessor<3,3,hp::DoFHandler>::active_fe_index () const
+DoFObjectAccessor<3,hp::DoFHandler<3> >::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 +1559,7 @@ DoFObjectAccessor<3,3,hp::DoFHandler>::active_fe_index () const
 template <>
 inline
 void
-DoFObjectAccessor<3,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i)
+DoFObjectAccessor<3,hp::DoFHandler<3> >::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) <
@@ -1577,27 +1575,27 @@ DoFObjectAccessor<3,3,hp::DoFHandler>::set_active_fe_index (const unsigned int i
 
 /*------------------------- Functions: DoFCellAccessor -----------------------*/
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-DoFCellAccessor<dim,DH>::
-DoFCellAccessor (const Triangulation<dim> *tria,
+DoFCellAccessor<DH>::
+DoFCellAccessor (const Triangulation<DH::dimension> *tria,
                  const int                 level,
                  const int                 index,
                  const AccessorData       *local_data)
                 :
-                DoFObjectAccessor<dim, dim, DH> (tria,level,index,local_data)
+                DoFObjectAccessor<DH::dimension,DH> (tria,level,index,local_data)
 {}
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-TriaIterator<dim,DoFCellAccessor<dim,DH> >
-DoFCellAccessor<dim,DH>::neighbor (const unsigned int i) const
+TriaIterator<DH::dimension,DoFCellAccessor<DH> >
+DoFCellAccessor<DH>::neighbor (const unsigned int i) const
 {
-  TriaIterator<dim,DoFCellAccessor<dim,DH> > q (this->tria,
-                                               this->neighbor_level (i),
-                                               this->neighbor_index (i),
-                                               this->dof_handler);
+  TriaIterator<dim,DoFCellAccessor<DH> > q (this->tria,
+                                           this->neighbor_level (i),
+                                           this->neighbor_index (i),
+                                           this->dof_handler);
   
 #ifdef DEBUG
   if (q.state() != IteratorState::past_the_end)
@@ -1607,15 +1605,15 @@ DoFCellAccessor<dim,DH>::neighbor (const unsigned int i) const
 }
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 inline
-TriaIterator<dim,DoFCellAccessor<dim,DH> >
-DoFCellAccessor<dim,DH>::child (const unsigned int i) const
+TriaIterator<DH::dimension,DoFCellAccessor<DH> >
+DoFCellAccessor<DH>::child (const unsigned int i) const
 {
-  TriaIterator<dim,DoFCellAccessor<dim,DH> > q (this->tria,
-                                               this->present_level+1,
-                                               this->child_index (i),
-                                               this->dof_handler);
+  TriaIterator<dim,DoFCellAccessor<DH> > q (this->tria,
+                                           this->present_level+1,
+                                           this->child_index (i),
+                                           this->dof_handler);
   
 #ifdef DEBUG
   if (q.state() != IteratorState::past_the_end)
@@ -1628,19 +1626,19 @@ DoFCellAccessor<dim,DH>::child (const unsigned int i) const
 
 template <>
 inline
-TriaIterator<1, DoFObjectAccessor<0,1,hp::DoFHandler> >
-DoFCellAccessor<1,hp::DoFHandler>::face (const unsigned int) const
+TriaIterator<1, DoFObjectAccessor<0,hp::DoFHandler<1> > >
+DoFCellAccessor<hp::DoFHandler<1> >::face (const unsigned int) const
 {
   Assert (false, ExcImpossibleInDim(1));
-  return TriaIterator<1, DoFObjectAccessor<0,1, hp::DoFHandler> >();
+  return TriaIterator<1, DoFObjectAccessor<0,hp::DoFHandler<1> > >();
 }
 
 
 
 template <>
 inline
-TriaIterator<2, DoFObjectAccessor<1,2,hp::DoFHandler> >
-DoFCellAccessor<2,hp::DoFHandler>::face (const unsigned int i) const
+TriaIterator<2, DoFObjectAccessor<1,hp::DoFHandler<2> > >
+DoFCellAccessor<hp::DoFHandler<2> >::face (const unsigned int i) const
 {
   return this->line(i);
 }
@@ -1649,8 +1647,8 @@ DoFCellAccessor<2,hp::DoFHandler>::face (const unsigned int i) const
 
 template <>
 inline
-TriaIterator<3, DoFObjectAccessor<2, 3, hp::DoFHandler> >
-DoFCellAccessor<3,hp::DoFHandler>::face (const unsigned int i) const
+TriaIterator<3, DoFObjectAccessor<2, hp::DoFHandler<3> > >
+DoFCellAccessor<hp::DoFHandler<3> >::face (const unsigned int i) const
 {
   return this->quad(i);
 }
index d8904725cb3b03689508aee883f927aaa1780e3a..567c138f1615591b2cb3c051e7113dfff5b18e68 100644 (file)
@@ -1049,12 +1049,12 @@ class DoFHandler  :  public Subscriptor
                                     /*
                                      * Make accessor objects friends.
                                      */
-    template <int dim1, template <int> class DH> friend class DoFAccessor;
+    template <class DH> friend class DoFAccessor;
 
                                     /*
                                      * Make accessor objects friends.
                                      */
-    template <int dim1, int dim2, template <int> class DH> friend class DoFObjectAccessor;
+    template <int dim1, class DH> friend class DoFObjectAccessor;
 };
 
 
index 19e4012c6298be470b85843cf19b79d7c83a3918..13db10f52371cee5393baaee203ea127bedecf2b 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 by the deal.II authors
+//    Copyright (C) 1998, 1999, 2000, 2001, 2002, 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
 #ifndef __deal2__dof_iterator_selector_h
 #define __deal2__dof_iterator_selector_h
 
-template <int dim, template <int> class DH> class DoFAccessor;
-template <int dim, template <int> class DH> class DoFCellAccessor;
-template <int celldim, int dim, template <int> class DH> class DoFObjectAccessor;
-template <int dim, template <int> class DH>              class DoFObjectAccessor<0, dim, DH>;
-template <int dim, template <int> class DH>              class DoFObjectAccessor<1, dim, DH>;
-template <int dim, template <int> class DH>              class DoFObjectAccessor<2, dim, DH>;
-template <int dim, template <int> class DH>              class DoFObjectAccessor<3, dim, DH>;
+template <class DH> class DoFAccessor;
+template <class DH> class DoFCellAccessor;
+template <int celldim, class DH> class DoFObjectAccessor;
 template <int dim> class FiniteElement;
 template <int dim, typename Accessor> class TriaRawIterator;
 template <int dim, typename Accessor> class TriaIterator;
@@ -60,9 +56,9 @@ namespace internal
   template <template <int> class DH>
   struct DoFIteratorSelector<DH<1> >
   {
-      typedef TriaRawIterator<1,DoFCellAccessor<1, DH> >    raw_line_iterator;
-      typedef TriaIterator<1,DoFCellAccessor<1, DH> >       line_iterator;
-      typedef TriaActiveIterator<1,DoFCellAccessor<1, DH> > active_line_iterator;
+      typedef TriaRawIterator<1,DoFCellAccessor<DH<1> > >    raw_line_iterator;
+      typedef TriaIterator<1,DoFCellAccessor<DH<1> > >       line_iterator;
+      typedef TriaActiveIterator<1,DoFCellAccessor<DH<1> > > active_line_iterator;
       
       typedef void * raw_quad_iterator;
       typedef void * quad_iterator;
@@ -96,13 +92,13 @@ namespace internal
   template <template <int> class DH>
   struct DoFIteratorSelector<DH<2> >
   {
-      typedef TriaRawIterator<2,DoFObjectAccessor<1, 2, DH> >    raw_line_iterator;
-      typedef TriaIterator<2,DoFObjectAccessor<1, 2, DH> >       line_iterator;
-      typedef TriaActiveIterator<2,DoFObjectAccessor<1, 2, DH> > active_line_iterator;
+      typedef TriaRawIterator<2,DoFObjectAccessor<1, DH<2> > >    raw_line_iterator;
+      typedef TriaIterator<2,DoFObjectAccessor<1, DH<2> > >       line_iterator;
+      typedef TriaActiveIterator<2,DoFObjectAccessor<1, DH<2> > > active_line_iterator;
       
-      typedef TriaRawIterator<2,DoFCellAccessor<2, DH> >         raw_quad_iterator;
-      typedef TriaIterator<2,DoFCellAccessor<2, DH> >            quad_iterator;
-      typedef TriaActiveIterator<2,DoFCellAccessor<2, DH> >      active_quad_iterator;
+      typedef TriaRawIterator<2,DoFCellAccessor<DH<2> > >         raw_quad_iterator;
+      typedef TriaIterator<2,DoFCellAccessor<DH<2> > >            quad_iterator;
+      typedef TriaActiveIterator<2,DoFCellAccessor<DH<2> > >      active_quad_iterator;
       
       typedef void * raw_hex_iterator;
       typedef void * hex_iterator;
@@ -132,17 +128,17 @@ namespace internal
   template <template <int> class DH>
   struct DoFIteratorSelector<DH<3> >
   {
-      typedef TriaRawIterator<3,DoFObjectAccessor<1, 3, DH> >    raw_line_iterator;
-      typedef TriaIterator<3,DoFObjectAccessor<1, 3, DH> >       line_iterator;
-      typedef TriaActiveIterator<3,DoFObjectAccessor<1, 3, DH> > active_line_iterator;
+      typedef TriaRawIterator<3,DoFObjectAccessor<1, DH<3> > >    raw_line_iterator;
+      typedef TriaIterator<3,DoFObjectAccessor<1, DH<3> > >       line_iterator;
+      typedef TriaActiveIterator<3,DoFObjectAccessor<1, DH<3> > > active_line_iterator;
       
-      typedef TriaRawIterator<3,DoFObjectAccessor<2, 3, DH> >    raw_quad_iterator;
-      typedef TriaIterator<3,DoFObjectAccessor<2, 3, DH> >       quad_iterator;
-      typedef TriaActiveIterator<3,DoFObjectAccessor<2, 3, DH> > active_quad_iterator;
+      typedef TriaRawIterator<3,DoFObjectAccessor<2, DH<3> > >    raw_quad_iterator;
+      typedef TriaIterator<3,DoFObjectAccessor<2, DH<3> > >       quad_iterator;
+      typedef TriaActiveIterator<3,DoFObjectAccessor<2, DH<3> > > active_quad_iterator;
       
-      typedef TriaRawIterator<3,DoFCellAccessor<3, DH> >         raw_hex_iterator;
-      typedef TriaIterator<3,DoFCellAccessor<3, DH> >            hex_iterator;
-      typedef TriaActiveIterator<3,DoFCellAccessor<3, DH> >      active_hex_iterator;
+      typedef TriaRawIterator<3,DoFCellAccessor<DH<3> > >         raw_hex_iterator;
+      typedef TriaIterator<3,DoFCellAccessor<DH<3> > >            hex_iterator;
+      typedef TriaActiveIterator<3,DoFCellAccessor<DH<3> > >      active_hex_iterator;
       
       typedef raw_hex_iterator    raw_cell_iterator;
       typedef hex_iterator        cell_iterator;
index d93f157be906041c06e05d4afdc5fc450f8b4b63..13008092870cc24078e0c782b9e9c19c894e7044 100644 (file)
@@ -1005,12 +1005,12 @@ namespace hp
                                        /**
                                         * Make accessor objects friends.
                                         */
-      template <int dim1, template <int> class DH> friend class ::DoFAccessor;
+      template <class DH> friend class ::DoFAccessor;
 
                                        /**
                                         * Make accessor objects friends.
                                         */
-      template <int dim1, int dim2, template <int> class DH> friend class ::DoFObjectAccessor;
+      template <int dim1, class DH> friend class ::DoFObjectAccessor;
   };
 
 
index 8911e4a2154853b3e461a376132325793a20579b..434ce7982068e7ae539c8bc83067b8b22299ea4d 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
@@ -80,7 +80,7 @@ class MGDoFAccessor {
                                      * Reset the DoF handler pointer.
                                      */
     void set_mg_dof_handler (MGDoFHandler<dim> *dh) {
-       typedef DoFAccessor<dim, DoFHandler> BaseClass;
+       typedef DoFAccessor<DoFHandler<dim> > BaseClass;
       Assert (dh != 0, typename BaseClass::ExcInvalidObject());
       mg_dof_handler = dh;
     };
@@ -131,7 +131,7 @@ class MGDoFObjectAccessor_Inheritance
                                      * See the full documentation for
                                      * more information.
                                      */
-    typedef DoFObjectAccessor<celldim,dim,DoFHandler> BaseClass;
+    typedef DoFObjectAccessor<celldim,DoFHandler<dim> > BaseClass;
 };
 
 
@@ -157,7 +157,7 @@ class MGDoFObjectAccessor_Inheritance<dim,dim>
                                      * See the full documentation for
                                      * more information.
                                      */
-    typedef DoFCellAccessor<dim, DoFHandler> BaseClass;
+    typedef DoFCellAccessor<DoFHandler<dim> > BaseClass;
 };
 
 
index 7a4b419e45af6ebe8fcb46bc33cdfb476fbfe498..a3f502d19b85b9219313f65c643a6fccec98f5cb 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
 /*------------------------- Functions: DoFObjectAccessor<1,dim> -----------------------*/
 
 
-template <int dim, template <int> class DH>
-void DoFObjectAccessor<1, dim, DH>::set_dof_index (const unsigned int i,
+template <class DH>
+void DoFObjectAccessor<1, DH>::set_dof_index (const unsigned int i,
                                                   const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -55,8 +55,8 @@ void DoFObjectAccessor<1, dim, DH>::set_dof_index (const unsigned int i,
 
 
 
-template <int dim, template <int> class DH>
-void DoFObjectAccessor<1, dim, DH>::set_vertex_dof_index (const unsigned int vertex,
+template <class DH>
+void DoFObjectAccessor<1, DH>::set_vertex_dof_index (const unsigned int vertex,
                                                          const unsigned int i,
                                                          const unsigned int index) const
 
@@ -70,7 +70,7 @@ void DoFObjectAccessor<1, dim, DH>::set_vertex_dof_index (const unsigned int ver
                                   // non-template dependent name and
                                   // use that to specify the
                                   // qualified exception names
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -88,13 +88,13 @@ void DoFObjectAccessor<1, dim, DH>::set_vertex_dof_index (const unsigned int ver
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <class InputVector, typename number>
 void
-DoFObjectAccessor<1,dim,DH>::get_dof_values (const InputVector &values,
+DoFObjectAccessor<1,DH>::get_dof_values (const InputVector &values,
                                             Vector<number>    &local_values) const
 {
-  typedef DoFAccessor<1, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (dim==1, ExcInternalError());
   
@@ -123,13 +123,13 @@ DoFObjectAccessor<1,dim,DH>::get_dof_values (const InputVector &values,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <class OutputVector, typename number>
 void
-DoFObjectAccessor<1,dim,DH>::set_dof_values (const Vector<number> &local_values,
+DoFObjectAccessor<1,DH>::set_dof_values (const Vector<number> &local_values,
                                             OutputVector         &values) const
 {
-  typedef DoFAccessor<1, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (dim==1, ExcInternalError());
   
@@ -160,11 +160,11 @@ DoFObjectAccessor<1,dim,DH>::set_dof_values (const Vector<number> &local_values,
 /*------------------------- Functions: DoFObjectAccessor<2,dim> -----------------------*/
 
 
-template <int dim, template <int> class DH>
-void DoFObjectAccessor<2, dim, DH>::set_dof_index (const unsigned int i,
+template <class DH>
+void DoFObjectAccessor<2, DH>::set_dof_index (const unsigned int i,
                                                   const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -181,13 +181,13 @@ void DoFObjectAccessor<2, dim, DH>::set_dof_index (const unsigned int i,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 void
-DoFObjectAccessor<2, dim, DH>::set_vertex_dof_index (const unsigned int vertex,
+DoFObjectAccessor<2, DH>::set_vertex_dof_index (const unsigned int vertex,
                                                     const unsigned int i,
                                                     const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -205,13 +205,13 @@ DoFObjectAccessor<2, dim, DH>::set_vertex_dof_index (const unsigned int vertex,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <class InputVector, typename number>
 void
-DoFObjectAccessor<2,dim,DH>::get_dof_values (const InputVector &values,
+DoFObjectAccessor<2,DH>::get_dof_values (const InputVector &values,
                                             Vector<number>    &local_values) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (dim==2, ExcInternalError());
   
@@ -245,13 +245,13 @@ DoFObjectAccessor<2,dim,DH>::get_dof_values (const InputVector &values,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <class OutputVector, typename number>
 void
-DoFObjectAccessor<2,dim,DH>::set_dof_values (const Vector<number> &local_values,
+DoFObjectAccessor<2,DH>::set_dof_values (const Vector<number> &local_values,
                                             OutputVector         &values) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (dim==2, ExcInternalError());
   
@@ -287,11 +287,11 @@ DoFObjectAccessor<2,dim,DH>::set_dof_values (const Vector<number> &local_values,
 /*------------------------- Functions: DoFObjectAccessor<3,dim> -----------------------*/
 
 
-template <int dim, template <int> class DH>
-void DoFObjectAccessor<3, dim, DH>::set_dof_index (const unsigned int i,
+template <class DH>
+void DoFObjectAccessor<3, DH>::set_dof_index (const unsigned int i,
                                                   const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -308,12 +308,12 @@ void DoFObjectAccessor<3, dim, DH>::set_dof_index (const unsigned int i,
 
 
 
-template <int dim, template <int> class DH>
-void DoFObjectAccessor<3, dim, DH>::set_vertex_dof_index (const unsigned int vertex,
+template <class DH>
+void DoFObjectAccessor<3, DH>::set_vertex_dof_index (const unsigned int vertex,
                                                          const unsigned int i,
                                                          const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -332,13 +332,13 @@ void DoFObjectAccessor<3, dim, DH>::set_vertex_dof_index (const unsigned int ver
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <class InputVector, typename number>
 void
-DoFObjectAccessor<3,dim,DH>::get_dof_values (const InputVector &values,
+DoFObjectAccessor<3,DH>::get_dof_values (const InputVector &values,
                                             Vector<number>    &local_values) const
 {
-  typedef DoFAccessor<3, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (dim==3, ExcInternalError());
 
@@ -376,13 +376,13 @@ DoFObjectAccessor<3,dim,DH>::get_dof_values (const InputVector &values,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <class OutputVector, typename number>
 void
-DoFObjectAccessor<3,dim,DH>::set_dof_values (const Vector<number> &local_values,
+DoFObjectAccessor<3,DH>::set_dof_values (const Vector<number> &local_values,
                                             OutputVector         &values) const
 {
-  typedef DoFAccessor<3, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
 
   Assert (dim==3, ExcInternalError());
 
@@ -425,11 +425,11 @@ DoFObjectAccessor<3,dim,DH>::set_dof_values (const Vector<number> &local_values,
 #if deal_II_dimension == 1
 
 template <>
-TriaIterator<1, DoFObjectAccessor<0,1,DoFHandler> >
-DoFCellAccessor<1,DoFHandler>::face (const unsigned int) const
+TriaIterator<1, DoFObjectAccessor<0,DoFHandler<1> > >
+DoFCellAccessor<DoFHandler<1> >::face (const unsigned int) const
 {
   Assert (false, ExcImpossibleInDim(1));
-  return TriaIterator<1, DoFObjectAccessor<0,1, DoFHandler> >();
+  return TriaIterator<1, DoFObjectAccessor<0,DoFHandler<1> > >();
 }
 
 #endif
@@ -438,8 +438,8 @@ DoFCellAccessor<1,DoFHandler>::face (const unsigned int) const
 #if deal_II_dimension == 2
 
 template <>
-TriaIterator<2, DoFObjectAccessor<1,2,DoFHandler> >
-DoFCellAccessor<2,DoFHandler>::face (const unsigned int i) const
+TriaIterator<2, DoFObjectAccessor<1,DoFHandler<2> > >
+DoFCellAccessor<DoFHandler<2> >::face (const unsigned int i) const
 {
   return this->line(i);
 }
@@ -450,8 +450,8 @@ DoFCellAccessor<2,DoFHandler>::face (const unsigned int i) const
 #if deal_II_dimension == 3
 
 template <>
-TriaIterator<3, DoFObjectAccessor<2, 3, DoFHandler> >
-DoFCellAccessor<3,DoFHandler>::face (const unsigned int i) const
+TriaIterator<3, DoFObjectAccessor<2,DoFHandler<3> > >
+DoFCellAccessor<DoFHandler<3> >::face (const unsigned int i) const
 {
   return this->quad(i);
 }
@@ -459,33 +459,32 @@ DoFCellAccessor<3,DoFHandler>::face (const unsigned int i) const
 #endif
 
 
-template <int dim, template <int> class DH>
-TriaIterator<dim,DoFCellAccessor<dim,DH> >
-DoFCellAccessor<dim,DH>::
-neighbor_child_on_subface (const unsigned int face,
-                           const unsigned int subface) const
+template <class DH>
+TriaIterator<DH::dimension,DoFCellAccessor<DH> >
+DoFCellAccessor<DH>::neighbor_child_on_subface (const unsigned int face,
+                                               const unsigned int subface) const
 {
   const TriaIterator<dim,CellAccessor<dim> > q
     = CellAccessor<dim>::neighbor_child_on_subface (face, subface);
-  return TriaIterator<dim,DoFCellAccessor<dim,DH> > (this->tria,
-                                                     q->level (),
-                                                     q->index (),
-                                                     this->dof_handler);
+  return TriaIterator<dim,DoFCellAccessor<DH> > (this->tria,
+                                                q->level (),
+                                                q->index (),
+                                                this->dof_handler);
 }
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <class InputVector, typename number>
 void
-DoFCellAccessor<dim,DH>::
+DoFCellAccessor<DH>::
 get_interpolated_dof_values (const InputVector &values,
                             Vector<number>    &interpolated_values) const
 {
   const FiniteElement<dim> &fe            = this->get_fe();
   const unsigned int        dofs_per_cell = fe.dofs_per_cell;
   
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -595,15 +594,15 @@ get_interpolated_dof_values (const InputVector &values,
 
 
 
-template <int dim, template <int> class DH>
+template <class DH>
 template <class OutputVector, typename number>
 void
-DoFCellAccessor<dim,DH>::
+DoFCellAccessor<DH>::
 set_dof_values_by_interpolation (const Vector<number> &local_values,
                                 OutputVector         &values) const
 {
   const unsigned int dofs_per_cell = this->get_fe().dofs_per_cell;
-  typedef DoFAccessor<dim, DH> BaseClass;
+  typedef DoFAccessor<DH> BaseClass;
   
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -643,212 +642,212 @@ set_dof_values_by_interpolation (const Vector<number> &local_values,
 
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<Vector<double>,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<Vector<double>,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<Vector<double>,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<Vector<float>,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<Vector<float>,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<Vector<double>,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<Vector<float>,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<Vector<float>,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
 // for block vector
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,double>
 (const BlockVector<double> &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,float>
 (const BlockVector<double> &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,double>
 (const BlockVector<float> &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<float>,float>
 (const Vector<float>&, BlockVector<float>&) const;
 
 // for Petsc vectors
 #ifdef DEAL_II_USE_PETSC
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,double>
 (const Vector<double> &, PETScWrappers::Vector&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::BlockVector,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::BlockVector,double>
 (const PETScWrappers::BlockVector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::BlockVector,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::BlockVector,float>
 (const PETScWrappers::BlockVector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::BlockVector,double>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::BlockVector,double>
 (const Vector<double> &, PETScWrappers::BlockVector&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::BlockVector,float>
+DoFObjectAccessor<1,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::BlockVector,float>
 (const Vector<float>&, PETScWrappers::BlockVector&) const;
 #endif
 
 #if deal_II_dimension >= 2
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<Vector<double>,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<Vector<double>,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<Vector<double>,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<Vector<float>,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<Vector<float>,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<Vector<double>,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<Vector<float>,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<Vector<float>,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
 // for block vector
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,double>
 (const BlockVector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,float>
 (const BlockVector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,double>
 (const BlockVector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<float>,float>
 (const Vector<float>&, BlockVector<float>&) const;
 
 // for Petsc vectors
 #ifdef DEAL_II_USE_PETSC
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,double>
 (const Vector<double> &, PETScWrappers::Vector&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::BlockVector,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::BlockVector,double>
 (const PETScWrappers::BlockVector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::BlockVector,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::BlockVector,float>
 (const PETScWrappers::BlockVector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::BlockVector,double>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::BlockVector,double>
 (const Vector<double> &, PETScWrappers::BlockVector&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::BlockVector,float>
+DoFObjectAccessor<2,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::BlockVector,float>
 (const Vector<float>&, PETScWrappers::BlockVector&) const;
 #endif
 #endif
@@ -856,35 +855,35 @@ DoFObjectAccessor<2,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers:
 #if deal_II_dimension >= 3
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<Vector<double>,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<Vector<double>,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<Vector<double>,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<Vector<float>,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<Vector<float>,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<Vector<double>,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<Vector<float>,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<Vector<float>,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
@@ -892,71 +891,71 @@ DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<Vector<float>,
 // for block vector
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,double>
 (const BlockVector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,float>
 (const BlockVector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,double>
 (const BlockVector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<float>,float>
 (const Vector<float>&, BlockVector<float>&) const;
 
 // for Petsc vectors
 #if DEAL_II_USE_PETSC
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,double>
 (const Vector<double> &, PETScWrappers::Vector&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::BlockVector,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::BlockVector,double>
 (const PETScWrappers::BlockVector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::get_dof_values<PETScWrappers::BlockVector,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::BlockVector,float>
 (const PETScWrappers::BlockVector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::BlockVector,double>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::BlockVector,double>
 (const Vector<double> &, PETScWrappers::BlockVector&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers::BlockVector,float>
+DoFObjectAccessor<3,DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::BlockVector,float>
 (const Vector<float>&, PETScWrappers::BlockVector&) const;
 #endif
 #endif
@@ -965,92 +964,92 @@ DoFObjectAccessor<3,deal_II_dimension,DoFHandler>::set_dof_values<PETScWrappers:
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<BlockVector<double>,double>
 (const BlockVector<double>&, Vector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<BlockVector<double>,float>
 (const BlockVector<double>&, Vector<float>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<BlockVector<float>,double>
 (const BlockVector<float>&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<BlockVector<float>,float>
 (const Vector<float>&, BlockVector<float>&) const;
 
@@ -1058,86 +1057,86 @@ set_dof_values_by_interpolation<BlockVector<float>,float>
 #if DEAL_II_USE_PETSC
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<PETScWrappers::Vector,double>
 (const Vector<double>&, PETScWrappers::Vector&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<PETScWrappers::BlockVector,double>
 (const PETScWrappers::BlockVector&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<PETScWrappers::BlockVector,double>
 (const Vector<double>&, PETScWrappers::BlockVector&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<PETScWrappers::BlockVector,float>
 (const PETScWrappers::BlockVector&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,DoFHandler>::
+DoFCellAccessor<DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<PETScWrappers::BlockVector,float>
 (const Vector<float>&, PETScWrappers::BlockVector&) const;
 
 #endif
 
 
-template class DoFAccessor<deal_II_dimension, DoFHandler>;
+template class DoFAccessor<DoFHandler<deal_II_dimension> >;
 
 #if deal_II_dimension == 1
-template class DoFObjectAccessor<1, 1, DoFHandler>;
+template class DoFObjectAccessor<1, DoFHandler<1> >;
 #endif
 
 #if deal_II_dimension == 2
-template class DoFObjectAccessor<1, 2, DoFHandler>;
-template class DoFObjectAccessor<2, 2, DoFHandler>;
+template class DoFObjectAccessor<1, DoFHandler<2> >;
+template class DoFObjectAccessor<2, DoFHandler<2> >;
 
-template class TriaRawIterator   <2,DoFObjectAccessor<1, 2, DoFHandler> >;
-template class TriaIterator      <2,DoFObjectAccessor<1, 2, DoFHandler> >;
-template class TriaActiveIterator<2,DoFObjectAccessor<1, 2, DoFHandler> >;
+template class TriaRawIterator   <2,DoFObjectAccessor<1, DoFHandler<2> > >;
+template class TriaIterator      <2,DoFObjectAccessor<1, DoFHandler<2> > >;
+template class TriaActiveIterator<2,DoFObjectAccessor<1, DoFHandler<2> > >;
 #endif
 
 #if deal_II_dimension == 3
-template class DoFObjectAccessor<1, 3, DoFHandler>;
-template class DoFObjectAccessor<2, 3, DoFHandler>;
-template class DoFObjectAccessor<3, 3, DoFHandler>;
-
-template class TriaRawIterator   <3,DoFObjectAccessor<1, 3, DoFHandler> >;
-template class TriaIterator      <3,DoFObjectAccessor<1, 3, DoFHandler> >;
-template class TriaActiveIterator<3,DoFObjectAccessor<1, 3, DoFHandler> >;
-template class TriaRawIterator   <3,DoFObjectAccessor<2, 3, DoFHandler> >;
-template class TriaIterator      <3,DoFObjectAccessor<2, 3, DoFHandler> >;
-template class TriaActiveIterator<3,DoFObjectAccessor<2, 3, DoFHandler> >;
+template class DoFObjectAccessor<1, DoFHandler<3> >;
+template class DoFObjectAccessor<2, DoFHandler<3> >;
+template class DoFObjectAccessor<3, DoFHandler<3> >;
+
+template class TriaRawIterator   <3,DoFObjectAccessor<1, DoFHandler<3> > >;
+template class TriaIterator      <3,DoFObjectAccessor<1, DoFHandler<3> > >;
+template class TriaActiveIterator<3,DoFObjectAccessor<1, DoFHandler<3> > >;
+template class TriaRawIterator   <3,DoFObjectAccessor<2, DoFHandler<3> > >;
+template class TriaIterator      <3,DoFObjectAccessor<2, DoFHandler<3> > >;
+template class TriaActiveIterator<3,DoFObjectAccessor<2, DoFHandler<3> > >;
 #endif
 
 
-template class DoFCellAccessor<deal_II_dimension, DoFHandler>;
+template class DoFCellAccessor<DoFHandler<deal_II_dimension> >;
 
-template class TriaRawIterator   <deal_II_dimension,DoFCellAccessor<deal_II_dimension, DoFHandler> >;
-template class TriaIterator      <deal_II_dimension,DoFCellAccessor<deal_II_dimension, DoFHandler> >;
-template class TriaActiveIterator<deal_II_dimension,DoFCellAccessor<deal_II_dimension, DoFHandler> >;
+template class TriaRawIterator   <deal_II_dimension,DoFCellAccessor<DoFHandler<deal_II_dimension> > >;
+template class TriaIterator      <deal_II_dimension,DoFCellAccessor<DoFHandler<deal_II_dimension> > >;
+template class TriaActiveIterator<deal_II_dimension,DoFCellAccessor<DoFHandler<deal_II_dimension> > >;
 
 
 // --------------------------------------------------------------------------
@@ -1146,89 +1145,89 @@ template class TriaActiveIterator<deal_II_dimension,DoFCellAccessor<deal_II_dime
 
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,double>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,double>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,float>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,double>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,double>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,float>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,float>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,float>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
 // for block vector
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,double>
 (const BlockVector<double> &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,float>
 (const BlockVector<double> &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,double>
 (const BlockVector<float> &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::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,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,double>
 (const Vector<double> &, PETScWrappers::Vector&) const;
 template
 void
-DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<1,hp::DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 #endif
 
@@ -1236,89 +1235,89 @@ DoFObjectAccessor<1,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrapp
 #if deal_II_dimension >= 2
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,double>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,double>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,float>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,double>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,double>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,float>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,float>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,float>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
 // for block vector
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,double>
 (const BlockVector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,float>
 (const BlockVector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,double>
 (const BlockVector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::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,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,double>
 (const Vector<double> &, PETScWrappers::Vector&) const;
 template
 void
-DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<2,hp::DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 #endif
 
@@ -1328,35 +1327,35 @@ DoFObjectAccessor<2,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrapp
 // for double
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<double>,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<double>,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<Vector<float>,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<float>,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
@@ -1364,35 +1363,35 @@ DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<Vector<flo
 // for block vector
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,double>
 (const BlockVector<double>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<double>,float>
 (const BlockVector<double>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,double>
 (const BlockVector<float>&, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<double>,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVector<float>,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<BlockVector<float>,float>
 (const Vector<float>&, BlockVector<float>&) const;
 
 
@@ -1400,36 +1399,36 @@ DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<BlockVecto
 #ifdef DEAL_II_USE_PETSC
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,double>
 (const Vector<double> &, PETScWrappers::Vector&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::Vector,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::BlockVector,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::BlockVector,double>
 (const PETScWrappers::BlockVector &, Vector<double>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::get_dof_values<PETScWrappers::BlockVector,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::get_dof_values<PETScWrappers::BlockVector,float>
 (const PETScWrappers::BlockVector &, Vector<float>&) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::BlockVector,double>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::BlockVector,double>
 (const Vector<double>&, PETScWrappers::BlockVector &) const;
 template
 void
-DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrappers::BlockVector,float>
+DoFObjectAccessor<3,hp::DoFHandler<deal_II_dimension> >::set_dof_values<PETScWrappers::BlockVector,float>
 (const Vector<float>&, PETScWrappers::BlockVector&) const;
 #endif
 #endif
@@ -1438,92 +1437,92 @@ DoFObjectAccessor<3,deal_II_dimension,hp::DoFHandler>::set_dof_values<PETScWrapp
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<Vector<double>,double>
 (const Vector<double>&, Vector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<Vector<double>,float>
 (const Vector<double>&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<Vector<float>,double>
 (const Vector<double>&, Vector<float>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<Vector<float>,double>
 (const Vector<float>&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<Vector<double>,float>
 (const Vector<float>&, Vector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<Vector<float>,float>
 (const Vector<float>&, Vector<float>&) const;
 
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<BlockVector<double>,double>
 (const BlockVector<double>&, Vector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<BlockVector<double>,double>
 (const Vector<double>&, BlockVector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<BlockVector<double>,float>
 (const BlockVector<double>&, Vector<float>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<BlockVector<float>,double>
 (const Vector<double>&, BlockVector<float>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<BlockVector<float>,double>
 (const BlockVector<float>&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<BlockVector<double>,float>
 (const Vector<float>&, BlockVector<double>&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<BlockVector<float>,float>
 (const BlockVector<float>&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<BlockVector<float>,float>
 (const Vector<float>&, BlockVector<float>&) const;
 
@@ -1531,84 +1530,84 @@ set_dof_values_by_interpolation<BlockVector<float>,float>
 #ifdef DEAL_II_USE_PETSC
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<PETScWrappers::Vector,double>
 (const PETScWrappers::Vector&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<PETScWrappers::Vector,double>
 (const Vector<double>&, PETScWrappers::Vector&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<PETScWrappers::Vector,float>
 (const PETScWrappers::Vector&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<PETScWrappers::Vector,float>
 (const Vector<float>&, PETScWrappers::Vector&) const;
 
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<PETScWrappers::BlockVector,double>
 (const PETScWrappers::BlockVector&, Vector<double>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<PETScWrappers::BlockVector,double>
 (const Vector<double>&, PETScWrappers::BlockVector&) const;
 
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 get_interpolated_dof_values<PETScWrappers::BlockVector,float>
 (const PETScWrappers::BlockVector&, Vector<float>&) const;
 template
 void
-DoFCellAccessor<deal_II_dimension,hp::DoFHandler>::
+DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >::
 set_dof_values_by_interpolation<PETScWrappers::BlockVector,float>
 (const Vector<float>&, PETScWrappers::BlockVector&) const;
 #endif
 
 
-template class DoFAccessor<deal_II_dimension, hp::DoFHandler>;
+template class DoFAccessor<hp::DoFHandler<deal_II_dimension> >;
 
 #if deal_II_dimension == 1
-template class DoFObjectAccessor<1, 1, hp::DoFHandler>;
+template class DoFObjectAccessor<1, hp::DoFHandler<1> >;
 #endif
 
 #if deal_II_dimension == 2
-template class DoFObjectAccessor<1, 2, hp::DoFHandler>;
-template class DoFObjectAccessor<2, 2, hp::DoFHandler>;
+template class DoFObjectAccessor<1, hp::DoFHandler<2> >;
+template class DoFObjectAccessor<2, hp::DoFHandler<2> >;
 
-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> >;
+template class TriaRawIterator   <2,DoFObjectAccessor<1, hp::DoFHandler<2> > >;
+template class TriaIterator      <2,DoFObjectAccessor<1, hp::DoFHandler<2> > >;
+template class TriaActiveIterator<2,DoFObjectAccessor<1, hp::DoFHandler<2> > >;
 #endif
 
 
 #if deal_II_dimension == 3
-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> >;
+template class DoFObjectAccessor<1, hp::DoFHandler<3> >;
+template class DoFObjectAccessor<2, hp::DoFHandler<3> >;
+template class DoFObjectAccessor<3, hp::DoFHandler<3> >;
+
+template class TriaRawIterator   <3,DoFObjectAccessor<1, hp::DoFHandler<3> > >;
+template class TriaIterator      <3,DoFObjectAccessor<1, hp::DoFHandler<3> > >;
+template class TriaActiveIterator<3,DoFObjectAccessor<1, hp::DoFHandler<3> > >;
+template class TriaRawIterator   <3,DoFObjectAccessor<2, hp::DoFHandler<3> > >;
+template class TriaIterator      <3,DoFObjectAccessor<2, hp::DoFHandler<3> > >;
+template class TriaActiveIterator<3,DoFObjectAccessor<2, hp::DoFHandler<3> > >;
 #endif
 
 
-template class DoFCellAccessor<deal_II_dimension, hp::DoFHandler>;
+template class DoFCellAccessor<hp::DoFHandler<deal_II_dimension> >;
 
-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> >;
+template class TriaRawIterator   <deal_II_dimension,DoFCellAccessor<hp::DoFHandler<deal_II_dimension> > >;
+template class TriaIterator      <deal_II_dimension,DoFCellAccessor<hp::DoFHandler<deal_II_dimension> > >;
+template class TriaActiveIterator<deal_II_dimension,DoFCellAccessor<hp::DoFHandler<deal_II_dimension> > >;
 
index a5a82c6a7e182544349eaca12c66d2ff63e0afc7..2ce43ab85c6ef5bb9fa91785d06f7eb3c2bb8dfd 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
@@ -40,7 +40,7 @@ MGDoFObjectAccessor<1, dim>::MGDoFObjectAccessor (const Triangulation<dim> *tria
 template <int dim>
 unsigned int MGDoFObjectAccessor<1, dim>::mg_dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -62,7 +62,7 @@ template <int dim>
 void MGDoFObjectAccessor<1, dim>::set_mg_dof_index (const unsigned int i,
                                                    const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -84,7 +84,7 @@ template <int dim>
 unsigned int MGDoFObjectAccessor<1, dim>::mg_vertex_dof_index (const unsigned int vertex,
                                                               const unsigned int i) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -106,7 +106,7 @@ void MGDoFObjectAccessor<1, dim>::set_mg_vertex_dof_index (const unsigned int ve
                                                           const unsigned int i,
                                                           const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -127,7 +127,7 @@ template <int dim>
 void
 MGDoFObjectAccessor<1, dim>::get_mg_dof_indices (std::vector<unsigned int> &dof_indices) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -159,7 +159,7 @@ void
 MGDoFObjectAccessor<1,dim>::get_mg_dof_values (const Vector<number> &values,
                                               Vector<number>       &dof_values) const
 {
-  typedef DoFAccessor<1, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<1> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -207,7 +207,7 @@ template <int dim>
 void
 MGDoFObjectAccessor<1, dim>::copy_from (const MGDoFObjectAccessor<1, dim> &a)
 {
-  DoFObjectAccessor<1, dim, DoFHandler>::copy_from (a);
+  DoFObjectAccessor<1, DoFHandler<dim> >::copy_from (a);
   this->set_mg_dof_handler (a.mg_dof_handler);
 }
 
@@ -227,7 +227,7 @@ MGDoFObjectAccessor<2, dim>::MGDoFObjectAccessor (const Triangulation<dim> *tria
 template <int dim>
 unsigned int MGDoFObjectAccessor<2, dim>::mg_dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -249,7 +249,7 @@ template <int dim>
 void MGDoFObjectAccessor<2, dim>::set_mg_dof_index (const unsigned int i,
                                                    const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -271,7 +271,7 @@ template <int dim>
 unsigned int MGDoFObjectAccessor<2, dim>::mg_vertex_dof_index (const unsigned int vertex,
                                                               const unsigned int i) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -293,7 +293,7 @@ void MGDoFObjectAccessor<2, dim>::set_mg_vertex_dof_index (const unsigned int ve
                                                           const unsigned int i,
                                                           const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -314,8 +314,8 @@ template <int dim>
 void
 MGDoFObjectAccessor<2, dim>::get_mg_dof_indices (std::vector<unsigned int> &dof_indices) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
-  typedef DoFAccessor<2, DoFHandler> BaseClass2D;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
+  typedef DoFAccessor<DoFHandler<2> > BaseClass2D;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -352,7 +352,7 @@ void
 MGDoFObjectAccessor<2,dim>::get_mg_dof_values (const Vector<number> &values,
                                               Vector<number>       &dof_values) const
 {
-  typedef DoFAccessor<2, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<2> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -420,7 +420,7 @@ template <int dim>
 void
 MGDoFObjectAccessor<2, dim>::copy_from (const MGDoFObjectAccessor<2, dim> &a)
 {
-  DoFObjectAccessor<2, dim, DoFHandler>::copy_from (a);
+  DoFObjectAccessor<2, DoFHandler<dim> >::copy_from (a);
   this->set_mg_dof_handler (a.mg_dof_handler);
 }
 
@@ -440,7 +440,7 @@ MGDoFObjectAccessor<3, dim>::MGDoFObjectAccessor (const Triangulation<dim> *tria
 template <int dim>
 unsigned int MGDoFObjectAccessor<3, dim>::mg_dof_index (const unsigned int i) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -462,7 +462,7 @@ template <int dim>
 void MGDoFObjectAccessor<3, dim>::set_mg_dof_index (const unsigned int i,
                                                    const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -484,7 +484,7 @@ template <int dim>
 unsigned int MGDoFObjectAccessor<3, dim>::mg_vertex_dof_index (const unsigned int vertex,
                                                               const unsigned int i) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -506,7 +506,7 @@ void MGDoFObjectAccessor<3, dim>::set_mg_vertex_dof_index (const unsigned int ve
                                                           const unsigned int i,
                                                           const unsigned int index) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -527,8 +527,8 @@ template <int dim>
 void
 MGDoFObjectAccessor<3, dim>::get_mg_dof_indices (std::vector<unsigned int> &dof_indices) const
 {
-  typedef DoFAccessor<dim, DoFHandler> BaseClass;
-  typedef DoFAccessor<3, DoFHandler> BaseClass3D;
+  typedef DoFAccessor<DoFHandler<dim> > BaseClass;
+  typedef DoFAccessor<DoFHandler<3> > BaseClass3D;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -570,7 +570,7 @@ void
 MGDoFObjectAccessor<3,dim>::get_mg_dof_values (const Vector<number> &values,
                                               Vector<number>       &dof_values) const
 {
-  typedef DoFAccessor<3, DoFHandler> BaseClass;
+  typedef DoFAccessor<DoFHandler<3> > BaseClass;
 
   Assert (this->dof_handler != 0,
          typename BaseClass::ExcInvalidObject());
@@ -654,7 +654,7 @@ MGDoFObjectAccessor<3, dim>::child (const unsigned int i) const {
 template <int dim>
 void
 MGDoFObjectAccessor<3, dim>::copy_from (const MGDoFObjectAccessor<3, dim> &a) {
-  DoFObjectAccessor<3, dim, DoFHandler>::copy_from (a);
+  DoFObjectAccessor<3, DoFHandler<dim> >::copy_from (a);
   this->set_mg_dof_handler (a.mg_dof_handler);
 }
 
index f12d288370442d4f5df6a8cb21b0c28fd2cab338..42b119affafc0d11eae8276f992e3e9e682d8d71 100644 (file)
@@ -347,7 +347,7 @@ void MGTransferSelect<number>::build_matrices (
                                       // by restricting from fine level.
       for (; level_cell!=level_end; ++level_cell)
        {
-         DoFObjectAccessor<dim, dim, DoFHandler>& global_cell = *level_cell;
+         DoFObjectAccessor<dim, DoFHandler<dim> >& global_cell = *level_cell;
                                           // get the dof numbers of
                                           // this cell for the global
                                           // and the level-wise

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.