MatCreateRedundantMatrix#

Create redundant matrices and put them into processors of subcommunicators.

Synopsis#

#include "petscmat.h" 
PetscErrorCode MatCreateRedundantMatrix(Mat mat, PetscInt nsubcomm, MPI_Comm subcomm, MatReuse reuse, Mat *matredundant)

Collective

Input Parameters#

  • mat - the matrix

  • nsubcomm - the number of subcommunicators (= number of redundant parallel or sequential matrices)

  • subcomm - MPI communicator split from the communicator where mat resides in (or MPI_COMM_NULL if nsubcomm is used)

  • reuse - either MAT_INITIAL_MATRIX or MAT_REUSE_MATRIX

Output Parameter#

  • matredundant - redundant matrix

Notes#

MAT_REUSE_MATRIX can only be used when the nonzero structure of the original matrix has not changed from that last call to MatCreateRedundantMatrix().

This routine creates the duplicated matrices in the subcommunicators; you should NOT create them before calling it.

PetscSubcommCreate() can be used to manage the creation of the subcomm but need not be.

See Also#

Matrices, Mat, MatDestroy(), PetscSubcommCreate(), PetscSubcomm

Level#

advanced

Location#

src/mat/interface/matrix.c


Edit on GitLab

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