Public Member Functions | |
| BlockIndices (const unsigned int n_blocks=0) | |
| BlockIndices (const std::vector< unsigned int > &n) | |
| void | reinit (const unsigned int n_blocks, const unsigned int n_elements_per_block) |
| void | reinit (const std::vector< unsigned int > &n) |
| std::pair< unsigned int, unsigned int > | global_to_local (const unsigned int i) const |
| unsigned int | local_to_global (const unsigned int block, const unsigned int index) const |
| unsigned int | size () const |
| unsigned int | total_size () const |
| unsigned int | block_size (const unsigned int i) const |
| unsigned int | block_start (const unsigned int i) const |
| BlockIndices & | operator= (const BlockIndices &b) |
| bool | operator== (const BlockIndices &b) const |
| void | swap (BlockIndices &b) |
| unsigned int | memory_consumption () const |
Private Attributes | |
| unsigned int | n_blocks |
| std::vector< unsigned int > | start_indices |
Related Functions | |
(Note that these are not member functions.) | |
| void | swap (BlockIndices &u, BlockIndices &v) |
Class that manages the conversion of global indices into a block vector or matrix to the local indices within this block. This is required when you address a global element in a block vector and want to know which element within which block this is. It is also useful if a matrix is composed of several blocks, where you have to translate global row and column indices to local ones.
Default constructor. Initialize for n_blocks blocks and set all block sizes to zero.
References start_indices.
Constructor. Initialize the number of entries in each block i as n[i]. The number of blocks will be the size of the vector
References reinit().
| void BlockIndices::reinit | ( | const unsigned int | n_blocks, | |
| const unsigned int | n_elements_per_block | |||
| ) | [inline] |
Reinitialize the number of blocks and assign each block the same number of elements.
Referenced by BlockIndices(), PETScWrappers::MPI::BlockVector::reinit(), and PETScWrappers::BlockVector::reinit().
Reinitialize the number of indices within each block from the given argument. The number of blocks will be adjusted to the size of n and the size of block i is set to n[i].
References n_blocks, and start_indices.
| std::pair< unsigned int, unsigned int > BlockIndices::global_to_local | ( | const unsigned int | i | ) | const [inline] |
Return the block and the index within that block for the global index i. The first element of the pair is the block, the second the index within it.
References Assert, n_blocks, start_indices, and total_size().
Referenced by BlockSparsityPatternBase< SparsityPatternBase >::add(), BlockSparseMatrixEZ< Number >::add(), BlockSparsityPatternBase< SparsityPatternBase >::add_entries(), BlockSparsityPatternBase< SparsityPatternBase >::exists(), BlockSparsityPatternBase< SparsityPatternBase >::row_length(), and BlockSparseMatrixEZ< Number >::set().
| unsigned int BlockIndices::local_to_global | ( | const unsigned int | block, | |
| const unsigned int | index | |||
| ) | const [inline] |
Return the global index of index in block block.
References Assert, n_blocks, and start_indices.
Number of blocks in index field.
References n_blocks.
Referenced by PETScWrappers::BlockVector::BlockVector(), BlockSparseMatrixEZ< Number >::n_block_cols(), and BlockSparseMatrixEZ< Number >::n_block_rows().
Return the total number of indices accumulated over all blocks, that is, the dimension of the vector space of the block vector.
References n_blocks, and start_indices.
Referenced by global_to_local(), BlockSparseMatrixEZ< Number >::n_cols(), and BlockSparseMatrixEZ< Number >::n_rows().
The size of the ith block.
References Assert, n_blocks, and start_indices.
The start index of the ith block.
References Assert, n_blocks, and start_indices.
| BlockIndices & BlockIndices::operator= | ( | const BlockIndices & | b | ) | [inline] |
Copy operator.
References n_blocks, and start_indices.
| bool BlockIndices::operator== | ( | const BlockIndices & | b | ) | const [inline] |
Compare whether two objects are the same, i.e. whether the starting indices of all blocks are equal.
References n_blocks, and start_indices.
| void BlockIndices::swap | ( | BlockIndices & | b | ) | [inline] |
Swap the contents of these two objects.
References Assert, n_blocks, start_indices, and swap().
Referenced by swap().
Determine an estimate for the memory consumption (in bytes) of this object.
References start_indices.
unsigned int BlockIndices::n_blocks [private] |
Number of blocks. While this value could be obtained through start_indices.size()-1, we cache this value for faster access.
Referenced by block_size(), block_start(), global_to_local(), local_to_global(), operator=(), operator==(), reinit(), size(), swap(), and total_size().
std::vector<unsigned int> BlockIndices::start_indices [private] |
Global starting index of each vector. The last and redundant value is the total number of entries.
Referenced by block_size(), block_start(), BlockIndices(), global_to_local(), local_to_global(), memory_consumption(), operator=(), operator==(), reinit(), swap(), and total_size().
documentation generated on Mon Nov 23 22:57:29 2009 by
doxygen
1.6.1