Sparsity pattern data structure that can be used to initialize sparse matrices. After assembly, column indices are always sorted in increasing order. Ghost entries are kept after assembly.
More...
|
| SparsityPattern (MPI_Comm comm, const std::array< std::shared_ptr< const common::IndexMap >, 2 > &maps, const std::array< int, 2 > &bs) |
| Create an empty sparsity pattern with specified dimensions.
|
|
| SparsityPattern (MPI_Comm comm, const std::vector< std::vector< const SparsityPattern * > > &patterns, const std::array< std::vector< std::pair< std::reference_wrapper< const common::IndexMap >, int > >, 2 > &maps, const std::array< std::vector< int >, 2 > &bs) |
| Create a new sparsity pattern by concatenating sub-patterns, e.g. pattern =[ pattern00 ][ pattern 01] [ pattern10 ][ pattern 11].
|
|
| SparsityPattern (const SparsityPattern &pattern)=delete |
|
| SparsityPattern (SparsityPattern &&pattern)=default |
| Move constructor.
|
|
| ~SparsityPattern ()=default |
| Destructor.
|
|
SparsityPattern & | operator= (SparsityPattern &&pattern)=default |
| Move assignment.
|
|
void | insert (const std::span< const std::int32_t > &rows, const std::span< const std::int32_t > &cols) |
| Insert non-zero locations using local (process-wise) indices.
|
|
void | insert_diagonal (std::span< const std::int32_t > rows) |
| Insert non-zero locations on the diagonal.
|
|
void | finalize () |
| Finalize sparsity pattern and communicate off-process entries.
|
|
std::shared_ptr< const common::IndexMap > | index_map (int dim) const |
| Index map for given dimension dimension. Returns the index map for rows and columns that will be set by the current MPI rank.
|
|
std::vector< std::int64_t > | column_indices () const |
| Global indices of non-zero columns on owned rows.
|
|
common::IndexMap | column_index_map () const |
| Builds the index map for columns after assembly of the sparsity pattern.
|
|
int | block_size (int dim) const |
| Return index map block size for dimension dim.
|
|
std::int64_t | num_nonzeros () const |
| Number of nonzeros on this rank after assembly, including ghost rows.
|
|
std::int32_t | nnz_diag (std::int32_t row) const |
| Number of non-zeros in owned columns (diagonal block) on a given row.
|
|
std::int32_t | nnz_off_diag (std::int32_t row) const |
| Number of non-zeros in unowned columns (off-diagonal block) on a given row.
|
|
std::pair< std::span< const std::int32_t >, std::span< const std::int64_t > > | graph () const |
| Sparsity pattern graph after assembly. Uses local indices for the columns.
|
|
std::span< const std::int32_t > | off_diagonal_offsets () const |
| Row-wise start of off-diagonals (unowned columns) for each row.
|
|
MPI_Comm | comm () const |
| Return MPI communicator.
|
|
Sparsity pattern data structure that can be used to initialize sparse matrices. After assembly, column indices are always sorted in increasing order. Ghost entries are kept after assembly.