<h3>Specific improvements</h3>
<ol>
+<li> New: Added BlockCompressedSimpleSparsityPattern::column_number().
+<br>
+(Timo Heister, 2012/09/25)
+
<li> New: There is now a function hp::FECollection::n_blocks() in analogy to
the existing function hp::FECollection::n_components().
<br>
*/
void reinit(const std::vector<IndexSet> & partitioning);
+ /**
+ * Access to column number field.
+ * Return the column number of
+ * the @p index th entry in row @p row.
+ */
+ unsigned int column_number (const unsigned int row,
+ const unsigned int index) const;
+
/**
* Allow the use of the reinit
* functions of the base class as
}
+inline
+unsigned int
+BlockCompressedSimpleSparsityPattern::column_number (const unsigned int row,
+ const unsigned int index) const
+{
+ // .first= ith block, .second = jth row in that block
+ const std::pair<unsigned int,unsigned int>
+ row_index = row_indices.global_to_local (row);
+
+ Assert(index<row_length(row), ExcIndexRange(index, 0, row_length(row)));
+
+ unsigned int c = 0;
+ for (unsigned int b=0; b<columns; ++b)
+ {
+ unsigned int rowlen = sub_objects[row_index.first][b]->row_length (row_index.second);
+ if (index<c+rowlen)
+ return c+sub_objects[row_index.first][b]->column_number(row_index.second, index-c);
+ c += rowlen;
+ }
+
+ Assert(false, ExcInternalError());
+ return 0;
+}
+
+
inline
void
BlockSparsityPattern::reinit (