16 #ifndef dealii__block_indices_h 17 #define dealii__block_indices_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/subscriptor.h> 22 #include <deal.II/base/exceptions.h> 23 #include <deal.II/base/logstream.h> 24 #include <deal.II/base/utilities.h> 28 DEAL_II_NAMESPACE_OPEN
75 BlockIndices (
const std::vector<size_type> &block_sizes);
77 #ifdef DEAL_II_WITH_CXX11 104 const size_type n_elements_per_block);
112 void reinit (
const std::vector<size_type> &block_sizes);
127 unsigned int size ()
const;
138 size_type
block_size (
const unsigned int i)
const;
164 std::pair<unsigned int,size_type>
171 const size_type index)
const;
176 size_type
block_start (
const unsigned int i)
const;
184 #ifdef DEAL_II_WITH_CXX11 236 const unsigned int n = bi.
size();
242 for (
unsigned int i=1; i<n; ++i)
271 n_blocks =
static_cast<unsigned int>(block_sizes.size());
305 n_blocks(static_cast<unsigned int>(block_sizes.
size())),
313 #ifdef DEAL_II_WITH_CXX11 322 b.start_indices = std::vector<size_type>(1, 0);
340 std::pair<unsigned int,BlockIndices::size_type>
350 return std::pair<unsigned int,size_type>(block,
402 for (
unsigned int i=0; i<
n_blocks; ++i)
435 #ifdef DEAL_II_WITH_CXX11 443 b.start_indices = std::vector<size_type>(1, 0);
482 return (
sizeof(*
this) +
508 DEAL_II_NAMESPACE_CLOSE
bool operator==(const BlockIndices &b) const
#define AssertDimension(dim1, dim2)
std::string to_string() const
std::size_t memory_consumption() const
static::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
std::string to_string(const number value, const unsigned int digits=numbers::invalid_unsigned_int)
size_type block_start(const unsigned int i) const
void swap(BlockIndices &u, BlockIndices &v)
unsigned int global_dof_index
#define Assert(cond, exc)
void reinit(const unsigned int n_blocks, const size_type n_elements_per_block)
types::global_dof_index size_type
size_type total_size() const
std::pair< unsigned int, size_type > global_to_local(const size_type i) const
std::string int_to_string(const unsigned int value, const unsigned int digits=numbers::invalid_unsigned_int)
size_type block_size(const unsigned int i) const
std::vector< size_type > start_indices
BlockIndices & operator=(const BlockIndices &b)
void push_back(const size_type size)
void swap(BlockIndices &b)
unsigned int size() const
StreamType & operator<<(StreamType &s, UpdateFlags u)
size_type local_to_global(const unsigned int block, const size_type index) const