:orphan: # MatSetValuesIS Inserts or adds a block of values into a matrix using an `IS` to indicate the rows and columns These values may be cached, so `MatAssemblyBegin()` and `MatAssemblyEnd()` MUST be called after all calls to `MatSetValues()` have been completed. ## Synopsis ``` #include "petscmat.h" PetscErrorCode MatSetValuesIS(Mat mat, IS ism, IS isn, const PetscScalar v[], InsertMode addv) ``` Not Collective ## Input Parameters - ***mat -*** the matrix - ***v -*** a logically two-dimensional array of values - ***ism -*** the rows to provide - ***isn -*** the columns to provide - ***addv -*** either `ADD_VALUES` to add values to any existing entries, or `INSERT_VALUES` to replace existing entries with new values ## Notes By default the values, `v`, are stored row-oriented. See `MatSetOption()` for other options. Calls to `MatSetValues()` with the `INSERT_VALUES` and `ADD_VALUES` options cannot be mixed without intervening calls to the assembly routines. `MatSetValues()` uses 0-based row and column numbers in Fortran as well as in C. Negative indices may be passed in `ism` and `isn`, these rows and columns are simply ignored. This allows easily inserting element stiffness matrices with homogeneous Dirchlet boundary conditions that you don't want represented in the matrix. ## Efficiency Alert The routine `MatSetValuesBlocked()` may offer much better efficiency for users of block sparse formats (`MATSEQBAIJ` and `MATMPIBAIJ`). This is currently not optimized for any particular `ISType` ## Developer Notes This is labeled with C so does not automatically generate Fortran stubs and interfaces because it requires multiple Fortran interfaces depending on which arguments are scalar or arrays. ## See Also [](ch_matrices), `Mat`, `MatSetOption()`, `MatSetValues()`, `MatAssemblyBegin()`, `MatAssemblyEnd()`, `MatSetValuesBlocked()`, `MatSetValuesLocal()`, `InsertMode`, `INSERT_VALUES`, `ADD_VALUES`, `MatSetValues()` ## Level beginner ## Location src/mat/interface/matrix.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/interface/matrix.c) [Index of all Mat routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)