Skip to main content
`Ctrl`+`K`

# MatMPIAdjCreateNonemptySubcommMat

create the same `MATMPIADJ` matrix on a subcommunicator containing only processes owning a positive number of rows

## Synopsis

    #include "petscmat.h"
    PetscErrorCode MatMPIAdjCreateNonemptySubcommMat(Mat A, Mat *B)

Collective

## Input Parameter

- A - original `MATMPIADJ` matrix

## Output Parameter

- B - matrix on subcommunicator, `NULL` on MPI processes that own zero rows of `A`

## Note

The matrix `B` should be destroyed with `MatDestroy()`. The arrays are not copied, so `B` should be destroyed before `A` is destroyed.

## Developer Note

This function is mostly useful for internal use by mesh partitioning packages, such as ParMETIS that require that every process owns at least one row.

## See Also

Matrices, `Mat`, `MATMPIADJ`, `MatCreateMPIAdj()`

## Level

developer

## Location

src/mat/impls/adj/mpi/mpiadj.c

## Implementations

MatMPIAdjCreateNonemptySubcommMat_MPIAdj() in src/mat/impls/adj/mpi/mpiadj.c

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