Skip to main content
`Ctrl`+`K`

# MatXAIJSetPreallocation

set preallocation for serial and parallel `MATAIJ`, `MATBAIJ`, and `MATSBAIJ` matrices and their unassembled versions.

## Synopsis

    #include "petscmat.h"
    PetscErrorCode MatXAIJSetPreallocation(Mat A, PetscInt bs, const PetscInt dnnz[], const PetscInt onnz[], const PetscInt dnnzu[], const PetscInt onnzu[])

Collective

## Input Parameters

- A - matrix being preallocated

- bs - block size

- dnnz - number of nonzero column blocks per block row of diagonal part of parallel matrix

- onnz - number of nonzero column blocks per block row of off-diagonal part of parallel matrix

- dnnzu - number of nonzero column blocks per block row of upper-triangular part of diagonal part of parallel matrix

- onnzu - number of nonzero column blocks per block row of upper-triangular part of off-diagonal part of parallel matrix

## See Also

Matrices, `Mat`, `MatSeqAIJSetPreallocation()`, `MatMPIAIJSetPreallocation()`, `MatSeqBAIJSetPreallocation()`, `MatMPIBAIJSetPreallocation()`, `MatSeqSBAIJSetPreallocation()`, `MatMPISBAIJSetPreallocation()`, `PetscSplitOwnership()`

## Level

beginner

## Location

src/mat/utils/gcreate.c

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