16 #ifndef dealii_dof_objects_h 17 #define dealii_dof_objects_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 24 DEAL_II_NAMESPACE_OPEN
30 namespace DoFHandlerImplementation
32 template <
int>
class DoFLevel;
33 template <
int>
class DoFFaces;
67 std::vector<types::global_dof_index>
dofs;
83 template <
int dh_dim,
int spacedim>
85 set_dof_index (const ::DoFHandler<dh_dim,spacedim> &dof_handler,
86 const unsigned int obj_index,
87 const unsigned int fe_index,
88 const unsigned int local_index,
103 template <
int dh_dim,
int spacedim>
105 get_dof_index (const ::DoFHandler<dh_dim,spacedim> &dof_handler,
106 const unsigned int obj_index,
107 const unsigned int fe_index,
108 const unsigned int local_index)
const;
115 template <
int dh_dim,
int spacedim>
124 template <
int dh_dim,
int spacedim>
128 const unsigned int fe_index)
const;
140 template <
class Archive>
142 const unsigned int version);
149 template <
int>
friend class DoFFaces;
156 template <
int dh_dim,
int spacedim>
168 template <
int dh_dim,
int spacedim>
173 const unsigned int fe_index)
const 177 ExcMessage (
"Only zero fe_index values are allowed for " 178 "non-hp DoFHandlers."));
185 template <
int dh_dim,
int spacedim>
190 const unsigned int obj_index,
191 const unsigned int fe_index,
192 const unsigned int local_index)
const 196 ExcMessage (
"Only the default FE index is allowed for non-hp DoFHandler objects"));
197 Assert (local_index<dof_handler.get_fe().template n_dofs_per_object<dim>(),
198 ExcIndexRange (local_index, 0, dof_handler.get_fe().template n_dofs_per_object<dim>()));
199 Assert (obj_index * dof_handler.get_fe().template n_dofs_per_object<dim>()+local_index
204 return dofs[obj_index * dof_handler.get_fe()
205 .template n_dofs_per_object<dim>() + local_index];
210 template <
class Archive>
220 DEAL_II_NAMESPACE_CLOSE
void serialize(Archive &ar, const unsigned int version)
std::size_t memory_consumption() const
static ::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
types::global_dof_index get_dof_index(const ::DoFHandler< dh_dim, spacedim > &dof_handler, const unsigned int obj_index, const unsigned int fe_index, const unsigned int local_index) const
static ::ExceptionBase & ExcMessage(std::string arg1)
bool fe_index_is_active(const ::DoFHandler< dh_dim, spacedim > &dof_handler, const types::global_dof_index index, const unsigned int fe_index) const
unsigned int global_dof_index
#define Assert(cond, exc)
unsigned int n_active_fe_indices(const ::DoFHandler< dh_dim, spacedim > &dof_handler, const types::global_dof_index index) const
std::vector< types::global_dof_index > dofs
void set_dof_index(const ::DoFHandler< dh_dim, spacedim > &dof_handler, const unsigned int obj_index, const unsigned int fe_index, const unsigned int local_index, const types::global_dof_index global_index)
static ::ExceptionBase & ExcInternalError()