Skip to main content
`Ctrl`+`K`

# MatCreateMPIAIJCRL

Creates a sparse matrix of type `MATMPIAIJCRL`.

## 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

## Notes

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.

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

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