16#ifndef dealii_mg_tools_h
17#define dealii_mg_tools_h
34template <
int dim,
int spacedim>
54 template <
int dim,
int spacedim>
58 const unsigned int level,
59 std::vector<unsigned int> & row_lengths,
66 template <
int dim,
int spacedim>
69 const unsigned int level,
70 std::vector<unsigned int> & row_lengths,
88 typename SparsityPatternType,
89 typename number =
double>
93 SparsityPatternType & sparsity,
94 const unsigned int level,
96 const bool keep_constrained_dofs =
true);
108 typename SparsityPatternType,
109 typename number =
double>
113 SparsityPatternType & sparsity,
114 const unsigned int level,
116 const bool keep_constrained_dofs =
true);
125 template <
int dim,
typename SparsityPatternType,
int spacedim>
128 SparsityPatternType & sparsity,
129 const unsigned int level);
139 template <
int dim,
typename SparsityPatternType,
int spacedim>
142 SparsityPatternType & sparsity,
143 const unsigned int level,
155 template <
int dim,
typename SparsityPatternType,
int spacedim>
159 SparsityPatternType & sparsity,
160 const unsigned int level,
170 template <
int dim,
int spacedim,
typename SparsityPatternType>
174 SparsityPatternType & sparsity,
175 const unsigned int level);
184 template <
int dim,
int spacedim>
188 std::vector<std::vector<types::global_dof_index>> &dofs_per_block,
189 std::vector<unsigned int> target_block = {});
198 template <
int dim,
int spacedim>
202 std::vector<std::vector<types::global_dof_index>> &result,
203 const bool only_once =
false,
204 std::vector<unsigned int> target_component = {});
225 template <
int dim,
int spacedim>
231 std::vector<std::set<types::global_dof_index>> &boundary_indices,
241 template <
int dim,
int spacedim>
246 std::vector<IndexSet> &boundary_indices,
256 template <
int dim,
int spacedim>
259 const std::set<types::boundary_id> &boundary_ids,
260 std::vector<IndexSet> & boundary_indices,
268 template <
int dim,
int spacedim>
271 std::vector<IndexSet> & interface_dofs);
282 template <
int dim,
int spacedim>
296 template <
int dim,
int spacedim>
297 std::vector<types::global_dof_index>
307 template <
int dim,
int spacedim>
308 std::vector<types::global_dof_index>
331 template <
int dim,
int spacedim>
340 template <
int dim,
int spacedim>
353 template <
int dim,
int spacedim>
354 std::vector<std::pair<types::global_dof_index, types::global_dof_index>>
365 template <
int dim,
int spacedim>
366 std::vector<std::pair<types::global_dof_index, types::global_dof_index>>
382 template <
int dim,
int spacedim>
391 template <
int dim,
int spacedim>
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
const ::Triangulation< dim, spacedim > & tria