MatCreateMPIAIJCRL#

Creates a sparse matrix of type MATMPIAIJCRL. This type inherits from MATAIJ, but stores some additional information that is used to allow better vectorization of the matrix-vector product. At the cost of increased storage, the AIJ formatted matrix can be copied to a format in which pieces of the matrix are stored in ELLPACK format, allowing the vectorized matrix multiply routine to use stride-1 memory accesses.

Synopsis#

PetscErrorCode MatCreateMPIAIJCRL(MPI_Comm comm, PetscInt m, PetscInt n, PetscInt nz, const PetscInt nnz[], PetscInt onz, const PetscInt onnz[], Mat *A)

Collective

Input Parameters#

  • comm - MPI communicator, set to PETSC_COMM_SELF

  • m - number of rows

  • n - number of columns

  • nz - number of nonzeros per row (same for all rows), for the “diagonal” submatrix

  • nnz - array containing the number of nonzeros in the various rows (possibly different for each row) or NULL, for the “diagonal” submatrix

  • onz - number of nonzeros per row (same for all rows), for the “off-diagonal” submatrix

  • onnz - array containing the number of nonzeros in the various rows (possibly different for each row) or NULL, for the “off-diagonal” submatrix

Output Parameter#

  • A - the matrix

Note#

If nnz is given then nz is ignored

See Also#

Matrices, Mat, Sparse Matrix Creation, MATAIJ, MATAIJSELL, MATAIJPERM, MATAIJMKL, MatCreate(), MatCreateMPIAIJPERM(), MatSetValues()

Level#

intermediate

Location#

src/mat/impls/aij/mpi/crl/mcrl.c


Edit on GitLab

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages