Skip to main content
`Ctrl`+`K`

# MatMPISBAIJSetPreallocationCSR

Creates a sparse parallel matrix in `MATMPISBAIJ` format using the given nonzero structure and (optional) numerical values

## Synopsis

    #include "petscmat.h"
    PetscErrorCode MatMPISBAIJSetPreallocationCSR(Mat B, PetscInt bs, const PetscInt i[], const PetscInt j[], const PetscScalar v[])

Collective

## Input Parameters

- B - the matrix

- bs - the block size

- i - the indices into `j` for the start of each local row (indices start with zero)

- j - the column indices for each local row (indices start with zero) these must be sorted for each row

- v - optional values in the matrix, pass `NULL` if not provided

## Notes

The `i`, `j`, and `v` arrays ARE copied by this routine into the internal format used by PETSc; thus you CANNOT change the matrix entries by changing the values of `v` after you have called this routine.

Though this routine has Preallocation() in the name it also sets the exact nonzero locations of the matrix entries and usually the numerical values as well

Any entries passed in that are below the diagonal are ignored

## See Also

Matrices, `Mat`, `MATMPISBAIJ`, `MatCreate()`, `MatCreateSeqAIJ()`, `MatSetValues()`, `MatMPIBAIJSetPreallocation()`, `MatCreateAIJ()`, `MATMPIAIJ`, `MatCreateMPISBAIJWithArrays()`

## Level

advanced

## Location

src/mat/impls/sbaij/mpi/mpisbaij.c

## Implementations

MatMPISBAIJSetPreallocationCSR_MPISBAIJ() in src/mat/impls/sbaij/mpi/mpisbaij.c

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