17 #ifndef __deal2__hp_dof_level_h
18 #define __deal2__hp_dof_level_h
21 #include <deal.II/base/config.h>
32 template <
int,
int>
class FECollection;
42 struct Implementation;
47 struct Implementation;
196 const unsigned int fe_index,
197 const unsigned int local_index,
225 const unsigned int fe_index,
226 const unsigned int local_index)
const;
244 const unsigned int fe_index)
const;
253 const unsigned int fe_index);
268 const unsigned int dofs_per_cell)
const;
287 template <
int dim,
int spacedim>
288 void compress_data (const ::hp::FECollection<dim,spacedim> &fe_collection);
299 template <
int dim,
int spacedim>
300 void uncompress_data (const ::hp::FECollection<dim,spacedim> &fe_collection);
306 template <
int,
int>
friend class ::hp::DoFHandler;
307 friend struct ::internal::hp::DoFHandler::Implementation;
308 friend struct ::internal::DoFCellAccessor::Implementation;
318 const unsigned int fe_index,
319 const unsigned int local_index)
const
328 ExcMessage (
"You are trying to access degree of freedom "
329 "information for an object on which no such "
330 "information is available"));
333 ExcMessage (
"FE index does not match that of the present cell"));
340 return dof_indices[dof_offsets[obj_index]]+local_index;
349 const unsigned int fe_index,
350 const unsigned int local_index,
360 ExcMessage (
"You are trying to access degree of freedom "
361 "information for an object on which no such "
362 "information is available"));
364 ExcMessage (
"This function can no longer be called after compressing the dof_indices array"));
366 ExcMessage (
"FE index does not match that of the present cell"));
392 const unsigned int fe_index)
const
402 const unsigned int fe_index)
415 const unsigned int dofs_per_cell)
const
430 DEAL_II_NAMESPACE_CLOSE
::ExceptionBase & ExcMessage(std::string arg1)
const types::global_dof_index * get_cell_cache_start(const unsigned int obj_index, const unsigned int dofs_per_cell) const
std::vector< offset_type > cell_cache_offsets
void set_active_fe_index(const unsigned int obj_index, const unsigned int fe_index)
void uncompress_data(const ::hp::FECollection< dim, spacedim > &fe_collection)
unsigned short int active_fe_index_type
void set_dof_index(const unsigned int obj_index, const unsigned int fe_index, const unsigned int local_index, const types::global_dof_index global_index)
unsigned int global_dof_index
#define Assert(cond, exc)
::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
std::vector< offset_type > dof_offsets
std::vector< types::global_dof_index > dof_indices
std::size_t memory_consumption() const
std::vector< types::global_dof_index > cell_dof_indices_cache
void compress_data(const ::hp::FECollection< dim, spacedim > &fe_collection)
signed short int signed_active_fe_index_type
bool fe_index_is_active(const unsigned int obj_index, const unsigned int fe_index) const
types::global_dof_index get_dof_index(const unsigned int obj_index, const unsigned int fe_index, const unsigned int local_index) const
::ExceptionBase & ExcInternalError()
std::vector< active_fe_index_type > active_fe_indices
unsigned int active_fe_index(const unsigned int obj_index) const