Accessor class for iterators
Definition at line 73 of file petsc_matrix_base.h.
◆ size_type
◆ Accessor()
PETScWrappers::MatrixIterators::const_iterator::Accessor::Accessor |
( |
const MatrixBase * |
matrix, |
|
|
const size_type |
row, |
|
|
const size_type |
index |
|
) |
| |
Constructor. Since we use accessors only for read access, a const matrix pointer is sufficient.
◆ row()
size_type PETScWrappers::MatrixIterators::const_iterator::Accessor::row |
( |
| ) |
const |
Row number of the element represented by this object.
◆ index()
size_type PETScWrappers::MatrixIterators::const_iterator::Accessor::index |
( |
| ) |
const |
Index in row of the element represented by this object.
◆ column()
size_type PETScWrappers::MatrixIterators::const_iterator::Accessor::column |
( |
| ) |
const |
Column number of the element represented by this object.
◆ value()
PetscScalar PETScWrappers::MatrixIterators::const_iterator::Accessor::value |
( |
| ) |
const |
Value of this matrix entry.
◆ visit_present_row()
void PETScWrappers::MatrixIterators::const_iterator::Accessor::visit_present_row |
( |
| ) |
|
|
private |
Discard the old row caches (they may still be used by other accessors) and generate new ones for the row pointed to presently by this accessor.
◆ const_iterator
◆ matrix
MatrixBase* PETScWrappers::MatrixIterators::const_iterator::Accessor::matrix |
|
mutableprivate |
◆ a_row
size_type PETScWrappers::MatrixIterators::const_iterator::Accessor::a_row |
|
private |
◆ a_index
size_type PETScWrappers::MatrixIterators::const_iterator::Accessor::a_index |
|
private |
◆ colnum_cache
std::shared_ptr<const std::vector<size_type> > PETScWrappers::MatrixIterators::const_iterator::Accessor::colnum_cache |
|
private |
Cache where we store the column indices of the present row. This is necessary, since PETSc makes access to the elements of its matrices rather hard, and it is much more efficient to copy all column entries of a row once when we enter it than repeatedly asking PETSc for individual ones. This also makes some sense since it is likely that we will access them sequentially anyway.
In order to make copying of iterators/accessor of acceptable performance, we keep a shared pointer to these entries so that more than one accessor can access this data if necessary.
Definition at line 157 of file petsc_matrix_base.h.
◆ value_cache
std::shared_ptr<const std::vector<PetscScalar> > PETScWrappers::MatrixIterators::const_iterator::Accessor::value_cache |
|
private |
The documentation for this class was generated from the following file: