15#ifndef dealii_block_indices_h
16#define dealii_block_indices_h
110 reinit(
const std::vector<size_type> &block_sizes);
167 std::pair<unsigned int, size_type>
240 const unsigned int n = bi.size();
244 s << bi.block_size(0);
246 for (
unsigned int i = 1; i < n; ++i)
247 s <<
' ' << bi.block_size(i);
248 s <<
"]->" << bi.total_size();
272 n_blocks =
static_cast<unsigned int>(block_sizes.size());
291 , start_indices(n_blocks + 1)
300 : n_blocks(static_cast<unsigned
int>(block_sizes.
size()))
301 , start_indices(block_sizes.
size() + 1)
309 : n_blocks(b.n_blocks)
310 , start_indices(std::move(b.start_indices))
313 b.start_indices = std::vector<size_type>(1, 0);
327inline std::pair<unsigned int, BlockIndices::size_type>
334 const auto it = std::prev(
382 std::string result =
"[" + std::to_string(
n_blocks) +
"->";
383 for (
unsigned int i = 0; i <
n_blocks; ++i)
389 result +=
"|" + std::to_string(
total_size()) +
']';
417 start_indices = std::move(b.start_indices);
418 n_blocks = b.n_blocks;
420 b.start_indices = std::vector<size_type>(1, 0);
446 std::swap(n_blocks, b.n_blocks);
447 std::swap(start_indices, b.start_indices);
std::string to_string() const
void swap(BlockIndices &u, BlockIndices &v) noexcept
types::global_dof_index size_type
BlockIndices(const BlockIndices &)=default
size_type block_size(const unsigned int i) const
void push_back(const size_type size)
BlockIndices & operator=(const BlockIndices &b)
void swap(BlockIndices &b) noexcept
size_type total_size() const
void reinit(const unsigned int n_blocks, const size_type n_elements_per_block)
std::vector< size_type > start_indices
bool operator==(const BlockIndices &b) const
unsigned int size() const
size_type local_to_global(const unsigned int block, const size_type index) const
size_type block_start(const unsigned int i) const
std::size_t memory_consumption() const
std::pair< unsigned int, size_type > global_to_local(const size_type i) const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
#define AssertDimension(dim1, dim2)
#define AssertIndexRange(index, range)
unsigned int global_dof_index