:orphan: # MatPreallocateLocation An alternative to MatPreallocateSet() that puts the nonzero locations into the matrix if it exists ## Synopsis ``` #include 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 This is a MACRO not a function because it uses a bunch of variables private to the MatPreallocation.... routines. ## See Also [](ch_matrices), `MatPreallocateBegin()`, `MatPreallocateSet()`, `MatPreallocateSymmetricSetBlock()`, `MatPreallocateSetLocal()`, `MatPreallocateSymmetricSetLocalBlock()` ## Level deprecated ## Location include/petscmat.h --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscmat.h) [Index of all Mat routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)