Skip to main content
`Ctrl`+`K`

# DMSlicedSetPreallocation

sets the matrix memory preallocation for matrices computed by `DMSLICED`

## Synopsis

    #include "petscdmsliced.h"
    PetscErrorCode DMSlicedSetPreallocation(DM dm, PetscInt d_nz, const PetscInt d_nnz[], PetscInt o_nz, const PetscInt o_nnz[])

Not Collective

## Input Parameters

- dm - the `DM` object

- d_nz - number of block nonzeros per block row in diagonal portion of local submatrix (same for all local rows)

- d_nnz - array containing the number of block nonzeros in the various block rows of the in diagonal portion of the local (possibly different for each block row) or `NULL`.

- o_nz - number of block nonzeros per block row in the off-diagonal portion of local submatrix (same for all local rows).

- o_nnz - array containing the number of nonzeros in the various block rows of the off-diagonal portion of the local submatrix (possibly different for each block row) or `NULL`.

## Note

See `MatMPIBAIJSetPreallocation()` for more details on preallocation. If a scalar matrix (`MATAIJ`) is obtained with `DMSlicedGetMatrix()`, the correct preallocation will be set, respecting `DMSlicedSetBlockFills()`.

## See Also

`DM`, `DMSLICED`, `DMDestroy()`, `DMCreateGlobalVector()`, `MatMPIAIJSetPreallocation()`, `MatMPIBAIJSetPreallocation()`, `DMSlicedGetMatrix()`, `DMSlicedSetBlockFills()`

## Level

advanced

## Location

src/dm/impls/sliced/sliced.c

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