|
DOLFINx
0.3.0
DOLFINx C++ interface
|
This class provides a sparsity pattern data structure that can be used to initialize sparse matrices. More...
#include <SparsityPattern.h>
Public Member Functions | |
| 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]. More... | |
| SparsityPattern (const SparsityPattern &pattern)=delete | |
| SparsityPattern (SparsityPattern &&pattern)=default | |
| Move constructor. | |
| ~SparsityPattern ()=default | |
| Destructor. | |
| SparsityPattern & | operator= (SparsityPattern &&pattern)=default |
| Move assignment. | |
| 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. More... | |
| std::vector< std::int64_t > | column_indices () const |
| Global indices of non-zero columns on owned rows. More... | |
| int | block_size (int dim) const |
| Return index map block size for dimension dim. | |
| void | insert (const xtl::span< const std::int32_t > &rows, const xtl::span< const std::int32_t > &cols) |
| Insert non-zero locations using local (process-wise) indices. | |
| void | insert_diagonal (const std::vector< std::int32_t > &rows) |
| Insert non-zero locations on the diagonal. More... | |
| void | assemble () |
| Finalize sparsity pattern and communicate off-process entries. | |
| std::int64_t | num_nonzeros () const |
| Return number of local nonzeros. | |
| const graph::AdjacencyList< std::int32_t > & | diagonal_pattern () const |
| Sparsity pattern for the owned (diagonal) block. Uses local indices for the columns. | |
| const graph::AdjacencyList< std::int32_t > & | off_diagonal_pattern () const |
| Sparsity pattern for the un-owned (off-diagonal) columns. Uses local indices for the columns. Translate to global with column IndexMap. | |
| MPI_Comm | mpi_comm () const |
| Return MPI communicator. | |
This class provides a sparsity pattern data structure that can be used to initialize sparse matrices.
| SparsityPattern::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].
| [in] | comm | The MPI communicator |
| [in] | patterns | Rectangular array of sparsity pattern. The patterns must not be finalised. Null block are permited |
| [in] | maps | Pairs of (index map, block size) for each row block (maps[0]) and column blocks (maps[1]) |
| [in] | bs | Block sizes for the sparsity pattern entries |
| std::vector< std::int64_t > SparsityPattern::column_indices | ( | ) | const |
Global indices of non-zero columns on owned rows.
| std::shared_ptr< const common::IndexMap > SparsityPattern::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.
| [in] | dim | The requested map, row (0) or column (1) |
| void SparsityPattern::insert_diagonal | ( | const std::vector< std::int32_t > & | rows | ) |
Insert non-zero locations on the diagonal.
| [in] | rows | The rows in local (process-wise) indices. The indices must exist in the row IndexMap. |