:orphan:
# MATKAIJ
MATKAIJ = "kaij" - A matrix type to be used to evaluate matrices of form [I \otimes S + A \otimes T], where .vb S is a dense (p \times q) matrix, T is a dense (p \times q) matrix, A is an AIJ  (n \times n) matrix, and I is the identity matrix. .ve The resulting matrix is (np \times nq). S and T are always stored independently on all processes as `PetscScalar` arrays in column-major format.




## Note
A linear system with multiple right-hand sides, AX = B, can be expressed in the KAIJ-friendly form of (A \otimes I) x = b,
where x and b are column vectors containing the row-major representations of X and B.


## See Also
 [](ch_matrices), `Mat`, `MatKAIJSetAIJ()`, `MatKAIJSetS()`, `MatKAIJSetT()`, `MatKAIJGetAIJ()`, `MatKAIJGetS()`, `MatKAIJGetT()`, `MatCreateKAIJ()`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/mat/impls/kaij/kaij.c.html#MATKAIJ">src/mat/impls/kaij/kaij.c</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex77.c.html">src/ksp/ksp/tutorials/ex77.c</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/impls/kaij/kaij.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)  
