#include <base/config.h>
#include <dofs/dof_accessor.h>
#include <dofs/dof_levels.h>
+#include <dofs/dof_faces.h>
#include <hp/dof_levels.h>
+#include <hp/dof_faces.h>
#include <grid/tria_iterator.h>
#include <grid/tria_iterator.templates.h>
+namespace internal
+{
+ namespace DoFAccessor
+ {
+ /**
+ * A class like the one with same
+ * name in tria.cc. See there for
+ * more information.
+ */
+ struct Implementation
+ {
+ /**
+ * Implementations of the
+ * get_dof_index/set_dof_index functions.
+ */
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::DoFHandler<1,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<1>)
+ {
+ return dof_handler.levels[obj_level]->lines.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::DoFHandler<1,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<1>,
+ const unsigned int global_index)
+ {
+ dof_handler.levels[obj_level]->lines.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index);
+ }
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::DoFHandler<2,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<1>)
+ {
+ // faces have no levels
+ Assert (obj_level == 0, ExcInternalError());
+ return dof_handler.faces->lines.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::DoFHandler<2,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<1>,
+ const unsigned int global_index)
+ {
+ // faces have no levels
+ Assert (obj_level == 0, ExcInternalError());
+ dof_handler.faces->lines.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index);
+ }
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::DoFHandler<2,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<2>)
+ {
+ return dof_handler.levels[obj_level]->quads.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::DoFHandler<2,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<2>,
+ const unsigned int global_index)
+ {
+ dof_handler.levels[obj_level]->quads.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index);
+ }
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<1>)
+ {
+ // faces have no levels
+ Assert (obj_level == 0, ExcInternalError());
+ return dof_handler.faces->lines.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<1>,
+ const unsigned int global_index)
+ {
+ // faces have no levels
+ Assert (obj_level == 0, ExcInternalError());
+ dof_handler.faces->lines.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index);
+ }
+
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<2>)
+ {
+ // faces have no levels
+ Assert (obj_level == 0, ExcInternalError());
+ return dof_handler.faces->quads.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<2>,
+ const unsigned int global_index)
+ {
+ // faces have no levels
+ Assert (obj_level == 0, ExcInternalError());
+ dof_handler.faces->quads.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index);
+ }
+
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<3>)
+ {
+ return dof_handler.levels[obj_level]->hexes.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ internal::int2type<3>,
+ const unsigned int global_index)
+ {
+ dof_handler.levels[obj_level]->hexes.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index);
+ }
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::hp::DoFHandler<1,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<1> &)
+ {
+ return dof_handler.levels[obj_level]->lines.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::hp::DoFHandler<1,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<1> &,
+ const unsigned int global_index)
+ {
+ dof_handler.levels[obj_level]->lines.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::hp::DoFHandler<2,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<1> &)
+ {
+ return dof_handler.faces->lines.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::hp::DoFHandler<2,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<1> &,
+ const unsigned int global_index)
+ {
+ dof_handler.faces->lines.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::hp::DoFHandler<2,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<2> &)
+ {
+ return dof_handler.levels[obj_level]->quads.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::hp::DoFHandler<2,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<2> &,
+ const unsigned int global_index)
+ {
+ dof_handler.levels[obj_level]->quads.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::hp::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<1> &)
+ {
+ return dof_handler.faces->lines.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::hp::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<1> &,
+ const unsigned int global_index)
+ {
+ dof_handler.faces->lines.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::hp::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<2> &)
+ {
+ return dof_handler.faces->quads.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::hp::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<2> &,
+ const unsigned int global_index)
+ {
+ dof_handler.faces->quads.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ unsigned int
+ get_dof_index (const dealii::hp::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<3> &)
+ {
+ return dof_handler.levels[obj_level]->hexes.
+ get_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ obj_level);
+ }
+
+
+ template <int spacedim>
+ static
+ void
+ set_dof_index (const dealii::hp::DoFHandler<3,spacedim> &dof_handler,
+ const unsigned int obj_level,
+ const unsigned int obj_index,
+ const unsigned int fe_index,
+ const unsigned int local_index,
+ const internal::int2type<3> &,
+ const unsigned int global_index)
+ {
+ dof_handler.levels[obj_level]->hexes.
+ set_dof_index (dof_handler,
+ obj_index,
+ fe_index,
+ local_index,
+ global_index,
+ obj_level);
+ }
+ };
+ }
+}
+
+
+
template <int dim, class DH>
inline
unsigned int
const unsigned int fe_index) const
{
// access the respective DoF
- return this->dof_handler
- ->template get_dof_index<dim> (this->level(),
- this->present_index,
- fe_index,
- i);
+ return internal::DoFAccessor::Implementation::get_dof_index (*this->dof_handler,
+ this->level(),
+ this->present_index,
+ fe_index,
+ i,
+ internal::int2type<dim>());
}
const unsigned int fe_index) const
{
// access the respective DoF
- this->dof_handler
- ->template set_dof_index<dim> (this->level(),
- this->present_index,
- fe_index,
- i,
- index);
+ internal::DoFAccessor::Implementation::set_dof_index (*this->dof_handler,
+ this->level(),
+ this->present_index,
+ fe_index,
+ i,
+ internal::int2type<dim>(),
+ index);
}
struct Implementation;
}
+ namespace DoFAccessor
+ {
+ struct Implementation;
+ }
+
namespace DoFCellAccessor
{
struct Implementation;
const unsigned int fe_index,
const unsigned int local_index) const;
- /**
- * Return the @p i-th
- * dof-index. This function
- * calls the respective function
- * of DoFObjects.
- */
- template <int structdim>
- unsigned int get_dof_index (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const;
-
- /**
- * Set the @p i-th
- * dof-index. This function
- * calls the respective function
- * of DoFObjects.
- */
- template <int structdim>
- void set_dof_index (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const;
-
/**
* Return the number of active
* fe-indices on the given
*/
template <int, class> friend class DoFAccessor;
template <class> friend class DoFCellAccessor;
+ friend class internal::DoFAccessor::Implementation;
friend class internal::DoFCellAccessor::Implementation;
friend class internal::DoFHandler::Implementation;
namespace internal
{
+ namespace DoFAccessor
+ {
+ struct Implementation;
+ }
+
namespace DoFCellAccessor
{
struct Implementation;
*/
bool
fe_is_active_on_vertex (const unsigned int vertex_index,
- const unsigned int fe_index) const;
-
- /**
- * Return the @p i-th
- * dof-index. This function
- * calls the respective
- * function of DoFObjects.
- */
- template <int structdim>
- unsigned int get_dof_index (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const;
-
- /**
- * Set the @p i-th
- * dof-index. This function
- * calls the respective
- * function of DoFObjects.
- */
- template <int structdim>
- void set_dof_index (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const;
+ const unsigned int fe_index) const;
/**
* Number of active fe-indices,
*/
template <int, class> friend class dealii::DoFAccessor;
template <class> friend class dealii::DoFCellAccessor;
+ friend class internal::DoFAccessor::Implementation;
friend class internal::DoFCellAccessor::Implementation;
/**
.resize (dof_handler.tria->n_raw_quads() *
dof_handler.selected_fe->dofs_per_quad,
DoFHandler<3,spacedim>::invalid_dof_index);
- }
-
- /**
- * Implementations of the
- * get_dof_index/set_dof_index functions.
- */
- template <int spacedim>
- static
- unsigned int
- get_dof_index (const DoFHandler<1,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<1>)
- {
- return dof_handler.levels[obj_level]->lines.
- get_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index);
- }
-
-
- template <int spacedim>
- static
- void
- set_dof_index (const DoFHandler<1,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<1>,
- const unsigned int global_index)
- {
- dof_handler.levels[obj_level]->lines.
- set_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index,
- global_index);
- }
-
-
- template <int spacedim>
- static
- unsigned int
- get_dof_index (const DoFHandler<2,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<1>)
- {
- // faces have no levels
- Assert (obj_level == 0, ExcInternalError());
- return dof_handler.faces->lines.
- get_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index);
- }
-
-
- template <int spacedim>
- static
- void
- set_dof_index (const DoFHandler<2,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<1>,
- const unsigned int global_index)
- {
- // faces have no levels
- Assert (obj_level == 0, ExcInternalError());
- dof_handler.faces->lines.
- set_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index,
- global_index);
- }
-
-
- template <int spacedim>
- static
- unsigned int
- get_dof_index (const DoFHandler<2,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<2>)
- {
- return dof_handler.levels[obj_level]->quads.
- get_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index);
- }
-
-
- template <int spacedim>
- static
- void
- set_dof_index (const DoFHandler<2,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<2>,
- const unsigned int global_index)
- {
- dof_handler.levels[obj_level]->quads.
- set_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index,
- global_index);
- }
-
-
- template <int spacedim>
- static
- unsigned int
- get_dof_index (const DoFHandler<3,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<1>)
- {
- // faces have no levels
- Assert (obj_level == 0, ExcInternalError());
- return dof_handler.faces->lines.
- get_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index);
- }
-
-
- template <int spacedim>
- static
- void
- set_dof_index (const DoFHandler<3,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<1>,
- const unsigned int global_index)
- {
- // faces have no levels
- Assert (obj_level == 0, ExcInternalError());
- dof_handler.faces->lines.
- set_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index,
- global_index);
- }
-
-
-
- template <int spacedim>
- static
- unsigned int
- get_dof_index (const DoFHandler<3,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<2>)
- {
- // faces have no levels
- Assert (obj_level == 0, ExcInternalError());
- return dof_handler.faces->quads.
- get_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index);
- }
-
-
- template <int spacedim>
- static
- void
- set_dof_index (const DoFHandler<3,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<2>,
- const unsigned int global_index)
- {
- // faces have no levels
- Assert (obj_level == 0, ExcInternalError());
- dof_handler.faces->quads.
- set_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index,
- global_index);
- }
-
-
-
- template <int spacedim>
- static
- unsigned int
- get_dof_index (const DoFHandler<3,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<3>)
- {
- return dof_handler.levels[obj_level]->hexes.
- get_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index);
- }
-
-
- template <int spacedim>
- static
- void
- set_dof_index (const DoFHandler<3,spacedim> &dof_handler,
- const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- internal::int2type<3>,
- const unsigned int global_index)
- {
- dof_handler.levels[obj_level]->hexes.
- set_dof_index (dof_handler,
- obj_index,
- fe_index,
- local_index,
- global_index);
}
};
}
//---------------------------------------------------------------------------
-template <int dim, int spacedim>
-template <int structdim>
-unsigned int
-DoFHandler<dim,spacedim>::get_dof_index (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const
-{
- return
- internal::DoFHandler::Implementation::get_dof_index (*this,
- obj_level, obj_index,
- fe_index, local_index,
- internal::int2type<structdim>());
-}
-
-
-
-template <int dim, int spacedim>
-template <int structdim>
-void
-DoFHandler<dim,spacedim>::set_dof_index (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const
-{
- internal::DoFHandler::Implementation::set_dof_index (*this,
- obj_level, obj_index,
- fe_index, local_index,
- internal::int2type<structdim>(),
- global_index);
-}
-
-
#if deal_II_dimension == 1
#endif
-template
-unsigned int
-DoFHandler<deal_II_dimension,deal_II_dimension>::
-get_dof_index<deal_II_dimension> (const unsigned int, const unsigned int,
- const unsigned int, const unsigned int) const;
-template
-void
-DoFHandler<deal_II_dimension,deal_II_dimension>::
-set_dof_index<deal_II_dimension> (const unsigned int, const unsigned int,
- const unsigned int, const unsigned int,
- const unsigned int) const;
-
-#if deal_II_dimension != 3
-
-template
-unsigned int
-DoFHandler<deal_II_dimension,deal_II_dimension+1>::
-get_dof_index<deal_II_dimension> (const unsigned int, const unsigned int,
- const unsigned int, const unsigned int) const;
-template
-void
-DoFHandler<deal_II_dimension,deal_II_dimension+1>::
-set_dof_index<deal_II_dimension> (const unsigned int, const unsigned int,
- const unsigned int, const unsigned int,
- const unsigned int) const;
-#endif
-
DEAL_II_NAMESPACE_CLOSE
//------------------------------------------------------------------
#if deal_II_dimension == 1
- template <>
- template <>
- unsigned int
- DoFHandler<1>::get_dof_index<1> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const
- {
- return this->levels[obj_level]->lines.
- get_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- obj_level);
- }
-
-
- template <>
- template <>
- void
- DoFHandler<1>::set_dof_index<1> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const
- {
- this->levels[obj_level]->lines.
- set_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- global_index,
- obj_level);
- }
-
template <>
template <>
- template <>
- template <>
- unsigned int
- DoFHandler<1,2>::get_dof_index<1> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const
- {
- return this->levels[obj_level]->lines.
- get_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- obj_level);
- }
-
-
- template <>
- template <>
- void
- DoFHandler<1,2>::set_dof_index<1> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const
- {
- this->levels[obj_level]->lines.
- set_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- global_index,
- obj_level);
- }
-
-
template <>
template <>
bool
#if deal_II_dimension == 2
- template <>
- template <>
- unsigned int
- DoFHandler<2>::get_dof_index<1> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const
- {
- return this->faces->lines.
- get_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- obj_level);
- }
-
-
- template <>
- template <>
- void
- DoFHandler<2>::set_dof_index<1> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const
- {
- this->faces->lines.
- set_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- global_index,
- obj_level);
-
- }
-
-
template <>
template <>
bool
- template <>
- template <>
- unsigned int
- DoFHandler<2>::get_dof_index<2> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const
- {
- return this->levels[obj_level]->quads.
- get_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- obj_level);
- }
-
-
- template <>
- template <>
- void
- DoFHandler<2>::set_dof_index<2> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const
- {
- this->levels[obj_level]->quads.
- set_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- global_index,
- obj_level);
-
- }
-
-
template <>
template <>
bool
}
- template <>
- template <>
- unsigned int
- DoFHandler<2,3>::get_dof_index<1> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const
- {
- return this->faces->lines.
- get_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- obj_level);
- }
-
-
- template <>
- template <>
- void
- DoFHandler<2,3>::set_dof_index<1> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const
- {
- this->faces->lines.
- set_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- global_index,
- obj_level);
-
- }
-
-
template <>
template <>
bool
- template <>
- template <>
- unsigned int
- DoFHandler<2,3>::get_dof_index<2> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const
- {
- return this->levels[obj_level]->quads.
- get_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- obj_level);
- }
-
-
- template <>
- template <>
- void
- DoFHandler<2,3>::set_dof_index<2> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const
- {
- this->levels[obj_level]->quads.
- set_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- global_index,
- obj_level);
-
- }
-
-
template <>
template <>
bool
#endif
#if deal_II_dimension == 3
- template <>
- template <>
- unsigned int
- DoFHandler<3>::get_dof_index<1> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const
- {
- return this->faces->lines.
- get_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- obj_level);
- }
-
-
- template <>
- template <>
- void
- DoFHandler<3>::set_dof_index<1> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const
- {
- this->faces->lines.
- set_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- global_index,
- obj_level);
-
- }
-
-
template <>
template <>
bool
- template <>
- template <>
- unsigned int
- DoFHandler<3>::get_dof_index<2> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const
- {
- return this->faces->quads.
- get_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- obj_level);
- }
-
-
- template <>
- template <>
- unsigned int
- DoFHandler<3>::get_dof_index<3> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index) const
- {
- return this->levels[obj_level]->hexes.
- get_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- obj_level);
- }
-
-
- template <>
- template <>
- void
- DoFHandler<3>::set_dof_index<2> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const
- {
- this->faces->quads.
- set_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- global_index,
- obj_level);
-
- }
-
-
- template <>
- template <>
- void
- DoFHandler<3>::set_dof_index<3> (const unsigned int obj_level,
- const unsigned int obj_index,
- const unsigned int fe_index,
- const unsigned int local_index,
- const unsigned int global_index) const
- {
- this->levels[obj_level]->hexes.
- set_dof_index (*this,
- obj_index,
- fe_index,
- local_index,
- global_index,
- obj_level);
-
- }
-
-
template <>
template <>
bool