petsc-3.10.5 2019-03-28
Report Typos and Errors

# MATIS

MATIS = "is" - A matrix type to be used for using the non-overlapping domain decomposition methods (e.g. PCBDDC or KSPFETIDP). This stores the matrices in globally unassembled form. Each processor assembles only its local Neumann problem and the parallel matrix vector product is handled "implicitly".

### Operations Provided

| MatMult() | - . MatMultAdd()
| MatMultTranspose() | - . MatMultTransposeAdd()
| MatZeroEntries() | - . MatSetOption()
| MatZeroRows() | - . MatSetValues()
| MatSetValuesBlocked() | - . MatSetValuesLocal()
| MatSetValuesBlockedLocal() | - . MatScale()
| MatGetDiagonal() | - . MatMissingDiagonal()
| MatDuplicate() | - . MatCopy()
| MatAXPY() | - . MatCreateSubMatrix()
| MatGetLocalSubMatrix() | - . MatTranspose()
| MatPtAP() (with P of AIJ type) | - - MatSetLocalToGlobalMapping()

### Options Database Keys

| -mat_type is | - sets the matrix type to "is" during a call to MatSetFromOptions()
| -matis_fixempty | - Fixes local matrices in case of empty local rows/columns.
| -matis_storel2l | - stores the local-to-local operators generated by the Galerkin process of MatPtAP().

### Notes

Options prefix for the inner matrix are given by -is_mat_xxx

You must call MatSetLocalToGlobalMapping() before using this matrix type.

You can do matrix preallocation on the local matrix after you obtain it with MatISGetLocalMat(); otherwise, you could use MatISSetPreallocation()

### See Also

Mat, MatISGetLocalMat(), MatSetLocalToGlobalMapping(), MatISSetPreallocation(), MatCreateIS(), PCBDDC, KSPFETIDP

### Level

advanced

### Location

src/mat/impls/is/matis.c

### Examples

src/ksp/ksp/examples/tutorials/ex29.c.html
src/ksp/ksp/examples/tutorials/ex34.c.html
src/ksp/ksp/examples/tutorials/ex72.c.html
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages