Skip to main content
`Ctrl`+`K`

# MatCreateSeqAIJSELL

Creates a sparse matrix of type `MATSEQAIJSELL`.

## Synopsis

    PetscErrorCode MatCreateSeqAIJSELL(MPI_Comm comm, PetscInt m, PetscInt n, PetscInt nz, const PetscInt nnz[], 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)

- nnz - array containing the number of nonzeros in the various rows (possibly different for each row) or `NULL`

## Output Parameter

- A - the matrix

## Options Database Keys

- -mat_aijsell_eager_shadow - Construct shadow matrix upon matrix assembly; default is to take a “lazy” approach, performing this step the first time the matrix is applied

## Notes

This type inherits from AIJ and is largely identical, but keeps a “shadow” copy of the matrix in `MATSEQSELL` format, which is used when this format may be more suitable for a requested operation. Currently, `MATSEQSELL` format is used for `MatMult()`, `MatMultTranspose()`, `MatMultAdd()`, `MatMultTransposeAdd()`, and `MatSOR()` operations.

If `nnz` is given then `nz` is ignored

Because `MATSEQAIJSELL` is a subtype of `MATSEQAIJ`, the option `-mat_seqaij_type seqaijsell` can be used to make sequential `MATSEQAIJ` matrices default to being instances of `MATSEQAIJSELL`.

## See Also

Matrices, `Mat`, `MatCreate()`, `MatCreateMPIAIJSELL()`, `MatSetValues()`

## Level

intermediate

## Location

src/mat/impls/aij/seq/aijsell/aijsell.c

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