16 #ifndef dealii_dof_objects_h 17 #define dealii_dof_objects_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/base/exceptions.h> 26 DEAL_II_NAMESPACE_OPEN
33 namespace DoFHandlerImplementation
72 std::vector<types::global_dof_index>
dofs;
88 template <
int dh_dim,
int spacedim>
90 set_dof_index(const ::DoFHandler<dh_dim, spacedim> &dof_handler,
91 const unsigned int obj_index,
92 const unsigned int fe_index,
93 const unsigned int local_index,
108 template <
int dh_dim,
int spacedim>
110 get_dof_index(const ::DoFHandler<dh_dim, spacedim> &dof_handler,
111 const unsigned int obj_index,
112 const unsigned int fe_index,
113 const unsigned int local_index)
const;
120 template <
int dh_dim,
int spacedim>
123 const ::DoFHandler<dh_dim, spacedim> &dof_handler,
130 template <
int dh_dim,
int spacedim>
133 const ::DoFHandler<dh_dim, spacedim> &dof_handler,
135 const unsigned int fe_index)
const;
148 template <
class Archive>
150 serialize(Archive &ar,
const unsigned int version);
166 template <
int dh_dim,
int spacedim>
169 const ::DoFHandler<dh_dim, spacedim> &,
178 template <
int dh_dim,
int spacedim>
181 const ::DoFHandler<dh_dim, spacedim> &,
183 const unsigned int fe_index)
const 187 ExcMessage(
"Only zero fe_index values are allowed for " 188 "non-hp DoFHandlers."));
195 template <
int dh_dim,
int spacedim>
198 const ::DoFHandler<dh_dim, spacedim> &dof_handler,
199 const unsigned int obj_index,
200 const unsigned int fe_index,
201 const unsigned int local_index)
const 207 "Only the default FE index is allowed for non-hp DoFHandler objects"));
209 local_index < dof_handler.get_fe().template n_dofs_per_object<dim>(),
212 dof_handler.get_fe().template n_dofs_per_object<dim>()));
214 dof_handler.get_fe().template n_dofs_per_object<dim>() +
219 return dofs[obj_index *
220 dof_handler.get_fe().template n_dofs_per_object<dim>() +
226 template <
class Archive>
236 DEAL_II_NAMESPACE_CLOSE
void serialize(Archive &ar, const unsigned int version)
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
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)
std::size_t memory_consumption() const
static ::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
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
#define Assert(cond, exc)
unsigned int n_active_fe_indices(const ::DoFHandler< dh_dim, spacedim > &dof_handler, const types::global_dof_index index) const
unsigned int global_dof_index
std::vector< types::global_dof_index > dofs
static ::ExceptionBase & ExcInternalError()