Skip to main content
`Ctrl`+`K`

# MatPreallocateLocation

An alternative to MatPreallocateSet() that puts the nonzero locations into the matrix if it exists

## Synopsis

    #include <petscmat.h>
    PetscErrorCode MatPreallocateLocations(Mat A,PetscInt row,PetscInt ncols,PetscInt *cols,PetscInt *dnz,PetscInt *onz)

Not Collective

## Input Parameters

- A - matrix

- row - row where values exist (must be local to this process)

- ncols - number of columns

- cols - columns with nonzeros

- dnz - the array that will be passed to the matrix preallocation routines

- onz - the other array passed to the matrix preallocation routines

(since v3.19)

## Notes

This routine is no longer needed since assembling matrices without explicit preallocation will not be slower than the use of this routine

Do not malloc or free `dnz` and `onz` that is handled internally by these routines

## Developer Note

This is a MACRO, not a function, because it uses a bunch of variables private to the MatPreallocation…. routines.

## See Also

Matrices, `MatPreallocateBegin()`, `MatPreallocateSet()`, `MatPreallocateSymmetricSetBlock()`, `MatPreallocateSetLocal()`, `MatPreallocateSymmetricSetLocalBlock()`

## Level

deprecated

## Location

include/petscmat.h

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