SparsityPattern.h

Note

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

class SparsityPattern

Parent class(es)

This class implements the GenericSparsityPattern interface. It is used by most linear algebra backends.

SparsityPattern(std::size_t primary_dim)

Create empty sparsity pattern

SparsityPattern(const MPI_Comm mpi_comm, const std::vector<std::size_t> &dims, const std::vector<std::pair<std::size_t, std::size_t>> &ownership_range, const std::vector<const boost::unordered_map<std::size_t, unsigned int> *> off_process_owner, std::size_t primary_dim)

Create sparsity pattern for a generic tensor

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>> &ownership_range, const std::vector<const boost::unordered_map<std::size_t, unsigned int> *> off_process_owner)

Initialize sparsity pattern for a generic tensor

void insert(const std::vector<const std::vector<dolfin::la_index> *> &entries)

Insert non-zero entries

void add_edges(const std::pair<dolfin::la_index, std::size_t> &vertex, const std::vector<dolfin::la_index> &edges)

Add edges (vertex = [index, owning process])

std::size_t rank() const

Return rank

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

Return local range for dimension dim

std::size_t num_nonzeros() const

Return number of local nonzeros

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

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

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

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

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

Fill vector with number of nonzeros in local_range for dimension 0

void get_edges(std::size_t vertex, std::vector<dolfin::la_index> &edges) const

Fill vector with edges for given vertex

void apply()

Finalize sparsity pattern

std::string str(bool verbose) const

Return informal string representation (pretty-print)

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

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

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

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