SparsityPattern¶
-
class
dolfin.cpp.la.SparsityPattern(*args)¶ Bases:
objectThis class implements a sparsity pattern data structure. It is used by most linear algebra backends.
Create sparsity pattern for a generic tensor.
Parameters: - comm (MPI_Comm) –
- std::shared_ptr< const IndexMap >> index_maps (std::vector<) –
- primary_dim (std::size_t) –
-
Type_sorted= 0¶
-
Type_unsorted= 1¶
-
apply()¶ Finalize sparsity pattern.
Return type: void
-
init()¶ Initialize sparsity pattern for a generic tensor.
Parameters: std::shared_ptr< const IndexMap >> index_maps (std::vector<) – Return type: void
-
insert_full_rows_local()¶ Insert full rows (or columns, according to primary dimension) using local (process-wise) indices. This must be called before any other sparse insertion occurs to avoid quadratic complexity of dense rows insertion
Parameters: std::vector< std::size_t > & rows (const) – Return type: void
-
insert_global()¶ Insert a global entry - will be fixed by
applyParameters: - i (dolfin::la_index) –
- j (dolfin::la_index) –
Return type: void
-
insert_local()¶ Insert non-zero entries using local (process-wise) indices.
Parameters: std::vector< ArrayView< const dolfin::la_index >> & entries (const) – Return type: void
-
insert_local_global()¶ Insert non-zero entries using local (process-wise) indices for the primary dimension and global indices for the co-dimension
Parameters: std::vector< ArrayView< const dolfin::la_index >> & entries (const) – Return type: void
-
local_range()¶ Return local range for dimension dim.
Parameters: dim (std::size_t) – Return type: std::pair< std::size_t, std::size_t >
-
num_local_nonzeros()¶ Fill vector with number of nonzeros in local_range for dimension 0
Parameters: std::size_t > & num_nonzeros (std::vector<) – Return type: void
-
num_nonzeros()¶ Return number of local nonzeros.
Return type: std::size_t
-
num_nonzeros_diagonal()¶ Fill array with number of nonzeros for diagonal block in local_range for dimension 0. For matrices, fill array with number of nonzeros per local row for diagonal block
Parameters: std::size_t > & num_nonzeros (std::vector<) – Return type: void
-
num_nonzeros_off_diagonal()¶ Fill array with number of nonzeros for off-diagonal block in local_range for dimension 0. For matrices, fill array with number of nonzeros per local row for off-diagonal block. If there is no off-diagonal pattern, the vector is resized to zero-length
Parameters: std::size_t > & num_nonzeros (std::vector<) – Return type: void
-
primary_dim()¶ Return primary dimension (e.g., 0=row partition, 1=column partition)
Return type: std::size_t
-
rank()¶ Return rank.
Return type: std::size_t
-
str()¶ Return informal string representation (pretty-print)
Parameters: verbose (bool) – Return type: std::string
-
thisown¶ The membership flag