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(
46 std::vector<types::global_dof_index>(dof.
get_fe().n_blocks()));
49 levels.resize(sizes.size());
51 for (
unsigned int i = 0; i < sizes.size(); ++i)
52 levels[i].reinit(sizes[i]);
57 template <
int dim,
int spacedim>
62 std::vector<types::global_dof_index> sizes(fe.
n_blocks());
76 #include "block_info.inst" 78 DEAL_II_NAMESPACE_CLOSE
const Triangulation< dim, spacedim > & get_triangulation() const
std::vector< types::global_dof_index > local_renumbering
const FiniteElement< dim, spacedim > & get_fe(const unsigned int index=0) const
unsigned int n_blocks() const
bool has_active_dofs() const
void reinit(const unsigned int n_blocks, const size_type n_elements_per_block)
std::pair< unsigned int, unsigned int > block_to_base_index(const unsigned int block) const
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.
void initialize_local(const DoFHandler< dim, spacedim > &)
Initialize block structure on cells and compute renumbering between cell dofs and block cell dofs...
std::vector< BlockIndices > levels
The multilevel block structure.
unsigned int n_dofs_per_cell() const
BlockIndices bi_local
The block structure of the cell systems.
bool has_level_dofs() const
std::vector< unsigned int > base_elements