9#include <dolfinx/common/MPI.h> 
   35      const std::array<std::shared_ptr<const common::IndexMap>, 2>& maps,
 
   36      const std::array<int, 2>& bs);
 
   50      const std::vector<std::vector<const SparsityPattern*>>& patterns,
 
   53              std::pair<std::reference_wrapper<const common::IndexMap>, 
int>>,
 
   55      const std::array<std::vector<int>, 2>& bs);
 
   69  void insert(
const std::span<const std::int32_t>& rows,
 
   70              const std::span<const std::int32_t>& cols);
 
   84  std::shared_ptr<const common::IndexMap> 
index_map(
int dim) 
const;
 
  112  std::int32_t 
nnz_diag(std::int32_t row) 
const;
 
  125  std::pair<std::span<const std::int32_t>, std::span<const std::int64_t>>
 
  134  MPI_Comm 
comm() 
const;
 
  141  std::array<std::shared_ptr<const common::IndexMap>, 2> _index_maps;
 
  144  std::array<int, 2> _bs;
 
  147  std::vector<std::int64_t> _col_ghosts;
 
  150  std::vector<std::int32_t> _col_ghost_owners;
 
  153  std::vector<std::vector<std::int32_t>> _row_cache;
 
  158  std::vector<std::int32_t> _edges;
 
  159  std::vector<std::int64_t> _offsets;
 
  162  std::vector<std::int32_t> _off_diagonal_offsets;
 
 
A duplicate MPI communicator and manage lifetime of the communicator.
Definition MPI.h:43
 
This class represents the distribution index arrays across processes. An index array is a contiguous ...
Definition IndexMap.h:64
 
Sparsity pattern data structure that can be used to initialize sparse matrices. After assembly,...
Definition SparsityPattern.h:26
 
SparsityPattern(SparsityPattern &&pattern)=default
Move constructor.
 
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 ...
Definition SparsityPattern.cpp:193
 
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.
Definition SparsityPattern.cpp:402
 
void finalize()
Finalize sparsity pattern and communicate off-process entries.
Definition SparsityPattern.cpp:226
 
int block_size(int dim) const
Return index map block size for dimension dim.
Definition SparsityPattern.cpp:224
 
std::int32_t nnz_diag(std::int32_t row) const
Number of non-zeros in owned columns (diagonal block) on a given row.
Definition SparsityPattern.cpp:395
 
void insert_diagonal(std::span< const std::int32_t > rows)
Insert non-zero locations on the diagonal.
Definition SparsityPattern.cpp:168
 
std::int64_t num_nonzeros() const
Number of nonzeros on this rank after assembly, including ghost rows.
Definition SparsityPattern.cpp:388
 
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.
Definition SparsityPattern.cpp:143
 
std::span< const std::int32_t > off_diagonal_offsets() const
Row-wise start of off-diagonals (unowned columns) for each row.
Definition SparsityPattern.cpp:417
 
std::vector< std::int64_t > column_indices() const
Global indices of non-zero columns on owned rows.
Definition SparsityPattern.cpp:198
 
common::IndexMap column_index_map() const
Builds the index map for columns after assembly of the sparsity pattern.
Definition SparsityPattern.cpp:213
 
MPI_Comm comm() const
Return MPI communicator.
Definition SparsityPattern.cpp:424
 
SparsityPattern & operator=(SparsityPattern &&pattern)=default
Move assignment.
 
~SparsityPattern()=default
Destructor.
 
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.
Definition SparsityPattern.cpp:410
 
Miscellaneous classes, functions and types.
Definition dolfinx_common.h:8
 
Linear algebra interface.
Definition sparsitybuild.h:15