]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Further massive clean-ups of the Accessor hierarchy.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 10 Aug 1999 09:56:22 +0000 (09:56 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 10 Aug 1999 09:56:22 +0000 (09:56 +0000)
git-svn-id: https://svn.dealii.org/trunk@1654 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/mg_dof_accessor.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/dofs/mg_dof_accessor.cc
deal.II/deal.II/source/multigrid/mg_dof_accessor.cc

index 1f33dd101a88f35909b446eb02025489270a1e76..fedba1ae2661890b294be27b162b8d688e9c4fdf 100644 (file)
@@ -109,6 +109,66 @@ class DoFAccessor {
 
 
 
+
+/* -------------------------------------------------------------------------- */
+
+/**
+ * This is a switch class which only declares a #typdef#. It is meant to
+ * determine which class a #DoFObjectAccessor# class is to be derived
+ * from. By default, #DoFObjectAccessor<celldim,dim># derives from
+ * the #typedef# in the general #DoFObjectAccessor_Inheritance<celldim,dim>#
+ * class, which is #TriaObjectAccessor<celldim,dim>#,
+ * but if #celldim==dim#, then the specialization #TriaObjectAccessor<dim,dim>#
+ * is used which declares its local type to be #CellAccessor<dim>#. Therefore,
+ * the inheritance is automatically chosen to be from #CellAccessor# if the
+ * object under consideration has full dimension, i.e. constitutes a cell.
+ *
+ * @author Wolfgang Bangerth, 1999
+ */
+template <int celldim, int dim>
+class DoFObjectAccessor_Inheritance 
+{
+                                    /**
+                                     * Declaaration of the #typedef#.
+                                     * See the full documentation for
+                                     * more information.
+                                     */
+    typedef TriaObjectAccessor<celldim,dim> BaseClass;
+};
+
+
+
+/**
+ * This is a switch class which only declares a #typdef#. It is meant to
+ * determine which class a #DoFObjectAccessor# class is to be derived
+ * from. By default, #DoFObjectAccessor<celldim,dim># derives from
+ * the #typedef# in the general #DoFObjectAccessor_Inheritance<celldim,dim>#
+ * class, which is #TriaObjectAccessor<celldim,dim>#,
+ * but if #celldim==dim#, then the specialization #TriaObjectAccessor<dim,dim>#
+ * is used which declares its local type to be #CellAccessor<dim>#. Therefore,
+ * the inheritance is automatically chosen to be from #CellAccessor# if the
+ * object under consideration has full dimension, i.e. constitutes a cell.
+ *
+ * @author Wolfgang Bangerth, 1999
+ */
+template <int dim>
+class DoFObjectAccessor_Inheritance<dim,dim>
+{
+                                    /**
+                                     * Declaaration of the #typedef#.
+                                     * See the full documentation for
+                                     * more information.
+                                     */
+    typedef CellAccessor<dim> BaseClass;
+};
+
+
+
+
+/* -------------------------------------------------------------------------- */
+
+
+
 /**
  * Common template for line, quad, hex.
  *
@@ -116,26 +176,34 @@ class DoFAccessor {
  * a compiler error.
  * @author Guido Kanschat, 1999
  */
-template<int celldim, int dim, typename BaseClass>
+template<int celldim, int dim>
 class DoFObjectAccessor : public DoFAccessor<dim>,
-                         public BaseClass
+                         public DoFObjectAccessor_Inheritance<celldim,dim>::BaseClass
 {};
 
 
+
 /**
  * Closure class.
  */
-template<int dim, typename BaseClass>
-class DoFObjectAccessor<0, dim, BaseClass> : public DoFAccessor<dim>,
-                                            public BaseClass
+template<int dim>
+class DoFObjectAccessor<0, dim> : public DoFAccessor<dim>,
+                                 public DoFObjectAccessor_Inheritance<0,dim>::BaseClass
 {
   public:
     typedef void AccessorData;
+
+                                    /**
+                                     * Constructor. Should never be called
+                                     * ans thus throws an error.
+                                     */
     DoFObjectAccessor (Triangulation<dim> *,
                       const int,
                       const int,
                       const AccessorData *)
-      {}
+      {
+       Assert (false, ExcInternalError());
+      }
 };
 
 
@@ -160,37 +228,17 @@ class DoFObjectAccessor<0, dim, BaseClass> : public DoFAccessor<dim>,
  * 
  * \subsection{Notes about the class hierarchy structure}
  *
- * The class hierarchy seems to be a bit confused here. The reason for this is
- * that we would really like to derive a #DoFLineAccessor# from a #LineAccessor#.
- * Unfortunately, we would run into problems, if we wanted a #DoFLineAccessor#
- * in one spatial dimension, in which case a line is also a cell. The traditional
- * solution would be to declare a #DoFCellAccessor<1># which is derived from
- * #DoFObjectAccessor<1, 1># and #CellAccessor<1># (the #DoFObjectAccessor<1, dim># cannot
- * itself be derived from #CellAccessor<dim># since a line is not a cell
- * unless in one space dimension), but since a #DoFLineAccessor# and a
- * #CellAccessor# are both derived from #TriaAccessor#, we would have to make
- * the last derivation virtual.
- *
- * Since we want to avoid virtual inheritance since this involves another
- * indirection in every member variable access, we chose another way: we
- * pass a second template parameter to a #DoFLineAccessor# which tells it
- * which class to be derived from: if we are in one spatial dimension, the
- * base class is to be #CellAccessor<1>#, in two or more dimensions it
- * is a #TriaObjectAccessor<1, dim>#, i.e. am accessor to lines without the missing
- * functionality needed for cells (neighbors, etc.).
- *
- * This way we can declare a #DoFCellAccessor# in one dimension by deriving
- * from #DoFObjectAccessor<1, 1,CellAccessor<1> >#, thus getting the cell
- * functionality through the #DoFLineAccessor# instead of through a virtual
- * multiple inheritance of #DoFLineAccessor# and #CellAccessor<1>#.
- *
- * The same concept is used with #DoFQuadAccessor# classes etc.
+ * Inheritance from #DoFObjectAccessor_Inheritance<1,dim>::BaseClass# yields
+ * inheritance from #CellAccessor<1># if #dim==1# and from
+ * #TriaObjectAccessor<1,dim># for all other #dim# values. Thus, an object
+ * of this class shares all features of cells in one dimension, but behaves
+ * like an ordinary line in all other cases.
  *
  * @author Wolfgang Bangerth, 1998
  */
-template <int dim, typename BaseClass>
-class DoFObjectAccessor<1, dim, BaseClass> :  public DoFAccessor<dim>,
-                                             public BaseClass
+template <int dim>
+class DoFObjectAccessor<1, dim> :  public DoFAccessor<dim>,
+                                  public DoFObjectAccessor_Inheritance<1,dim>::BaseClass
 {
   public:
                                     /**
@@ -216,7 +264,7 @@ class DoFObjectAccessor<1, dim, BaseClass> :  public DoFAccessor<dim>,
                     const int           index,
                     const AccessorData *local_data) :
                    DoFAccessor<dim> (local_data),
-                   BaseClass(tria,level,index) {};
+                   DoFObjectAccessor_Inheritance<1,dim>::BaseClass (tria,level,index) {};
     
                                     /**
                                      * Return the index of the #i#th degree
@@ -263,7 +311,7 @@ class DoFObjectAccessor<1, dim, BaseClass> :  public DoFAccessor<dim>,
                                      * class returns a line accessor without
                                      * access to the DoF data.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<1, dim,BaseClass> > child (const unsigned int) const;
+    TriaIterator<dim,DoFObjectAccessor<1,dim> > child (const unsigned int) const;
 
                                     /**
                                      * Distribute a local (cell based) vector
@@ -295,7 +343,7 @@ class DoFObjectAccessor<1, dim, BaseClass> :  public DoFAccessor<dim>,
                                      * Implement the copy operator needed
                                      * for the iterator classes.
                                      */
-    void copy_from (const DoFObjectAccessor<1, dim,BaseClass> &a);
+    void copy_from (const DoFObjectAccessor<1,dim> &a);
 };
 
 
@@ -305,9 +353,9 @@ class DoFObjectAccessor<1, dim, BaseClass> :  public DoFAccessor<dim>,
  *
  * @see DoFLineAccessor
  */
-template <int dim, typename BaseClass>
-class DoFObjectAccessor<2, dim, BaseClass> :  public DoFAccessor<dim>,
-                                             public BaseClass
+template <int dim>
+class DoFObjectAccessor<2, dim> :  public DoFAccessor<dim>,
+                                  public DoFObjectAccessor_Inheritance<2,dim>::BaseClass
 {
   public:
                                     /**
@@ -333,7 +381,7 @@ class DoFObjectAccessor<2, dim, BaseClass> :  public DoFAccessor<dim>,
                     const int           index,
                     const AccessorData *local_data) :
                    DoFAccessor<dim> (local_data),
-                   BaseClass        (tria,level,index) {};
+                   DoFObjectAccessor_Inheritance<2,dim>::BaseClass (tria,level,index) {};
     
                                     /**
                                      * Return the index of the #i#th degree
@@ -378,7 +426,7 @@ class DoFObjectAccessor<2, dim, BaseClass> :  public DoFAccessor<dim>,
                                      *  Return a pointer to the #i#th line
                                      *  bounding this #Quad#.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<1, dim,TriaObjectAccessor<1, dim> > >
+    TriaIterator<dim,DoFObjectAccessor<1, dim> >
     line (const unsigned int i) const;
     
                                     /**
@@ -388,7 +436,8 @@ class DoFObjectAccessor<2, dim, BaseClass> :  public DoFAccessor<dim>,
                                      * class returns a quad accessor without
                                      * access to the DoF data.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<2, dim, BaseClass> > child (const unsigned int) const;
+    TriaIterator<dim,DoFObjectAccessor<2, dim> >
+    child (const unsigned int) const;
 
                                     /**
                                      * Distribute a local (cell based) vector
@@ -420,7 +469,7 @@ class DoFObjectAccessor<2, dim, BaseClass> :  public DoFAccessor<dim>,
                                      * Implement the copy operator needed
                                      * for the iterator classes.
                                      */
-    void copy_from (const DoFObjectAccessor<2, dim,BaseClass> &a);
+    void copy_from (const DoFObjectAccessor<2, dim> &a);
 };
 
 
@@ -428,13 +477,13 @@ class DoFObjectAccessor<2, dim, BaseClass> :  public DoFAccessor<dim>,
 
 
 /**
- * Grant access to the degrees of freedom located on quads.
+ * Grant access to the degrees of freedom located on hexes.
  *
  * @see DoFLineAccessor
  */
-template <int dim, typename BaseClass>
-class DoFObjectAccessor<3, dim, BaseClass> :  public DoFAccessor<dim>,
-                                             public BaseClass
+template <int dim>
+class DoFObjectAccessor<3, dim> :  public DoFAccessor<dim>,
+                                  public DoFObjectAccessor_Inheritance<3,dim>::BaseClass
 {
   public:
                                     /**
@@ -460,7 +509,7 @@ class DoFObjectAccessor<3, dim, BaseClass> :  public DoFAccessor<dim>,
                    const int           index,
                    const AccessorData *local_data) :
                    DoFAccessor<dim> (local_data),
-                   BaseClass        (tria,level,index) {};
+                   DoFObjectAccessor_Inheritance<3,dim>::BaseClass (tria,level,index) {};
     
                                     /**
                                      * Return the index of the #i#th degree
@@ -505,14 +554,14 @@ class DoFObjectAccessor<3, dim, BaseClass> :  public DoFAccessor<dim>,
                                      *  Return a pointer to the #i#th line
                                      *  bounding this #Hex#.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<1, dim,TriaObjectAccessor<1, dim> > >
+    TriaIterator<dim,DoFObjectAccessor<1, dim> >
     line (const unsigned int i) const;
 
                                     /**
                                      *  Return a pointer to the #i#th quad
                                      *  bounding this #Hex#.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<2, dim,TriaObjectAccessor<2, dim> > >
+    TriaIterator<dim,DoFObjectAccessor<2, dim> >
     quad (const unsigned int i) const;
     
                                     /**
@@ -522,7 +571,7 @@ class DoFObjectAccessor<3, dim, BaseClass> :  public DoFAccessor<dim>,
                                      * class returns a hex accessor without
                                      * access to the DoF data.
                                      */
-    TriaIterator<dim,DoFObjectAccessor<3, dim,BaseClass> > child (const unsigned int) const;
+    TriaIterator<dim,DoFObjectAccessor<3, dim> > child (const unsigned int) const;
 
                                     /**
                                      * Distribute a local (cell based) vector
@@ -554,7 +603,7 @@ class DoFObjectAccessor<3, dim, BaseClass> :  public DoFAccessor<dim>,
                                      * Implement the copy operator needed
                                      * for the iterator classes.
                                      */
-    void copy_from (const DoFObjectAccessor<3, dim,BaseClass> &a);
+    void copy_from (const DoFObjectAccessor<3, dim> &a);
 };
 
 
@@ -570,24 +619,22 @@ class DoFObjectAccessor<3, dim, BaseClass> :  public DoFAccessor<dim>,
  * rather than #CellAccessor# objects (the latter function was inherited
  * from the #CellAccessor<dim># class).
  *
+ * Note that since for the class we derive from, i.e. #DoFObjectAccessor<dim,dim>#,
+ * the two template parameters are equal, the base class is actually derived from
+ * #CellAccessor#, which makes the functions of this class available to the
+ * #DoFCellAccessor# class as well.
+ *
  * @author Wolfgang Bangerth, 1998
  */
 template <int dim>
-class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, CellAccessor<dim> > {
+class DoFCellAccessor :  public DoFObjectAccessor<dim, dim> {
   public:
-                                    /**
-                                     * Type of faces.
-                                     */
-    typedef
-    TriaIterator<dim, DoFObjectAccessor<dim-1, dim,TriaObjectAccessor<dim-1, dim> > >
-    face_iterator;
-
                                     /**
                                      * Declare the data type that this accessor
                                      * class expects to get passed from the
                                      * iterator classes.
                                      */
-    typedef typename DoFObjectAccessor<dim, dim, CellAccessor<dim> >::AccessorData AccessorData;
+    typedef typename DoFObjectAccessor<dim, dim>::AccessorData AccessorData;
     
                                     /**
                                      * Constructor
@@ -596,7 +643,7 @@ class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, CellAccessor<dim> >
                     const int           level,
                     const int           index,
                     const AccessorData *local_data) :
-                    DoFObjectAccessor<dim, dim, CellAccessor<dim> > (tria,level,index,local_data) {};
+                    DoFObjectAccessor<dim, dim> (tria,level,index,local_data) {};
 
                                     /**
                                      * Return the #i#th neighbor as a DoF cell
@@ -605,7 +652,8 @@ class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, CellAccessor<dim> >
                                      * class returns a cell accessor without
                                      * access to the DoF data.
                                      */
-    TriaIterator<dim,DoFCellAccessor<dim> > neighbor (const unsigned int) const;
+    TriaIterator<dim,DoFCellAccessor<dim> >
+    neighbor (const unsigned int) const;
 
                                     /**
                                      * Return the #i#th child as a DoF cell
@@ -614,7 +662,8 @@ class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, CellAccessor<dim> >
                                      * class returns a cell accessor without
                                      * access to the DoF data.
                                      */
-    TriaIterator<dim,DoFCellAccessor<dim> > child (const unsigned int) const;
+    TriaIterator<dim,DoFCellAccessor<dim> >
+    child (const unsigned int) const;
 
                                     /**
                                      * Return an iterator to the #i#th face
@@ -623,7 +672,7 @@ class DoFCellAccessor :  public DoFObjectAccessor<dim, dim, CellAccessor<dim> >
                                      * This function is not implemented in 1D,
                                      * and maps to DoFObjectAccessor<2, dim>::line in 2D.
                                      */
-    face_iterator
+    TriaIterator<dim, DoFObjectAccessor<dim-1, dim> >
     face (const unsigned int i) const;
 
                                     /**
index 0a0f44d483cc1eb0b83a2fb33d7b34802943bbc4..c094f6ab57adde5789ba72228fff1a592dc08c13 100644 (file)
@@ -21,9 +21,9 @@
 
 /*------------------------- Functions: DoFLineAccessor -----------------------*/
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-int DoFObjectAccessor<1, dim,BaseClass>::dof_index (const unsigned int i) const {
+int DoFObjectAccessor<1, dim>::dof_index (const unsigned int i) const {
   Assert (dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
@@ -38,9 +38,9 @@ int DoFObjectAccessor<1, dim,BaseClass>::dof_index (const unsigned int i) const
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-int DoFObjectAccessor<1, dim,BaseClass>::vertex_dof_index (const unsigned int vertex,
+int DoFObjectAccessor<1, dim>::vertex_dof_index (const unsigned int vertex,
                                                      const unsigned int i) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
@@ -56,10 +56,10 @@ int DoFObjectAccessor<1, dim,BaseClass>::vertex_dof_index (const unsigned int ve
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
 void
-DoFObjectAccessor<1, dim,BaseClass>::get_dof_indices (vector<int> &dof_indices) const {
+DoFObjectAccessor<1, dim>::get_dof_indices (vector<int> &dof_indices) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
   Assert (dof_indices.size() == (2*dof_handler->get_fe().dofs_per_vertex +
@@ -78,11 +78,11 @@ DoFObjectAccessor<1, dim,BaseClass>::get_dof_indices (vector<int> &dof_indices)
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-TriaIterator<dim,DoFObjectAccessor<1, dim,BaseClass> >
-DoFObjectAccessor<1, dim,BaseClass>::child (const unsigned int i) const {
-  TriaIterator<dim,DoFObjectAccessor<1, dim,BaseClass> > q (tria,
+TriaIterator<dim,DoFObjectAccessor<1, dim> >
+DoFObjectAccessor<1, dim>::child (const unsigned int i) const {
+  TriaIterator<dim,DoFObjectAccessor<1, dim> > q (tria,
                                                       present_level+1,
                                                       child_index (i),
                                                       dof_handler);
@@ -96,11 +96,11 @@ DoFObjectAccessor<1, dim,BaseClass>::child (const unsigned int i) const {
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
 void
-DoFObjectAccessor<1, dim,BaseClass>::copy_from (const DoFObjectAccessor<1, dim,BaseClass> &a) {
-  BaseClass::copy_from (a);
+DoFObjectAccessor<1, dim>::copy_from (const DoFObjectAccessor<1, dim> &a) {
+  DoFObjectAccessor_Inheritance<1,dim>::BaseClass::copy_from (a);
   set_dof_handler (a.dof_handler);
 };
 
@@ -109,9 +109,9 @@ DoFObjectAccessor<1, dim,BaseClass>::copy_from (const DoFObjectAccessor<1, dim,B
 
 /*------------------------- Functions: DoFObjectAccessor<2, dim> -----------------------*/
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-int DoFObjectAccessor<2, dim,BaseClass>::dof_index (const unsigned int i) const {
+int DoFObjectAccessor<2, dim>::dof_index (const unsigned int i) const {
   Assert (dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
@@ -125,9 +125,9 @@ int DoFObjectAccessor<2, dim,BaseClass>::dof_index (const unsigned int i) const
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-int DoFObjectAccessor<2, dim,BaseClass>::vertex_dof_index (const unsigned int vertex,
+int DoFObjectAccessor<2, dim>::vertex_dof_index (const unsigned int vertex,
                                                      const unsigned int i) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
@@ -143,10 +143,10 @@ int DoFObjectAccessor<2, dim,BaseClass>::vertex_dof_index (const unsigned int ve
 
 
   
-template <int dim, typename BaseClass>
+template <int dim>
 inline
 void
-DoFObjectAccessor<2, dim,BaseClass>::get_dof_indices (vector<int> &dof_indices) const {
+DoFObjectAccessor<2, dim>::get_dof_indices (vector<int> &dof_indices) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
   Assert (dof_indices.size() == (4*dof_handler->get_fe().dofs_per_vertex +
@@ -170,13 +170,13 @@ DoFObjectAccessor<2, dim,BaseClass>::get_dof_indices (vector<int> &dof_indices)
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-TriaIterator<dim,DoFObjectAccessor<1, dim,TriaObjectAccessor<1, dim> > >
-DoFObjectAccessor<2, dim,BaseClass>::line (const unsigned int i) const {
+TriaIterator<dim,DoFObjectAccessor<1, dim> >
+DoFObjectAccessor<2, dim>::line (const unsigned int i) const {
   Assert (i<4, ExcIndexRange (i, 0, 4));
 
-  return TriaIterator<dim,DoFObjectAccessor<1, dim,TriaObjectAccessor<1, dim> > >
+  return TriaIterator<dim,DoFObjectAccessor<1, dim> >
     (
       tria,
       present_level,
@@ -187,14 +187,14 @@ DoFObjectAccessor<2, dim,BaseClass>::line (const unsigned int i) const {
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-TriaIterator<dim,DoFObjectAccessor<2, dim,BaseClass> >
-DoFObjectAccessor<2, dim,BaseClass>::child (const unsigned int i) const {
-  TriaIterator<dim,DoFObjectAccessor<2, dim,BaseClass> > q (tria,
-                                                      present_level+1,
-                                                      child_index (i),
-                                                      dof_handler);
+TriaIterator<dim,DoFObjectAccessor<2, dim> >
+DoFObjectAccessor<2, dim>::child (const unsigned int i) const {
+  TriaIterator<dim,DoFObjectAccessor<2, dim> > q (tria,
+                                                 present_level+1,
+                                                 child_index (i),
+                                                 dof_handler);
   
 #ifdef DEBUG
   if (q.state() != past_the_end)
@@ -205,11 +205,11 @@ DoFObjectAccessor<2, dim,BaseClass>::child (const unsigned int i) const {
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
 void
-DoFObjectAccessor<2, dim,BaseClass>::copy_from (const DoFObjectAccessor<2, dim,BaseClass> &a) {
-  BaseClass::copy_from (a);
+DoFObjectAccessor<2, dim>::copy_from (const DoFObjectAccessor<2, dim> &a) {
+  DoFObjectAccessor_Inheritance<2,dim>::BaseClass::copy_from (a);
   set_dof_handler (a.dof_handler);
 };
 
@@ -219,9 +219,9 @@ DoFObjectAccessor<2, dim,BaseClass>::copy_from (const DoFObjectAccessor<2, dim,B
 /*------------------------- Functions: DoFObjectAccessor -----------------------*/
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-int DoFObjectAccessor<3, dim,BaseClass>::dof_index (const unsigned int i) const {
+int DoFObjectAccessor<3, dim>::dof_index (const unsigned int i) const {
   Assert (dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
@@ -235,9 +235,9 @@ int DoFObjectAccessor<3, dim,BaseClass>::dof_index (const unsigned int i) const
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-int DoFObjectAccessor<3, dim,BaseClass>::vertex_dof_index (const unsigned int vertex,
+int DoFObjectAccessor<3, dim>::vertex_dof_index (const unsigned int vertex,
                                                      const unsigned int i) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
@@ -253,10 +253,10 @@ int DoFObjectAccessor<3, dim,BaseClass>::vertex_dof_index (const unsigned int ve
 
 
   
-template <int dim, typename BaseClass>
+template <int dim>
 inline
 void
-DoFObjectAccessor<3, dim,BaseClass>::get_dof_indices (vector<int> &dof_indices) const {
+DoFObjectAccessor<3, dim>::get_dof_indices (vector<int> &dof_indices) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
   Assert (dof_indices.size() == (8*dof_handler->get_fe().dofs_per_vertex +
@@ -285,12 +285,12 @@ DoFObjectAccessor<3, dim,BaseClass>::get_dof_indices (vector<int> &dof_indices)
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-TriaIterator<dim,DoFObjectAccessor<1, dim,TriaObjectAccessor<1, dim> > >
-DoFObjectAccessor<3, dim,BaseClass>::line (const unsigned int i) const {
-  TriaIterator<dim,TriaObjectAccessor<1, dim> > l = BaseClass::line(i);
-  return TriaIterator<dim,DoFObjectAccessor<1, dim,TriaObjectAccessor<1, dim> > >
+TriaIterator<dim,DoFObjectAccessor<1, dim> >
+DoFObjectAccessor<3, dim>::line (const unsigned int i) const {
+  TriaIterator<dim,TriaObjectAccessor<1, dim> > l = DoFObjectAccessor_Inheritance<3,dim>::BaseClass::line(i);
+  return TriaIterator<dim,DoFObjectAccessor<1, dim> >
     (
       tria,
       present_level,
@@ -301,13 +301,13 @@ DoFObjectAccessor<3, dim,BaseClass>::line (const unsigned int i) const {
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-TriaIterator<dim,DoFObjectAccessor<2, dim,TriaObjectAccessor<2, dim> > >
-DoFObjectAccessor<3, dim,BaseClass>::quad (const unsigned int i) const {
+TriaIterator<dim,DoFObjectAccessor<2, dim> >
+DoFObjectAccessor<3, dim>::quad (const unsigned int i) const {
   Assert (i<6, ExcIndexRange (i, 0, 6));
 
-  return TriaIterator<dim,DoFObjectAccessor<2, dim,TriaObjectAccessor<2, dim> > >
+  return TriaIterator<dim,DoFObjectAccessor<2, dim> >
     (
       tria,
       present_level,
@@ -318,14 +318,14 @@ DoFObjectAccessor<3, dim,BaseClass>::quad (const unsigned int i) const {
 
 
 
-template <int dim, typename BaseClass>
+template <int dim>
 inline
-TriaIterator<dim,DoFObjectAccessor<3, dim,BaseClass> >
-DoFObjectAccessor<3, dim,BaseClass>::child (const unsigned int i) const {
-  TriaIterator<dim,DoFObjectAccessor<3, dim,BaseClass> > q (tria,
-                                                     present_level+1,
-                                                     child_index (i),
-                                                     dof_handler);
+TriaIterator<dim,DoFObjectAccessor<3, dim> >
+DoFObjectAccessor<3, dim>::child (const unsigned int i) const {
+  TriaIterator<dim,DoFObjectAccessor<3, dim> > q (tria,
+                                                 present_level+1,
+                                                 child_index (i),
+                                                 dof_handler);
   
 #ifdef DEBUG
   if (q.state() != past_the_end)
@@ -336,9 +336,9 @@ DoFObjectAccessor<3, dim,BaseClass>::child (const unsigned int i) const {
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<3, dim,BaseClass>::copy_from (const DoFObjectAccessor<3, dim,BaseClass> &a) {
-  BaseClass::copy_from (a);
+template <int dim>
+void DoFObjectAccessor<3, dim>::copy_from (const DoFObjectAccessor<3, dim> &a) {
+  DoFObjectAccessor_Inheritance<3,dim>::BaseClass::copy_from (a);
   set_dof_handler (a.dof_handler);
 };
 
index dbb4a45cc5337519f57201c5baa69fa78e08c595..53f69879cd67aff775fbe52caa448243d688c671 100644 (file)
@@ -73,13 +73,13 @@ class DoFDimensionInfo<1> {
  */
 class DoFDimensionInfo<2> {
   public:
-    typedef TriaRawIterator<2,DoFObjectAccessor<1, 2,TriaObjectAccessor<1, 2> > >    raw_line_iterator;
-    typedef TriaIterator<2,DoFObjectAccessor<1, 2,TriaObjectAccessor<1, 2> > >       line_iterator;
-    typedef TriaActiveIterator<2,DoFObjectAccessor<1, 2,TriaObjectAccessor<1, 2> > > active_line_iterator;
+    typedef TriaRawIterator<2,DoFObjectAccessor<1, 2> >    raw_line_iterator;
+    typedef TriaIterator<2,DoFObjectAccessor<1, 2> >       line_iterator;
+    typedef TriaActiveIterator<2,DoFObjectAccessor<1, 2> > active_line_iterator;
     
-    typedef TriaRawIterator<2,DoFCellAccessor<2> >               raw_quad_iterator;
-    typedef TriaIterator<2,DoFCellAccessor<2> >                  quad_iterator;
-    typedef TriaActiveIterator<2,DoFCellAccessor<2> >            active_quad_iterator;
+    typedef TriaRawIterator<2,DoFCellAccessor<2> >         raw_quad_iterator;
+    typedef TriaIterator<2,DoFCellAccessor<2> >            quad_iterator;
+    typedef TriaActiveIterator<2,DoFCellAccessor<2> >      active_quad_iterator;
 
     typedef void * raw_hex_iterator;
     typedef void * hex_iterator;
@@ -103,17 +103,17 @@ class DoFDimensionInfo<2> {
  */
 class DoFDimensionInfo<3> {
   public:
-    typedef TriaRawIterator<3,DoFObjectAccessor<1, 3,TriaObjectAccessor<1, 3> > >    raw_line_iterator;
-    typedef TriaIterator<3,DoFObjectAccessor<1, 3,TriaObjectAccessor<1, 3> > >       line_iterator;
-    typedef TriaActiveIterator<3,DoFObjectAccessor<1, 3,TriaObjectAccessor<1, 3> > > active_line_iterator;
+    typedef TriaRawIterator<3,DoFObjectAccessor<1, 3> >    raw_line_iterator;
+    typedef TriaIterator<3,DoFObjectAccessor<1, 3> >       line_iterator;
+    typedef TriaActiveIterator<3,DoFObjectAccessor<1, 3> > active_line_iterator;
 
-    typedef TriaRawIterator<3,DoFObjectAccessor<2, 3,TriaObjectAccessor<2, 3> > >    raw_quad_iterator;
-    typedef TriaIterator<3,DoFObjectAccessor<2, 3,TriaObjectAccessor<2, 3> > >       quad_iterator;
-    typedef TriaActiveIterator<3,DoFObjectAccessor<2, 3,TriaObjectAccessor<2, 3> > > active_quad_iterator;
+    typedef TriaRawIterator<3,DoFObjectAccessor<2, 3> >    raw_quad_iterator;
+    typedef TriaIterator<3,DoFObjectAccessor<2, 3> >       quad_iterator;
+    typedef TriaActiveIterator<3,DoFObjectAccessor<2, 3> > active_quad_iterator;
 
-    typedef TriaRawIterator<3,DoFCellAccessor<3> >               raw_hex_iterator;
-    typedef TriaIterator<3,DoFCellAccessor<3> >                  hex_iterator;
-    typedef TriaActiveIterator<3,DoFCellAccessor<3> >            active_hex_iterator;
+    typedef TriaRawIterator<3,DoFCellAccessor<3> >         raw_hex_iterator;
+    typedef TriaIterator<3,DoFCellAccessor<3> >            hex_iterator;
+    typedef TriaActiveIterator<3,DoFCellAccessor<3> >      active_hex_iterator;
 
     typedef raw_hex_iterator    raw_cell_iterator;
     typedef hex_iterator        cell_iterator;
@@ -1429,12 +1429,9 @@ class DoFHandler  :  public Subscriptor,
     vector<int>               vertex_dofs;
     
     
-    friend class DoFObjectAccessor<1, dim, TriaObjectAccessor<1, dim> >;
-    friend class DoFObjectAccessor<1, dim, CellAccessor<dim> >;
-    friend class DoFObjectAccessor<2, dim, TriaObjectAccessor<2, dim> >;
-    friend class DoFObjectAccessor<2, dim, CellAccessor<dim> >;
-    friend class DoFObjectAccessor<3, dim, TriaObjectAccessor<3, dim> >;
-    friend class DoFObjectAccessor<3, dim, CellAccessor<dim> >;
+    friend class DoFObjectAccessor<1, dim>;
+    friend class DoFObjectAccessor<2, dim>;
+    friend class DoFObjectAccessor<3, dim>;
 };
 
 
index 8c4233effea8a6712d757079d873603fb6e73a9d..d4b538b92370a57077790f558dbe1f8734b54263 100644 (file)
@@ -86,7 +86,7 @@ class MGDoFAccessor {
 
 template <int celldim, int dim, typename BaseClass>
 class MGDoFObjectAccessor :  public MGDoFAccessor<dim>,
-                            public DoFObjectAccessor<celldim, dim, BaseClass>
+                            public DoFObjectAccessor<celldim, dim>
 {};
 
 
@@ -158,7 +158,7 @@ class MGDoFObjectAccessor<0, dim, BaseClass>
  */
 template <int dim, typename BaseClass>
 class MGDoFObjectAccessor<1, dim, BaseClass> :  public MGDoFAccessor<dim>,
-                                               public DoFObjectAccessor<1, dim, BaseClass>
+                                               public DoFObjectAccessor<1, dim>
 {
   public:
                                     /**
@@ -255,7 +255,8 @@ class MGDoFObjectAccessor<1, dim, BaseClass> :  public MGDoFAccessor<dim>,
  * @see DoFLineAccessor
  */
 template <int dim, typename BaseClass>
-class MGDoFObjectAccessor<2, dim, BaseClass> :  public MGDoFAccessor<dim>, public DoFObjectAccessor<2, dim, BaseClass> {
+class MGDoFObjectAccessor<2, dim, BaseClass> :  public MGDoFAccessor<dim>,
+                                               public DoFObjectAccessor<2, dim> {
   public:
                                     /**
                                      * Declare the data type that this accessor
@@ -358,7 +359,7 @@ class MGDoFObjectAccessor<2, dim, BaseClass> :  public MGDoFAccessor<dim>, publi
  */
 template <int dim, typename BaseClass>
 class MGDoFObjectAccessor<3, dim, BaseClass> :  public MGDoFAccessor<dim>,
-                                               public DoFObjectAccessor<3, dim, BaseClass>
+                                               public DoFObjectAccessor<3, dim>
 {
   public:
                                     /**
index 8c4233effea8a6712d757079d873603fb6e73a9d..d4b538b92370a57077790f558dbe1f8734b54263 100644 (file)
@@ -86,7 +86,7 @@ class MGDoFAccessor {
 
 template <int celldim, int dim, typename BaseClass>
 class MGDoFObjectAccessor :  public MGDoFAccessor<dim>,
-                            public DoFObjectAccessor<celldim, dim, BaseClass>
+                            public DoFObjectAccessor<celldim, dim>
 {};
 
 
@@ -158,7 +158,7 @@ class MGDoFObjectAccessor<0, dim, BaseClass>
  */
 template <int dim, typename BaseClass>
 class MGDoFObjectAccessor<1, dim, BaseClass> :  public MGDoFAccessor<dim>,
-                                               public DoFObjectAccessor<1, dim, BaseClass>
+                                               public DoFObjectAccessor<1, dim>
 {
   public:
                                     /**
@@ -255,7 +255,8 @@ class MGDoFObjectAccessor<1, dim, BaseClass> :  public MGDoFAccessor<dim>,
  * @see DoFLineAccessor
  */
 template <int dim, typename BaseClass>
-class MGDoFObjectAccessor<2, dim, BaseClass> :  public MGDoFAccessor<dim>, public DoFObjectAccessor<2, dim, BaseClass> {
+class MGDoFObjectAccessor<2, dim, BaseClass> :  public MGDoFAccessor<dim>,
+                                               public DoFObjectAccessor<2, dim> {
   public:
                                     /**
                                      * Declare the data type that this accessor
@@ -358,7 +359,7 @@ class MGDoFObjectAccessor<2, dim, BaseClass> :  public MGDoFAccessor<dim>, publi
  */
 template <int dim, typename BaseClass>
 class MGDoFObjectAccessor<3, dim, BaseClass> :  public MGDoFAccessor<dim>,
-                                               public DoFObjectAccessor<3, dim, BaseClass>
+                                               public DoFObjectAccessor<3, dim>
 {
   public:
                                     /**
index 7689fcd553279ebd30700c32713688d6a7b3eca5..bf8a635ce67e665fb1ecc4112cd6e8b486bc5ce1 100644 (file)
@@ -25,9 +25,9 @@
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<1, dim,BaseClass>::set_dof_index (const unsigned int i,
-                                                   const int index) const {
+template <int dim>
+void DoFObjectAccessor<1, dim>::set_dof_index (const unsigned int i,
+                                              const int index) const {
   Assert (dof_handler != 0, DoFAccessor<dim>::ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
@@ -42,10 +42,10 @@ void DoFObjectAccessor<1, dim,BaseClass>::set_dof_index (const unsigned int i,
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<1, dim,BaseClass>::set_vertex_dof_index (const unsigned int vertex,
-                                                          const unsigned int i,
-                                                          const int index) const {
+template <int dim>
+void DoFObjectAccessor<1, dim>::set_vertex_dof_index (const unsigned int vertex,
+                                                     const unsigned int i,
+                                                     const int index) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
   Assert (vertex<2, ExcIndexRange (i,0,2));
@@ -60,8 +60,8 @@ void DoFObjectAccessor<1, dim,BaseClass>::set_vertex_dof_index (const unsigned i
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<1, dim,BaseClass>::
+template <int dim>
+void DoFObjectAccessor<1, dim>::
 distribute_local_to_global (const Vector<double> &local_source,
                            Vector<double>       &global_destination) const {
   Assert (dof_handler != 0, ExcInvalidObject());
@@ -85,8 +85,8 @@ distribute_local_to_global (const Vector<double> &local_source,
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<1, dim,BaseClass>::
+template <int dim>
+void DoFObjectAccessor<1, dim>::
 distribute_local_to_global (const FullMatrix<double> &local_source,
                            SparseMatrix<double>     &global_destination) const {
   Assert (dof_handler != 0, ExcInvalidObject());
@@ -118,9 +118,9 @@ distribute_local_to_global (const FullMatrix<double> &local_source,
 /*------------------------- Functions: DoFQuadAccessor -----------------------*/
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<2, dim,BaseClass>::set_dof_index (const unsigned int i,
-                                                   const int index) const {
+template <int dim>
+void DoFObjectAccessor<2, dim>::set_dof_index (const unsigned int i,
+                                              const int index) const {
   Assert (dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
@@ -134,8 +134,8 @@ void DoFObjectAccessor<2, dim,BaseClass>::set_dof_index (const unsigned int i,
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<2, dim,BaseClass>::set_vertex_dof_index (const unsigned int vertex,
+template <int dim>
+void DoFObjectAccessor<2, dim>::set_vertex_dof_index (const unsigned int vertex,
                                                           const unsigned int i,
                                                           const int index) const {
   Assert (dof_handler != 0, ExcInvalidObject());
@@ -152,8 +152,8 @@ void DoFObjectAccessor<2, dim,BaseClass>::set_vertex_dof_index (const unsigned i
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<2, dim,BaseClass>::
+template <int dim>
+void DoFObjectAccessor<2, dim>::
 distribute_local_to_global (const Vector<double> &local_source,
                            Vector<double>       &global_destination) const {
   Assert (dof_handler != 0, ExcInvalidObject());
@@ -178,8 +178,8 @@ distribute_local_to_global (const Vector<double> &local_source,
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<2, dim,BaseClass>::
+template <int dim>
+void DoFObjectAccessor<2, dim>::
 distribute_local_to_global (const FullMatrix<double> &local_source,
                            SparseMatrix<double>     &global_destination) const {
   Assert (dof_handler != 0, ExcInvalidObject());
@@ -213,8 +213,8 @@ distribute_local_to_global (const FullMatrix<double> &local_source,
 /*------------------------- Functions: DoFObjectAccessor -----------------------*/
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<3, dim,BaseClass>::set_dof_index (const unsigned int i,
+template <int dim>
+void DoFObjectAccessor<3, dim>::set_dof_index (const unsigned int i,
                                                    const int index) const {
   Assert (dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
@@ -229,8 +229,8 @@ void DoFObjectAccessor<3, dim,BaseClass>::set_dof_index (const unsigned int i,
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<3, dim,BaseClass>::set_vertex_dof_index (const unsigned int vertex,
+template <int dim>
+void DoFObjectAccessor<3, dim>::set_vertex_dof_index (const unsigned int vertex,
                                                           const unsigned int i,
                                                           const int index) const {
   Assert (dof_handler != 0, ExcInvalidObject());
@@ -247,8 +247,8 @@ void DoFObjectAccessor<3, dim,BaseClass>::set_vertex_dof_index (const unsigned i
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<3, dim,BaseClass>::
+template <int dim>
+void DoFObjectAccessor<3, dim>::
 distribute_local_to_global (const Vector<double> &local_source,
                            Vector<double>       &global_destination) const {
   Assert (dof_handler != 0, ExcInvalidObject());
@@ -274,8 +274,8 @@ distribute_local_to_global (const Vector<double> &local_source,
 
 
 
-template <int dim, typename BaseClass>
-void DoFObjectAccessor<3, dim,BaseClass>::
+template <int dim>
+void DoFObjectAccessor<3, dim>::
 distribute_local_to_global (const FullMatrix<double> &local_source,
                            SparseMatrix<double>     &global_destination) const {
   Assert (dof_handler != 0, ExcInvalidObject());
@@ -316,11 +316,11 @@ distribute_local_to_global (const FullMatrix<double> &local_source,
 #if deal_II_dimension == 1
 
 template <>
-DoFCellAccessor<1>::face_iterator
+TriaIterator<1, DoFObjectAccessor<0,1> >
 DoFCellAccessor<1>::face (const unsigned int) const
 {
   Assert (false, ExcNotUsefulForThisDimension());
-  return face_iterator();
+  return TriaIterator<1, DoFObjectAccessor<0,1> >();
 };
 
 
@@ -422,7 +422,7 @@ DoFCellAccessor<dim>::set_dof_values (const Vector<number> &local_values,
 #if deal_II_dimension == 2
 
 template <>
-DoFCellAccessor<2>::face_iterator
+TriaIterator<2, DoFObjectAccessor<1,2> >
 DoFCellAccessor<2>::face (const unsigned int i) const
 {
   return line(i);
@@ -449,7 +449,7 @@ template <int dim>
 template <typename number>
 void
 DoFCellAccessor<dim>::get_dof_values (const Vector<number> &values,
-                                   Vector<number>       &local_values) const
+                                     Vector<number>       &local_values) const
 {
   Assert (dim==2, ExcInternalError());
   
@@ -535,7 +535,7 @@ DoFCellAccessor<dim>::set_dof_values (const Vector<number> &local_values,
 #if deal_II_dimension == 3
 
 template <>
-DoFCellAccessor<3>::face_iterator
+TriaIterator<3, DoFObjectAccessor<2, 3> >
 DoFCellAccessor<3>::face (const unsigned int i) const
 {
   return quad(i);
@@ -800,7 +800,7 @@ DoFCellAccessor<deal_II_dimension>::set_dof_values_by_interpolation(const Vector
 
 
 #if deal_II_dimension == 1
-template class DoFObjectAccessor<1, 1,CellAccessor<1> >;
+template class DoFObjectAccessor<1, 1>;
 template class DoFCellAccessor<1>;
 
 template class TriaRawIterator<1,DoFCellAccessor<1> >;
@@ -809,38 +809,33 @@ template class TriaActiveIterator<1,DoFCellAccessor<1> >;
 #endif
 
 #if deal_II_dimension == 2
-template class DoFObjectAccessor<1, 2,TriaObjectAccessor<1, 2> >;
-template class DoFObjectAccessor<2, 2,TriaObjectAccessor<2, 2> >;
-template class DoFObjectAccessor<2, 2,CellAccessor<2> >;
+template class DoFObjectAccessor<1, 2>;
+template class DoFObjectAccessor<2, 2>;
 template class DoFCellAccessor<2>;
 
-template class TriaRawIterator<2,DoFObjectAccessor<1, 2,TriaObjectAccessor<1, 2> > >;
-template class TriaRawIterator<2,DoFObjectAccessor<2, 2,TriaObjectAccessor<2, 2> > >;
-template class TriaRawIterator<2,DoFCellAccessor<2> >;
-template class TriaIterator<2,DoFObjectAccessor<1, 2,TriaObjectAccessor<1, 2> > >;
-template class TriaIterator<2,DoFCellAccessor<2> >;
-template class TriaActiveIterator<2,DoFObjectAccessor<1, 2,TriaObjectAccessor<1, 2> > >;
+template class TriaRawIterator   <2,DoFObjectAccessor<1, 2> >;
+template class TriaIterator      <2,DoFObjectAccessor<1, 2> >;
+template class TriaActiveIterator<2,DoFObjectAccessor<1, 2> >;
+template class TriaRawIterator   <2,DoFCellAccessor<2> >;
+template class TriaIterator      <2,DoFCellAccessor<2> >;
 template class TriaActiveIterator<2,DoFCellAccessor<2> >;
 #endif
 
 
 
 #if deal_II_dimension == 3
-template class DoFObjectAccessor<1, 3,TriaObjectAccessor<1, 3> >;
-template class DoFObjectAccessor<2, 3,TriaObjectAccessor<2, 3> >;
-template class DoFObjectAccessor<3, 3,TriaObjectAccessor<3, 3> >;
-template class DoFObjectAccessor<3, 3,CellAccessor<3> >;
+template class DoFObjectAccessor<1, 3>;
+template class DoFObjectAccessor<2, 3>;
 template class DoFCellAccessor<3>;
 
-template class TriaRawIterator<3,DoFObjectAccessor<1, 3,TriaObjectAccessor<1, 3> > >;
-template class TriaRawIterator<3,DoFObjectAccessor<2, 3,TriaObjectAccessor<2, 3> > >;
-template class TriaRawIterator<3,DoFObjectAccessor<3, 3,TriaObjectAccessor<3, 3> > >;
-template class TriaRawIterator<3,DoFCellAccessor<3> >;
-template class TriaIterator<3,DoFObjectAccessor<1, 3,TriaObjectAccessor<1, 3> > >;
-template class TriaIterator<3,DoFObjectAccessor<2, 3,TriaObjectAccessor<2, 3> > >;
-template class TriaIterator<3,DoFCellAccessor<3> >;
-template class TriaActiveIterator<3,DoFObjectAccessor<1, 3,TriaObjectAccessor<1, 3> > >;
-template class TriaActiveIterator<3,DoFObjectAccessor<2, 3,TriaObjectAccessor<2, 3> > >;
+template class TriaRawIterator   <3,DoFObjectAccessor<1, 3> >;
+template class TriaIterator      <3,DoFObjectAccessor<1, 3> >;
+template class TriaActiveIterator<3,DoFObjectAccessor<1, 3> >;
+template class TriaRawIterator   <3,DoFObjectAccessor<2, 3> >;
+template class TriaIterator      <3,DoFObjectAccessor<2, 3> >;
+template class TriaActiveIterator<3,DoFObjectAccessor<2, 3> >;
+template class TriaRawIterator   <3,DoFCellAccessor<3> >;
+template class TriaIterator      <3,DoFCellAccessor<3> >;
 template class TriaActiveIterator<3,DoFCellAccessor<3> >;
 #endif
 
index 147b6926b202638165a9b12a3c9b8c3b26e38fea..ff405751bc724c0a540c5850a762f56f4b6a1a42 100644 (file)
@@ -27,7 +27,7 @@ MGDoFObjectAccessor<1, dim,BaseClass>::MGDoFObjectAccessor (Triangulation<dim> *
                                                     const int           index,
                                                     const AccessorData *local_data) :
                MGDoFAccessor<dim> (local_data),
-               DoFObjectAccessor<1, dim,BaseClass>(tria,level,index,local_data) {};
+               DoFObjectAccessor<1, dim>(tria,level,index,local_data) {};
 
 
 
@@ -143,7 +143,7 @@ template <int dim, typename BaseClass>
 void
 MGDoFObjectAccessor<1, dim,BaseClass>::copy_from (const MGDoFObjectAccessor<1, dim,BaseClass> &a)
 {
-  DoFObjectAccessor<1, dim,BaseClass>::copy_from (a);
+  DoFObjectAccessor<1, dim>::copy_from (a);
   set_mg_dof_handler (a.mg_dof_handler);
 };
 
@@ -158,7 +158,7 @@ MGDoFObjectAccessor<2, dim,BaseClass>::MGDoFObjectAccessor (Triangulation<dim> *
                                                     const int           index,
                                                     const AccessorData *local_data) :
                MGDoFAccessor<dim> (local_data),
-               DoFObjectAccessor<2, dim,BaseClass>(tria,level,index,local_data)
+               DoFObjectAccessor<2, dim>(tria,level,index,local_data)
 {};
 
 
@@ -294,7 +294,7 @@ MGDoFObjectAccessor<2, dim,BaseClass>::child (const unsigned int i) const {
 template <int dim, typename BaseClass>
 void
 MGDoFObjectAccessor<2, dim,BaseClass>::copy_from (const MGDoFObjectAccessor<2, dim,BaseClass> &a) {
-  DoFObjectAccessor<2, dim,BaseClass>::copy_from (a);
+  DoFObjectAccessor<2, dim>::copy_from (a);
   set_mg_dof_handler (a.mg_dof_handler);
 };
 
@@ -309,7 +309,7 @@ MGDoFObjectAccessor<3, dim,BaseClass>::MGDoFObjectAccessor (Triangulation<dim> *
                                                   const int           index,
                                                   const AccessorData *local_data) :
                MGDoFAccessor<dim> (local_data),
-               DoFObjectAccessor<3, dim,BaseClass>(tria,level,index,local_data) {};
+               DoFObjectAccessor<3, dim>(tria,level,index,local_data) {};
 
 
 
@@ -465,7 +465,7 @@ MGDoFObjectAccessor<3, dim,BaseClass>::child (const unsigned int i) const {
 template <int dim, typename BaseClass>
 void
 MGDoFObjectAccessor<3, dim,BaseClass>::copy_from (const MGDoFObjectAccessor<3, dim,BaseClass> &a) {
-  DoFObjectAccessor<3, dim,BaseClass>::copy_from (a);
+  DoFObjectAccessor<3, dim>::copy_from (a);
   set_mg_dof_handler (a.mg_dof_handler);
 };
 
index 147b6926b202638165a9b12a3c9b8c3b26e38fea..ff405751bc724c0a540c5850a762f56f4b6a1a42 100644 (file)
@@ -27,7 +27,7 @@ MGDoFObjectAccessor<1, dim,BaseClass>::MGDoFObjectAccessor (Triangulation<dim> *
                                                     const int           index,
                                                     const AccessorData *local_data) :
                MGDoFAccessor<dim> (local_data),
-               DoFObjectAccessor<1, dim,BaseClass>(tria,level,index,local_data) {};
+               DoFObjectAccessor<1, dim>(tria,level,index,local_data) {};
 
 
 
@@ -143,7 +143,7 @@ template <int dim, typename BaseClass>
 void
 MGDoFObjectAccessor<1, dim,BaseClass>::copy_from (const MGDoFObjectAccessor<1, dim,BaseClass> &a)
 {
-  DoFObjectAccessor<1, dim,BaseClass>::copy_from (a);
+  DoFObjectAccessor<1, dim>::copy_from (a);
   set_mg_dof_handler (a.mg_dof_handler);
 };
 
@@ -158,7 +158,7 @@ MGDoFObjectAccessor<2, dim,BaseClass>::MGDoFObjectAccessor (Triangulation<dim> *
                                                     const int           index,
                                                     const AccessorData *local_data) :
                MGDoFAccessor<dim> (local_data),
-               DoFObjectAccessor<2, dim,BaseClass>(tria,level,index,local_data)
+               DoFObjectAccessor<2, dim>(tria,level,index,local_data)
 {};
 
 
@@ -294,7 +294,7 @@ MGDoFObjectAccessor<2, dim,BaseClass>::child (const unsigned int i) const {
 template <int dim, typename BaseClass>
 void
 MGDoFObjectAccessor<2, dim,BaseClass>::copy_from (const MGDoFObjectAccessor<2, dim,BaseClass> &a) {
-  DoFObjectAccessor<2, dim,BaseClass>::copy_from (a);
+  DoFObjectAccessor<2, dim>::copy_from (a);
   set_mg_dof_handler (a.mg_dof_handler);
 };
 
@@ -309,7 +309,7 @@ MGDoFObjectAccessor<3, dim,BaseClass>::MGDoFObjectAccessor (Triangulation<dim> *
                                                   const int           index,
                                                   const AccessorData *local_data) :
                MGDoFAccessor<dim> (local_data),
-               DoFObjectAccessor<3, dim,BaseClass>(tria,level,index,local_data) {};
+               DoFObjectAccessor<3, dim>(tria,level,index,local_data) {};
 
 
 
@@ -465,7 +465,7 @@ MGDoFObjectAccessor<3, dim,BaseClass>::child (const unsigned int i) const {
 template <int dim, typename BaseClass>
 void
 MGDoFObjectAccessor<3, dim,BaseClass>::copy_from (const MGDoFObjectAccessor<3, dim,BaseClass> &a) {
-  DoFObjectAccessor<3, dim,BaseClass>::copy_from (a);
+  DoFObjectAccessor<3, dim>::copy_from (a);
   set_mg_dof_handler (a.mg_dof_handler);
 };
 

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.