From 31a4d16a5f170d89da179191a97a01152f192119 Mon Sep 17 00:00:00 2001 From: Ralf Hartmann Date: Fri, 10 Feb 2006 16:20:32 +0000 Subject: [PATCH] Clean up hp-developments: remove unnecessary template argument. git-svn-id: https://svn.dealii.org/trunk@12298 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/dofs/dof_accessor.h | 231 ++++--- .../include/dofs/dof_accessor.templates.h | 460 +++++++------- deal.II/deal.II/include/dofs/dof_handler.h | 4 +- .../include/dofs/dof_iterator_selector.h | 48 +- deal.II/deal.II/include/dofs/hp_dof_handler.h | 4 +- .../include/multigrid/mg_dof_accessor.h | 8 +- deal.II/deal.II/source/dofs/dof_accessor.cc | 569 +++++++++--------- .../source/multigrid/mg_dof_accessor.cc | 48 +- .../source/multigrid/mg_transfer_block.cc | 2 +- 9 files changed, 699 insertions(+), 675 deletions(-) diff --git a/deal.II/deal.II/include/dofs/dof_accessor.h b/deal.II/deal.II/include/dofs/dof_accessor.h index dbe1c588af..e051ce0f71 100644 --- a/deal.II/deal.II/include/dofs/dof_accessor.h +++ b/deal.II/deal.II/include/dofs/dof_accessor.h @@ -16,6 +16,8 @@ #include #include +#include +#include #include template class FullMatrix; @@ -29,11 +31,7 @@ namespace hp } template class FiniteElement; -template class DH> class DoFObjectAccessor; -template class DH> class DoFObjectAccessor<0, dim, DH>; -template class DH> class DoFObjectAccessor<1, dim, DH>; -template class DH> class DoFObjectAccessor<2, dim, DH>; -template class DH> class DoFObjectAccessor<3, dim, DH>; +template class DoFObjectAccessor; template class TriaRawIterator; @@ -60,7 +58,7 @@ template class TriaRawIterator; * @ingroup Accessors * @author Wolfgang Bangerth, 1998 */ -template class DH> +template class DoFAccessor { public: @@ -79,26 +77,26 @@ class DoFAccessor * non-const, even if they preserve * constness. */ - DoFAccessor (const DH *dof_handler); + DoFAccessor (const DH *dof_handler); /** * Reset the DoF handler pointer. */ - void set_dof_handler (DH *dh); + void set_dof_handler (DH *dh); /** * Return a handle on the * DoFHandler object which we * are using. */ - const DH & + const DH & get_dof_handler () const; /** * Copy operator. */ - DoFAccessor & - operator = (const DoFAccessor &da); + DoFAccessor & + operator = (const DoFAccessor &da); /** * Exception for child classes @@ -155,7 +153,7 @@ class DoFAccessor * Store the address of the DoFHandler object * to be accessed. */ - DH *dof_handler; + DH *dof_handler; }; @@ -255,15 +253,20 @@ class DoFObjectAccessor_Inheritance * @ingroup Accessors * @author Wolfgang Bangerth, 1998; Guido Kanschat, 1999 */ -template class DH> -class DoFObjectAccessor : public DoFAccessor, - public TriaObjectAccessor +template +class DoFObjectAccessor : public DoFAccessor, + public TriaObjectAccessor { public: + /** + * Extract dimension from DH. + */ + static const unsigned int dim = DH::dimension; + /** * Data type passed by the iterator class. */ - typedef DH AccessorData; + typedef DH AccessorData; /** * Declare base class as a local typedef @@ -429,14 +432,14 @@ class DoFObjectAccessor : public DoFAccessor, * Pointer to the ith line * bounding this Object. */ - TriaIterator > + TriaIterator > line (const unsigned int i) const; /** * Pointer to the ith quad * bounding this Object. */ - TriaIterator > + TriaIterator > quad (const unsigned int i) const; /** @@ -446,7 +449,7 @@ class DoFObjectAccessor : public DoFAccessor, * class returns a hex accessor without * access to the DoF data. */ - TriaIterator > child (const unsigned int) const; + TriaIterator > child (const unsigned int) const; /** * Distribute a local (cell @@ -487,7 +490,7 @@ class DoFObjectAccessor : public DoFAccessor, * Implement the copy operator needed * for the iterator classes. */ - void copy_from (const DoFObjectAccessor &a); + void copy_from (const DoFObjectAccessor &a); protected: /** @@ -514,11 +517,16 @@ class DoFObjectAccessor : public DoFAccessor, * Closure class. * @ingroup dofs */ -template class DH> -class DoFObjectAccessor<0, dim, DH> : public DoFAccessor, - public DoFObjectAccessor_Inheritance<0,dim>::BaseClass +template +class DoFObjectAccessor<0, DH> : public DoFAccessor, + 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, * @ingroup dofs * @author Wolfgang Bangerth, 1998 */ -template class DH> -class DoFObjectAccessor<1, dim, DH> : public DoFAccessor, - public DoFObjectAccessor_Inheritance<1,dim>::BaseClass +template +class DoFObjectAccessor<1, DH> : + public DoFAccessor, + 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 AccessorData; + typedef DH AccessorData; /** * Declare base class as a local typedef @@ -594,7 +608,7 @@ class DoFObjectAccessor<1, dim, DH> : public DoFAccessor, * argument is assumed to be a pointer * to a DoFHandler object. */ - DoFObjectAccessor (const Triangulation *tria, + DoFObjectAccessor (const Triangulation *tria, const int level, const int index, const AccessorData *local_data); @@ -715,7 +729,7 @@ class DoFObjectAccessor<1, dim, DH> : public DoFAccessor, * for hp DoF handlers, this may * change from cell to cell. */ - const FiniteElement & + const FiniteElement & get_fe () const; /** @@ -738,7 +752,7 @@ class DoFObjectAccessor<1, dim, DH> : public DoFAccessor, * class returns a line accessor without * access to the DoF data. */ - TriaIterator > child (const unsigned int) const; + TriaIterator > child (const unsigned int) const; /** * Distribute a local (cell based) vector @@ -777,18 +791,18 @@ class DoFObjectAccessor<1, dim, DH> : public DoFAccessor, * 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, * * @ingroup dofs */ -template class DH> -class DoFObjectAccessor<2, dim, DH> : public DoFAccessor, - public DoFObjectAccessor_Inheritance<2,dim>::BaseClass +template +class DoFObjectAccessor<2, DH> : + public DoFAccessor, + 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 AccessorData; + typedef DH AccessorData; /** * Declare base class as a local typedef @@ -834,7 +854,7 @@ class DoFObjectAccessor<2, dim, DH> : public DoFAccessor, * argument is assumed to be a pointer * to a DoFHandler object. */ - DoFObjectAccessor (const Triangulation *tria, + DoFObjectAccessor (const Triangulation *tria, const int level, const int index, const AccessorData *local_data); @@ -956,7 +976,7 @@ class DoFObjectAccessor<2, dim, DH> : public DoFAccessor, * for hp DoF handlers, this may * change from cell to cell. */ - const FiniteElement & + const FiniteElement & get_fe () const; /** @@ -976,7 +996,7 @@ class DoFObjectAccessor<2, dim, DH> : public DoFAccessor, * Return a pointer to the @p ith line * bounding this @p Quad. */ - TriaIterator > + TriaIterator > line (const unsigned int i) const; /** @@ -986,7 +1006,7 @@ class DoFObjectAccessor<2, dim, DH> : public DoFAccessor, * class returns a quad accessor without * access to the DoF data. */ - TriaIterator > + TriaIterator > child (const unsigned int) const; /** @@ -1026,18 +1046,18 @@ class DoFObjectAccessor<2, dim, DH> : public DoFAccessor, * 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, * * @ingroup dofs */ -template class DH> -class DoFObjectAccessor<3, dim, DH> : public DoFAccessor, - public DoFObjectAccessor_Inheritance<3,dim>::BaseClass +template +class DoFObjectAccessor<3, DH> : + public DoFAccessor, + 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 AccessorData; + typedef DH AccessorData; /** * Declare base class as a local typedef @@ -1083,7 +1109,7 @@ class DoFObjectAccessor<3, dim, DH> : public DoFAccessor, * argument is assumed to be a pointer * to a DoFHandler object. */ - DoFObjectAccessor (const Triangulation *tria, + DoFObjectAccessor (const Triangulation *tria, const int level, const int index, const AccessorData *local_data); @@ -1205,7 +1231,7 @@ class DoFObjectAccessor<3, dim, DH> : public DoFAccessor, * for hp DoF handlers, this may * change from cell to cell. */ - const FiniteElement & + const FiniteElement & get_fe () const; /** @@ -1225,14 +1251,14 @@ class DoFObjectAccessor<3, dim, DH> : public DoFAccessor, * Return a pointer to the @p ith line * bounding this @p Hex. */ - TriaIterator > + TriaIterator > line (const unsigned int i) const; /** * Return a pointer to the @p ith quad * bounding this @p Hex. */ - TriaIterator > + TriaIterator > quad (const unsigned int i) const; /** @@ -1242,7 +1268,7 @@ class DoFObjectAccessor<3, dim, DH> : public DoFAccessor, * class returns a hex accessor without * access to the DoF data. */ - TriaIterator > child (const unsigned int) const; + TriaIterator > child (const unsigned int) const; /** * Distribute a local (cell @@ -1283,18 +1309,18 @@ class DoFObjectAccessor<3, dim, DH> : public DoFAccessor, * 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, * @ingroup dofs * @author Wolfgang Bangerth, 1998 */ -template class DH> -class DoFCellAccessor : public DoFObjectAccessor +template +class DoFCellAccessor : public DoFObjectAccessor { 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::AccessorData AccessorData; + typedef typename DoFObjectAccessor::AccessorData AccessorData; /** * Constructor */ - DoFCellAccessor (const Triangulation *tria, + DoFCellAccessor (const Triangulation *tria, const int level, const int index, const AccessorData *local_data); @@ -1355,7 +1386,7 @@ class DoFCellAccessor : public DoFObjectAccessor * without access to the DoF * data. */ - TriaIterator > + TriaIterator > neighbor (const unsigned int) const; /** @@ -1367,7 +1398,7 @@ class DoFCellAccessor : public DoFObjectAccessor * without access to the DoF * data. */ - TriaIterator > + TriaIterator > child (const unsigned int) const; /** @@ -1378,7 +1409,7 @@ class DoFCellAccessor : public DoFObjectAccessor * 1D, and maps to DoFObjectAccessor<2, * dim>::line in 2D. */ - TriaIterator > + TriaIterator > face (const unsigned int i) const; /** @@ -1392,7 +1423,7 @@ class DoFCellAccessor : public DoFObjectAccessor * access to the triangulation * data). */ - TriaIterator > + TriaIterator > neighbor_child_on_subface (const unsigned int face_no, const unsigned int subface_no) const; @@ -1559,91 +1590,91 @@ class DoFCellAccessor : public DoFObjectAccessor /* -------------- 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 >::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 >::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 >::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 diff --git a/deal.II/deal.II/include/dofs/dof_accessor.templates.h b/deal.II/deal.II/include/dofs/dof_accessor.templates.h index 762bf9663e..ff22b3b0a7 100644 --- a/deal.II/deal.II/include/dofs/dof_accessor.templates.h +++ b/deal.II/deal.II/include/dofs/dof_accessor.templates.h @@ -16,8 +16,6 @@ #include #include -#include -#include #include #include #include @@ -29,8 +27,8 @@ /*------------------------- Functions: DoFAccessor ---------------------------*/ -template class DH> -DoFAccessor::DoFAccessor () +template +DoFAccessor::DoFAccessor () : dof_handler(0) { @@ -39,17 +37,17 @@ DoFAccessor::DoFAccessor () -template class DH> +template inline -DoFAccessor::DoFAccessor (const DH *dof_handler) : - dof_handler(const_cast*>(dof_handler)) +DoFAccessor::DoFAccessor (const DH *dof_handler) : + dof_handler(const_cast(dof_handler)) {} -template class DH> +template void -DoFAccessor::set_dof_handler (DH *dh) +DoFAccessor::set_dof_handler (DH *dh) { Assert (dh != 0, ExcInvalidObject()); dof_handler = dh; @@ -57,19 +55,19 @@ DoFAccessor::set_dof_handler (DH *dh) -template class DH> +template inline -const DH & -DoFAccessor::get_dof_handler () const +const DH & +DoFAccessor::get_dof_handler () const { return *this->dof_handler; } -template class DH> +template inline -DoFAccessor & -DoFAccessor::operator = (const DoFAccessor &da) +DoFAccessor & +DoFAccessor::operator = (const DoFAccessor &da) { this->set_dof_handler (da.dof_handler); return *this; @@ -77,10 +75,10 @@ DoFAccessor::operator = (const DoFAccessor &da) -template class DH> +template inline bool -DoFAccessor::operator == (const DoFAccessor &a) const +DoFAccessor::operator == (const DoFAccessor &a) const { Assert (dof_handler == a.dof_handler, ExcCantCompareIterators()); @@ -92,10 +90,10 @@ DoFAccessor::operator == (const DoFAccessor &a) const -template class DH> +template inline bool -DoFAccessor::operator != (const DoFAccessor &a) const +DoFAccessor::operator != (const DoFAccessor &a) const { Assert (dof_handler == a.dof_handler, ExcCantCompareIterators()); @@ -114,26 +112,26 @@ DoFAccessor::operator != (const DoFAccessor &a) const /*------------------------- Functions: DoFObjectAccessor<1,dim> -----------------------*/ -template class DH> +template inline -DoFObjectAccessor<1,dim,DH>:: -DoFObjectAccessor (const Triangulation *tria, +DoFObjectAccessor<1,DH>:: +DoFObjectAccessor (const Triangulation *tria, const int level, const int index, const AccessorData *local_data) : - DoFAccessor (local_data), - DoFObjectAccessor_Inheritance<1,dim>::BaseClass (tria, - level, - index) + DoFAccessor (local_data), + DoFObjectAccessor_Inheritance<1,DH::dimension>::BaseClass (tria, + level, + index) {} -template class DH> +template 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 BaseClass; + typedef DoFAccessor 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 class DH> +template 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 BaseClass; + typedef DoFAccessor 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 class DH> +template inline void -DoFObjectAccessor<1,dim,DH>::get_dof_indices (std::vector &dof_indices) const +DoFObjectAccessor<1,DH>::get_dof_indices (std::vector &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 &dof_ind // non-template dependent name and // use that to specify the // qualified exception names - typedef DoFAccessor BaseClass; + typedef DoFAccessor 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 &dof_ind -template class DH> +template inline -TriaIterator > -DoFObjectAccessor<1,dim,DH>::child (const unsigned int i) const +TriaIterator > +DoFObjectAccessor<1,DH>::child (const unsigned int i) const { - TriaIterator > q (this->tria, - this->present_level+1, - this->child_index (i), - this->dof_handler); + TriaIterator > 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 class DH> +template inline -const FiniteElement & -DoFObjectAccessor<1,dim,DH>::get_fe () const +const FiniteElement & +DoFObjectAccessor<1,DH>::get_fe () const { return *this->dof_handler->selected_fe; } -template class DH> +template inline unsigned int -DoFObjectAccessor<1,dim,DH>::active_fe_index () const +DoFObjectAccessor<1,DH>::active_fe_index () const { return 0; } -template class DH> +template 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 BaseClass; + typedef DoFAccessor BaseClass; Assert (i == 0, typename BaseClass::ExcInvalidObject()); } -template class DH> +template template inline void -DoFObjectAccessor<1, dim, DH>:: +DoFObjectAccessor<1,DH>:: distribute_local_to_global (const Vector &local_source, OutputVector &global_destination) const { @@ -299,7 +297,7 @@ distribute_local_to_global (const Vector &local_source, // non-template dependent name and // use that to specify the // qualified exception names - typedef DoFAccessor BaseClass; + typedef DoFAccessor BaseClass; Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject()); @@ -326,11 +324,11 @@ distribute_local_to_global (const Vector &local_source, -template class DH> +template template inline void -DoFObjectAccessor<1, dim, DH>:: +DoFObjectAccessor<1,DH>:: distribute_local_to_global (const FullMatrix &local_source, OutputMatrix &global_destination) const { @@ -343,7 +341,7 @@ distribute_local_to_global (const FullMatrix &local_source, // non-template dependent name and // use that to specify the // qualified exception names - typedef DoFAccessor BaseClass; + typedef DoFAccessor BaseClass; Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject()); @@ -375,10 +373,10 @@ distribute_local_to_global (const FullMatrix &local_source, -template class DH> +template 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 class DH> +template 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::operator == (a)); + DoFAccessor::operator == (a)); } -template class DH> +template 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::operator != (a)); + DoFAccessor::operator != (a)); } /*------------------------- Functions: DoFObjectAccessor<2,dim> -----------------------*/ -template class DH> -DoFObjectAccessor<2,dim,DH>:: -DoFObjectAccessor (const Triangulation *tria, +template +DoFObjectAccessor<2,DH>:: +DoFObjectAccessor (const Triangulation *tria, const int level, const int index, const AccessorData *local_data) : - DoFAccessor (local_data), + DoFAccessor (local_data), DoFObjectAccessor_Inheritance<2,dim>::BaseClass (tria, level, index) @@ -425,12 +423,12 @@ DoFObjectAccessor (const Triangulation *tria, -template class DH> +template 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 BaseClass; + typedef DoFAccessor 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 class DH> +template 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 BaseClass; + typedef DoFAccessor 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 class DH> +template inline void -DoFObjectAccessor<2,dim,DH>::get_dof_indices (std::vector &dof_indices) const +DoFObjectAccessor<2,DH>::get_dof_indices (std::vector &dof_indices) const { - typedef DoFAccessor BaseClass; + typedef DoFAccessor BaseClass; Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject()); @@ -515,14 +513,14 @@ DoFObjectAccessor<2,dim,DH>::get_dof_indices (std::vector &dof_ind } -template class DH> +template inline -TriaIterator > -DoFObjectAccessor<2,dim,DH>::line (const unsigned int i) const +TriaIterator > +DoFObjectAccessor<2,DH>::line (const unsigned int i) const { Assert (i<4, ExcIndexRange (i, 0, 4)); - return TriaIterator > + return TriaIterator > ( this->tria, this->present_level, @@ -532,15 +530,15 @@ DoFObjectAccessor<2,dim,DH>::line (const unsigned int i) const } -template class DH> +template inline -TriaIterator > -DoFObjectAccessor<2,dim,DH>::child (const unsigned int i) const +TriaIterator > +DoFObjectAccessor<2,DH>::child (const unsigned int i) const { - TriaIterator > q (this->tria, - this->present_level+1, - this->child_index (i), - this->dof_handler); + TriaIterator > 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 class DH> +template inline -const FiniteElement & -DoFObjectAccessor<2,dim,DH>::get_fe () const +const FiniteElement & +DoFObjectAccessor<2,DH>::get_fe () const { return *this->dof_handler->selected_fe; } -template class DH> +template inline unsigned int -DoFObjectAccessor<2,dim,DH>::active_fe_index () const +DoFObjectAccessor<2,DH>::active_fe_index () const { return 0; } -template class DH> +template 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 BaseClass; + typedef DoFAccessor BaseClass; Assert (i == 0, typename BaseClass::ExcInvalidObject()); } -template class DH> +template template inline void -DoFObjectAccessor<2, dim, DH>:: +DoFObjectAccessor<2,DH>:: distribute_local_to_global (const Vector &local_source, OutputVector &global_destination) const { @@ -596,7 +594,7 @@ distribute_local_to_global (const Vector &local_source, // non-template dependent name and // use that to specify the // qualified exception names - typedef DoFAccessor BaseClass; + typedef DoFAccessor BaseClass; Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject()); @@ -624,11 +622,11 @@ distribute_local_to_global (const Vector &local_source, -template class DH> +template template inline void -DoFObjectAccessor<2, dim, DH>:: +DoFObjectAccessor<2,DH>:: distribute_local_to_global (const FullMatrix &local_source, OutputMatrix &global_destination) const { @@ -641,7 +639,7 @@ distribute_local_to_global (const FullMatrix &local_source, // non-template dependent name and // use that to specify the // qualified exception names - typedef DoFAccessor BaseClass; + typedef DoFAccessor BaseClass; Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject()); @@ -674,10 +672,10 @@ distribute_local_to_global (const FullMatrix &local_source, -template class DH> +template 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 class DH> +template 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::operator == (a)); + DoFAccessor::operator == (a)); } -template class DH> +template 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::operator != (a)); + DoFAccessor::operator != (a)); } /*------------------------- Functions: DoFObjectAccessor<3,dim> -----------------------*/ -template class DH> +template inline -DoFObjectAccessor<3,dim,DH>:: -DoFObjectAccessor (const Triangulation *tria, +DoFObjectAccessor<3,DH>:: +DoFObjectAccessor (const Triangulation *tria, const int level, const int index, const AccessorData *local_data) : - DoFAccessor (local_data), + DoFAccessor (local_data), DoFObjectAccessor_Inheritance<3,dim>::BaseClass (tria, level, index) @@ -726,12 +724,12 @@ DoFObjectAccessor (const Triangulation *tria, -template class DH> +template 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 BaseClass; + typedef DoFAccessor 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 class DH> +template 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 BaseClass; + typedef DoFAccessor 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 class DH> +template inline void -DoFObjectAccessor<3,dim,DH>::get_dof_indices (std::vector &dof_indices) const +DoFObjectAccessor<3,DH>::get_dof_indices (std::vector &dof_indices) const { - typedef DoFAccessor BaseClass; + typedef DoFAccessor BaseClass; Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject()); @@ -820,13 +818,13 @@ DoFObjectAccessor<3,dim,DH>::get_dof_indices (std::vector &dof_ind -template class DH> +template inline -TriaIterator > -DoFObjectAccessor<3,dim,DH>::line (const unsigned int i) const +TriaIterator > +DoFObjectAccessor<3,DH>::line (const unsigned int i) const { TriaIterator > l = BaseClass::line(i); - return TriaIterator > + return TriaIterator > ( this->tria, this->present_level, @@ -836,14 +834,14 @@ DoFObjectAccessor<3,dim,DH>::line (const unsigned int i) const } -template class DH> +template inline -TriaIterator > -DoFObjectAccessor<3,dim,DH>::quad (const unsigned int i) const +TriaIterator > +DoFObjectAccessor<3,DH>::quad (const unsigned int i) const { Assert (i<6, ExcIndexRange (i, 0, 6)); - return TriaIterator > + return TriaIterator > ( this->tria, this->present_level, @@ -853,15 +851,15 @@ DoFObjectAccessor<3,dim,DH>::quad (const unsigned int i) const } -template class DH> +template inline -TriaIterator > -DoFObjectAccessor<3,dim,DH>::child (const unsigned int i) const +TriaIterator > +DoFObjectAccessor<3,DH>::child (const unsigned int i) const { - TriaIterator > q (this->tria, - this->present_level+1, - this->child_index (i), - this->dof_handler); + TriaIterator > 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 class DH> +template inline -const FiniteElement & -DoFObjectAccessor<3,dim,DH>::get_fe () const +const FiniteElement & +DoFObjectAccessor<3,DH>::get_fe () const { return *this->dof_handler->selected_fe; } -template class DH> +template inline unsigned int -DoFObjectAccessor<3,dim,DH>::active_fe_index () const +DoFObjectAccessor<3,DH>::active_fe_index () const { return 0; } -template class DH> +template 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 BaseClass; + typedef DoFAccessor BaseClass; Assert (i == 0, typename BaseClass::ExcInvalidObject()); } -template class DH> +template template inline void -DoFObjectAccessor<3, dim, DH>:: +DoFObjectAccessor<3,DH>:: distribute_local_to_global (const Vector &local_source, OutputVector &global_destination) const { @@ -916,7 +914,7 @@ distribute_local_to_global (const Vector &local_source, // non-template dependent name and // use that to specify the // qualified exception names - typedef DoFAccessor BaseClass; + typedef DoFAccessor BaseClass; Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject()); @@ -945,11 +943,11 @@ distribute_local_to_global (const Vector &local_source, -template class DH> +template template inline void -DoFObjectAccessor<3, dim, DH>:: +DoFObjectAccessor<3,DH>:: distribute_local_to_global (const FullMatrix &local_source, OutputMatrix &global_destination) const { @@ -962,7 +960,7 @@ distribute_local_to_global (const FullMatrix &local_source, // non-template dependent name and // use that to specify the // qualified exception names - typedef DoFAccessor BaseClass; + typedef DoFAccessor BaseClass; Assert (this->dof_handler != 0, typename BaseClass::ExcInvalidObject()); @@ -996,8 +994,8 @@ distribute_local_to_global (const FullMatrix &local_source, -template class DH> -void DoFObjectAccessor<3,dim,DH>::copy_from (const DoFObjectAccessor<3,dim,DH> &a) +template +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 class DH> +template 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::operator == (a)); + DoFAccessor::operator == (a)); } -template class DH> +template 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::operator != (a)); + DoFAccessor::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 > 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 > 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 > 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 > 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 > 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 > 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::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::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::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::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::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::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 > 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 > 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 > 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 > 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::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::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::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::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 > 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 > 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::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::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 class DH> +template inline -DoFCellAccessor:: -DoFCellAccessor (const Triangulation *tria, +DoFCellAccessor:: +DoFCellAccessor (const Triangulation *tria, const int level, const int index, const AccessorData *local_data) : - DoFObjectAccessor (tria,level,index,local_data) + DoFObjectAccessor (tria,level,index,local_data) {} -template class DH> +template inline -TriaIterator > -DoFCellAccessor::neighbor (const unsigned int i) const +TriaIterator > +DoFCellAccessor::neighbor (const unsigned int i) const { - TriaIterator > q (this->tria, - this->neighbor_level (i), - this->neighbor_index (i), - this->dof_handler); + TriaIterator > 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::neighbor (const unsigned int i) const } -template class DH> +template inline -TriaIterator > -DoFCellAccessor::child (const unsigned int i) const +TriaIterator > +DoFCellAccessor::child (const unsigned int i) const { - TriaIterator > q (this->tria, - this->present_level+1, - this->child_index (i), - this->dof_handler); + TriaIterator > 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::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 >::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 >::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 >::face (const unsigned int i) const { return this->quad(i); } diff --git a/deal.II/deal.II/include/dofs/dof_handler.h b/deal.II/deal.II/include/dofs/dof_handler.h index d8904725cb..567c138f16 100644 --- a/deal.II/deal.II/include/dofs/dof_handler.h +++ b/deal.II/deal.II/include/dofs/dof_handler.h @@ -1049,12 +1049,12 @@ class DoFHandler : public Subscriptor /* * Make accessor objects friends. */ - template class DH> friend class DoFAccessor; + template friend class DoFAccessor; /* * Make accessor objects friends. */ - template class DH> friend class DoFObjectAccessor; + template friend class DoFObjectAccessor; }; diff --git a/deal.II/deal.II/include/dofs/dof_iterator_selector.h b/deal.II/deal.II/include/dofs/dof_iterator_selector.h index 19e4012c62..13db10f523 100644 --- a/deal.II/deal.II/include/dofs/dof_iterator_selector.h +++ b/deal.II/deal.II/include/dofs/dof_iterator_selector.h @@ -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 @@ -13,13 +13,9 @@ #ifndef __deal2__dof_iterator_selector_h #define __deal2__dof_iterator_selector_h -template class DH> class DoFAccessor; -template class DH> class DoFCellAccessor; -template class DH> class DoFObjectAccessor; -template class DH> class DoFObjectAccessor<0, dim, DH>; -template class DH> class DoFObjectAccessor<1, dim, DH>; -template class DH> class DoFObjectAccessor<2, dim, DH>; -template class DH> class DoFObjectAccessor<3, dim, DH>; +template class DoFAccessor; +template class DoFCellAccessor; +template class DoFObjectAccessor; template class FiniteElement; template class TriaRawIterator; template class TriaIterator; @@ -60,9 +56,9 @@ namespace internal template