GenericSparsityPattern.h

Note

The documentation on this page was automatically extracted from the DOLFIN C++ code and may need to be edited or expanded.

class GenericSparsityPattern

Parent class(es)

Base class (interface) for generic tensor sparsity patterns. Currently, this interface is mostly limited to matrices.

GenericSparsityPattern(std::size_t primary_dim)

Create empty sparsity pattern

void init(const MPI_Comm mpi_comm, const std::vector<std::size_t> &dims, const std::vector<std::pair<std::size_t, std::size_t>> &local_range, const std::vector<ArrayView<const std::size_t>> &local_to_global, const std::vector<ArrayView<const int>> &off_process_owner, const std::vector<std::size_t> &block_sizes) = 0

Initialize sparsity pattern for a generic tensor

void insert_global(const std::vector<ArrayView<const dolfin::la_index>> &entries) = 0

Insert non-zero entries using global indices

void insert_local(const std::vector<ArrayView<const dolfin::la_index>> &entries) = 0

Insert non-zero entries using local (process-wise) entries

std::size_t rank() const = 0

Return rank

std::size_t primary_dim() const

Return primary dimension (e.g., 0=row partition, 1=column partition)

std::pair<std::size_t, std::size_t> local_range(std::size_t dim) const = 0

Return local range for dimension dim

std::size_t num_nonzeros() const = 0

Return total number of nonzeros in local_range

void num_nonzeros_diagonal(std::vector<std::size_t> &num_nonzeros) const = 0

Fill vector with number of nonzeros for diagonal block in local_range for primary dimension

void num_nonzeros_off_diagonal(std::vector<std::size_t> &num_nonzeros) const = 0

Fill vector with number of nonzeros for off-diagonal block in local_range for primary dimension

void num_local_nonzeros(std::vector<std::size_t> &num_nonzeros) const = 0

Fill vector with number of nonzeros in local_range for primary dimension

std::vector<std::vector<std::size_t>> diagonal_pattern(Type type) const = 0

Return underlying sparsity pattern (diagonal). Options are ‘sorted’ and ‘unsorted’.

std::vector<std::vector<std::size_t>> off_diagonal_pattern(Type type) const = 0

Return underlying sparsity pattern (off-diagonal). Options are ‘sorted’ and ‘unsorted’.

void apply() = 0

Finalize sparsity pattern

MPI_Comm mpi_comm() const = 0

Return MPI communicator