:orphan: # MATAIJCUSPARSE A matrix type to be used for sparse matrices; it is as same as `MATMPIAIJCUSPARSE`. A matrix type type whose data resides on NVIDIA GPUs. These matrices can be in either CSR, ELL, or Hybrid format. The ELL and HYB formats require CUDA 4.2 or later. All matrix calculations are performed on NVIDIA GPUs using the CuSPARSE library. This matrix type is identical to `MATSEQAIJCUSPARSE` when constructed with a single process communicator, and `MATMPIAIJCUSPARSE` otherwise. As a result, for single process communicators, `MatSeqAIJSetPreallocation()` is supported, and similarly `MatMPIAIJSetPreallocation()` is supported for communicators controlling multiple processes. It is recommended that you call both of the above preallocation routines for simplicity. ## Options Database Keys - ***-mat_type mpiaijcusparse -*** sets the matrix type to `MATMPIAIJCUSPARSE` - ***-mat_cusparse_storage_format csr -*** sets the storage format of diagonal and off-diagonal matrices. Other options include ell (ellpack) or hyb (hybrid). - ***-mat_cusparse_mult_diag_storage_format csr -*** sets the storage format of diagonal matrix. Other options include ell (ellpack) or hyb (hybrid). - ***-mat_cusparse_mult_offdiag_storage_format csr -*** sets the storage format of off-diagonal matrix. Other options include ell (ellpack) or hyb (hybrid). ## See Also [](ch_matrices), `Mat`, `MatCreateAIJCUSPARSE()`, `MATSEQAIJCUSPARSE`, `MATMPIAIJCUSPARSE`, `MatCreateSeqAIJCUSPARSE()`, `MatCUSPARSESetFormat()`, `MatCUSPARSEStorageFormat`, `MatCUSPARSEFormatOperation` ## Level beginner ## Location src/mat/impls/aij/mpi/mpicusparse/mpiaijcusparse.cu ## Examples src/ksp/ksp/tutorials/ex79.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/impls/aij/mpi/mpicusparse/mpiaijcusparse.cu) [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)