Skip to main content
`Ctrl`+`K`

# MatCreateBlockMat

Creates a new matrix in which each block contains a uniform-size sequential `Mat` object

## Synopsis

    #include "petscmat.h"
    PetscErrorCode MatCreateBlockMat(MPI_Comm comm, PetscInt m, PetscInt n, PetscInt bs, PetscInt nz, PetscInt *nnz, Mat *A)

Collective

## Input Parameters

- comm - MPI communicator

- m - number of rows

- n - number of columns

- bs - size of each submatrix

- nz - expected maximum number of nonzero blocks in row (use `PETSC_DEFAULT` if not known)

- nnz - expected number of nonzers per block row if known (use `NULL` otherwise)

## Output Parameter

- A - the matrix

## Notes

Matrices of this type are nominally-sparse matrices in which each “entry” is a `Mat` object. Each `Mat` must have the same size and be sequential. The local and global sizes must be compatible with this decomposition.

For matrices containing parallel submatrices and variable block sizes, see `MATNEST`.

## Developer Notes

I don’t like the name, it is not `MATNESTMAT`

## See Also

Matrices, `Mat`, `MATBLOCKMAT`, `MatCreateNest()`

## Level

intermediate

## Location

src/mat/impls/blockmat/seq/blockmat.c

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