|
Reference documentation for deal.II version 9.2.0
|
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\)
\(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\)
\(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\)
\(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Go to the documentation of this file.
16 #ifndef dealii_dynamic_sparsity_pattern_h
17 #define dealii_dynamic_sparsity_pattern_h
76 const unsigned int index_within_row);
126 "The instance of this class was initialized"
127 " without DynamicSparsityPattern object, which"
128 " means that it is a dummy accessor that can"
129 " not do any operations.");
201 const unsigned int index_within_row);
437 template <
typename ForwardIterator>
440 ForwardIterator
begin,
442 const bool indices_are_unique_and_sorted =
false);
473 template <
typename SparsityPatternTypeLeft,
typename SparsityPatternTypeRight>
476 const SparsityPatternTypeRight &right);
482 template <
typename SparsityPatternTypeLeft,
typename SparsityPatternTypeRight>
485 const SparsityPatternTypeRight &right);
493 print(std::ostream &out)
const;
719 template <
typename ForwardIterator>
723 const bool indices_are_sorted);
750 const unsigned int index_within_row)
751 : sparsity_pattern(sparsity_pattern)
754 ((sparsity_pattern->rowset.size() == 0) ?
755 sparsity_pattern->lines[current_row].entries.
begin() :
757 ->lines[sparsity_pattern->rowset.index_within_set(current_row)]
761 (sparsity_pattern->rowset.size() == 0) ?
762 sparsity_pattern->lines[current_row].entries.
end() :
764 ->lines[sparsity_pattern->rowset.index_within_set(current_row)]
770 ExcMessage(
"You can't create an iterator into a "
771 "DynamicSparsityPattern's row that is not "
772 "actually stored by that sparsity pattern "
773 "based on the IndexSet argument to it."));
785 : sparsity_pattern(sparsity_pattern)
794 : sparsity_pattern(nullptr)
911 const unsigned int index_within_row)
912 : accessor(sparsity_pattern, row, index_within_row)
918 : accessor(sparsity_pattern)
966 return !(*
this == other);
1001 std::vector<size_type>::iterator it =
1044 lines[rowindex].add(j);
1049 template <
typename ForwardIterator>
1052 ForwardIterator
begin,
1053 ForwardIterator
end,
1054 const bool indices_are_sorted)
1066 lines[rowindex].add_entries(
begin,
end, indices_are_sorted);
1084 return lines[rowindex].entries.size();
1099 return lines[local_row].entries[index];
1150 while (it !=
rowset.
end() &&
lines[rowindex].entries.size() == 0)
1159 return {
this, *it, 0};
1167 while (row <
n_rows() &&
lines[row].entries.size() == 0)
1175 return {
this, row, 0};
1185 unsigned int row = r + 1;
#define DeclExceptionMsg(Exception, defaulttext)
size_type n_nonzero_elements() const
void add_entries(const size_type row, ForwardIterator begin, ForwardIterator end, const bool indices_are_unique_and_sorted=false)
const Accessor & operator*() const
IndexSet nonempty_rows() const
static ::ExceptionBase & ExcNotImplemented()
void add_entries(ForwardIterator begin, ForwardIterator end, const bool indices_are_sorted)
DynamicSparsityPattern get_view(const IndexSet &rows) const
#define AssertIndexRange(index, range)
size_type max_entries_per_row() const
static bool stores_only_added_elements()
bool operator==(const Iterator &) const
IndexSet nonempty_cols() const
void print_gnuplot(std::ostream &out) const
bool operator!=(const Iterator &) const
std::vector< size_type > entries
ElementIterator at(const size_type global_index) const
void print(std::ostream &out) const
size_type row_length(const size_type row) const
MatrixTableIterators::Iterator< TransposeTable< T >, Constness, MatrixTableIterators::Storage::column_major > Iterator
const DynamicSparsityPattern * sparsity_pattern
bool operator==(const Accessor &) const
const IndexSet & row_index_set() const
size_type memory_consumption() const
static ::ExceptionBase & ExcMessage(std::string arg1)
unsigned int global_dof_index
size_type column_index(const size_type row, const size_type col) const
VectorType::value_type * begin(VectorType &V)
bool exists(const size_type i, const size_type j) const
Iterator lower_bound(Iterator first, Iterator last, const T &val)
#define DEAL_II_NAMESPACE_OPEN
types::global_dof_index size_type
size_type memory_consumption() const
void add(const size_type col_num)
bool is_element(const size_type index) const
static ::ExceptionBase & DummyAccessor()
VectorType::value_type * end(VectorType &V)
DynamicSparsityPattern & operator=(const DynamicSparsityPattern &)
void clear_row(const size_type row)
ElementIterator end() const
std::vector< size_type >::const_iterator current_entry
bool operator<(const Accessor &) const
static ::ExceptionBase & ExcInternalError()
#define Assert(cond, exc)
int operator-(const Iterator &p) const
bool operator<(const Iterator &) const
const types::global_dof_index invalid_size_type
void compute_mmult_pattern(const SparsityPatternTypeLeft &left, const SparsityPatternTypeRight &right)
size_type index_within_set(const size_type global_index) const
size_type column_number(const size_type row, const size_type index) const
void reinit(const size_type m, const size_type n, const IndexSet &rowset=IndexSet())
#define DEAL_II_NAMESPACE_CLOSE
void add(const size_type i, const size_type j)
const Accessor * operator->() const
size_type bandwidth() const
std::vector< Line > lines
void compute_Tmmult_pattern(const SparsityPatternTypeLeft &left, const SparsityPatternTypeRight &right)
std::vector< size_type >::const_iterator end_of_row