16 #include <deal.II/dofs/block_info.h> 17 #include <deal.II/dofs/dof_handler.h> 18 #include <deal.II/dofs/dof_tools.h> 20 #include <deal.II/fe/fe.h> 21 #include <deal.II/fe/fe_tools.h> 23 #include <deal.II/multigrid/mg_tools.h> 25 DEAL_II_NAMESPACE_OPEN
28 template <
int dim,
int spacedim>
37 std::vector<types::global_dof_index> sizes(fe.
n_blocks());
44 std::vector<std::vector<types::global_dof_index>> sizes(
47 for (
unsigned int i = 0; i < sizes.size(); ++i)
48 sizes[i].resize(dof.
get_fe().n_blocks());
51 levels.resize(sizes.size());
53 for (
unsigned int i = 0; i < sizes.size(); ++i)
54 levels[i].reinit(sizes[i]);
59 template <
int dim,
int spacedim>
64 std::vector<types::global_dof_index> sizes(fe.
n_blocks());
78 #include "block_info.inst" 80 DEAL_II_NAMESPACE_CLOSE
std::vector< types::global_dof_index > local_renumbering
bool has_level_dofs() const
const Triangulation< dim, spacedim > & get_triangulation() const
std::pair< unsigned int, unsigned int > block_to_base_index(const unsigned int block) const
void reinit(const unsigned int n_blocks, const size_type n_elements_per_block)
BlockIndices bi_global
The block structure of the global system.
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.
bool has_active_dofs() const
void initialize_local(const DoFHandler< dim, spacedim > &)
Initialize block structure on cells and compute renumbering between cell dofs and block cell dofs...
const FiniteElement< dim, spacedim > & get_fe(const unsigned int index=0) const
std::vector< BlockIndices > levels
The multilevel block structure.
unsigned int n_blocks() const
unsigned int n_dofs_per_cell() const
BlockIndices bi_local
The block structure of the cell systems.
std::vector< unsigned int > base_elements