MatSetVariableBlockSizes — PETSc 3.21.4 documentation

Skip to main content
`Ctrl`+`K`

# MatSetVariableBlockSizes

Sets diagonal point-blocks of the matrix that need not be of the same size

## Synopsis

    #include "petscmat.h"
    PetscErrorCode MatSetVariableBlockSizes(Mat mat, PetscInt nblocks, const PetscInt bsizes[])

Not Collective

## Input Parameters

- mat - the matrix

- nblocks - the number of blocks on this process, each block can only exist on a single process

- bsizes - the block sizes

## Notes

Currently used by `PCVPBJACOBI` for `MATAIJ` matrices

Each variable point-block set of degrees of freedom must live on a single MPI process. That is a point block cannot straddle two MPI processes.

## See Also

Matrices, `Mat`, `MatCreateSeqBAIJ()`, `MatCreateBAIJ()`, `MatGetBlockSize()`, `MatSetBlockSizes()`, `MatGetBlockSizes()`, `MatGetVariableBlockSizes()`, `MatComputeVariableBlockEnvelope()`, `PCVPBJACOBI`

## Level

intermediate

## Location

src/mat/interface/matrix.c

## Examples

src/ksp/ksp/tutorials/ex71.c

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