16 #ifndef dealii_block_info_h 17 #define dealii_block_info_h 19 #include <deal.II/base/memory_consumption.h> 20 #include <deal.II/base/subscriptor.h> 22 #include <deal.II/lac/block_indices.h> 26 DEAL_II_NAMESPACE_OPEN
30 template <
int dim,
int spacedim>
34 template <
int dim,
int spacedim>
112 template <
int dim,
int spacedim>
115 bool levels_only =
false,
116 bool active_only =
false);
122 template <
int dim,
int spacedim>
142 level(
unsigned int level)
const;
154 renumber(
const unsigned int i)
const;
160 n_base_elements()
const;
166 base_element(
const unsigned int i)
const;
173 print(OS &stream)
const;
180 memory_consumption()
const;
186 template <
class Archive>
188 serialize(Archive &ar,
const unsigned int );
247 return local_renumbering[i];
256 return base_elements[i];
263 return base_elements.size();
272 os <<
"global dofs " << std::setw(5) << global().total_size() <<
" blocks";
273 for (
unsigned int i = 0; i < global().size(); ++i)
274 os <<
' ' << std::setw(5) << global().block_size(i);
277 if (local().size() == 0)
279 os <<
"local dofs not initialized" << std::endl;
283 os <<
"local dofs " << std::setw(5) << local().total_size()
285 for (
unsigned int i = 0; i < local().size(); ++i)
286 os <<
' ' << std::setw(5) << local().block_size(i);
290 for (
unsigned int l = 0; l < levels.size(); ++l)
292 os <<
"level " << std::setw(2) << l <<
" dofs " << std::setw(5)
293 << level(l).total_size() <<
" blocks";
294 for (
unsigned int i = 0; i < level(l).size(); ++i)
295 os <<
' ' << std::setw(5) << level(l).block_size(i);
311 template <
class Archive>
319 ar &local_renumbering;
323 DEAL_II_NAMESPACE_CLOSE
std::vector< types::global_dof_index > local_renumbering
std::size_t memory_consumption() const
#define AssertIndexRange(index, range)
unsigned long long int global_dof_index
unsigned int base_element(const unsigned int i) const
types::global_dof_index renumber(const unsigned int i) const
BlockIndices bi_global
The block structure of the global system.
void serialize(Archive &ar, const unsigned int)
unsigned int n_base_elements() const
std::vector< BlockIndices > levels
The multilevel block structure.
const BlockIndices & level(unsigned int level) const
const BlockIndices & local() const
A small class collecting the different BlockIndices involved in global, multilevel and local computat...
const BlockIndices & global() const
void print(OS &stream) const
BlockIndices bi_local
The block structure of the cell systems.
std::vector< unsigned int > base_elements
std::enable_if< std::is_fundamental< T >::value, std::size_t >::type memory_consumption(const T &t)