MatCreateNest#

Creates a new MATNEST matrix containing several nested submatrices, each stored separately

Synopsis#

#include "petscmat.h"   
PetscErrorCode MatCreateNest(MPI_Comm comm, PetscInt nr, const IS is_row[], PetscInt nc, const IS is_col[], const Mat a[], Mat *B)

Collective

Input Parameters#

  • comm - Communicator for the new MATNEST

  • nr - number of nested row blocks

  • is_row - index sets for each nested row block, or NULL to make contiguous

  • nc - number of nested column blocks

  • is_col - index sets for each nested column block, or NULL to make contiguous

  • a - array of nr*nc submatrices, empty submatrices can be passed using NULL

Output Parameter#

  • B - new matrix

Note#

In both C and Fortran, a must be a row-major order array holding references to the matrices. For instance, to represent the matrix \(\begin{bmatrix} A_{11} & A_{12} \\ A_{21} & A_{22}\end{bmatrix}\) one should use Mat a[4]={A11,A12,A21,A22}.

See Also#

Matrices, Mat, MATNEST, MatCreate(), VecCreateNest(), DMCreateMatrix(), MatNestSetSubMat(), MatNestGetSubMat(), MatNestGetLocalISs(), MatNestGetSize(), MatNestGetISs(), MatNestSetSubMats(), MatNestGetSubMats()

Level#

advanced

Location#

src/mat/impls/nest/matnest.c

Examples#

src/ksp/ksp/tutorials/ex27.c
src/ksp/ksp/tutorials/ex87.c
src/snes/tutorials/ex70.c
src/ksp/ksp/tutorials/ex81.c


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