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