Begins the block of code that will count the number of nonzeros per row in a matrix providing the data that one can use to correctly preallocate the matrix.


#include <petscmat.h>
PetscErrorCode MatPreallocateBegin(MPI_Comm comm, PetscInt nrows, PetscInt ncols, PetscInt *dnz, PetscInt *onz)


Input Parameters#

  • comm - the communicator that will share the eventually allocated matrix

  • nrows - the number of LOCAL rows in the matrix

  • ncols - the number of LOCAL columns in the matrix

Output Parameters#

  • 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)


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

This is a macro that handles its own error checking, it does not return an error code.

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 has a leading { that is closed by PetscPreallocateFinalize().

See Also#

Matrices, MatPreallocateEnd(), MatPreallocateSet(), MatPreallocateSymmetricSetBlock(), MatPreallocateSetLocal(), MatPreallocateSymmetricSetLocalBlock()





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