Skip to main content
`Ctrl`+`K`

# MatSetValuesBatch

Adds (`ADD_VALUES`) many blocks of values into a matrix at once. The blocks must all be square and the same size. Currently, this can only be called once and creates the given matrix.

## Synopsis

    #include "petscmat.h"
    PetscErrorCode MatSetValuesBatch(Mat mat, PetscInt nb, PetscInt bs, PetscInt rows[], const PetscScalar v[])

Not Collective

## Input Parameters

- mat - the matrix

- nb - the number of blocks

- bs - the number of rows (and columns) in each block

- rows - a concatenation of the rows for each block

- v - a concatenation of logically two-dimensional arrays of values

## Notes

`MatSetPreallocationCOO()` and `MatSetValuesCOO()` may be a better way to provide the values

In the future, we will extend this routine to handle rectangular blocks, and to allow multiple calls for a given matrix.

## See Also

Matrices, `Mat`, `MatSetOption()`, `MatAssemblyBegin()`, `MatAssemblyEnd()`, `MatSetValuesBlocked()`, `MatSetValuesLocal()`, `InsertMode`, `INSERT_VALUES`, `ADD_VALUES`, `MatSetValues()`, `MatSetPreallocationCOO()`, `MatSetValuesCOO()`

## Level

advanced

## Location

src/mat/interface/matrix.c

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