27template <
int dim,
int spacedim>
33 Assert(dof.has_hp_capabilities() ==
false,
36 if (!levels_only && dof.has_active_dofs())
38 const std::vector<types::global_dof_index> sizes =
43 if (!active_only && dof.has_level_dofs())
45 std::vector<std::vector<types::global_dof_index>> sizes(
46 dof.get_triangulation().n_levels(),
47 std::vector<types::global_dof_index>(dof.get_fe().n_blocks()));
50 levels.resize(sizes.size());
52 for (
unsigned int i = 0; i < sizes.size(); ++i)
59template <
int dim,
int spacedim>
63 Assert(dof.has_hp_capabilities() ==
false,
67 std::vector<types::global_dof_index> sizes(fe.
n_blocks());
80#include "dofs/block_info.inst"
std::vector< types::global_dof_index > local_renumbering
std::vector< BlockIndices > levels
The multilevel block structure.
BlockIndices bi_global
The block structure of the global system.
BlockIndices bi_local
The block structure of the cell systems.
std::vector< unsigned int > base_elements
void initialize_local(const DoFHandler< dim, spacedim > &)
Initialize block structure on cells and compute renumbering between cell dofs and block cell dofs.
void initialize(const DoFHandler< dim, spacedim > &, bool levels_only=false, bool active_only=false)
Fill the object with values describing block structure of the DoFHandler.
unsigned int n_dofs_per_cell() const
unsigned int n_blocks() const
std::pair< unsigned int, unsigned int > block_to_base_index(const unsigned int block) const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
void reinit(const Triangulation< dim, spacedim > &tria)
#define Assert(cond, exc)