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
MATNESTnr - number of nested row blocks
is_row - index sets for each nested row block, or
NULLto make contiguousnc - number of nested column blocks
is_col - index sets for each nested column block, or
NULLto make contiguousa - 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#
Examples#
src/ksp/ksp/tutorials/ex87.c
src/ksp/ksp/tutorials/ex27.c
src/ksp/ksp/tutorials/ex81a.c
src/snes/tutorials/ex73f90t.F90
src/ksp/ksp/tutorials/ex81.c
src/snes/tutorials/ex70.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages