Summary of Matrix Types Available In PETSc#
Format |
Matrix Types |
Constructor |
External Packages |
Details |
---|---|---|---|---|
CSR |
Compressed sparse row |
|||
Intel’s MKL, OpenOne API |
OpenMP support |
|||
SIMD acceleration |
||||
Vectorized version |
||||
NVIDIA’s CuSparse library |
NVIDIA GPU acceleration |
|||
Kokkos |
GPU acceleration |
|||
Constant row length |
Vectorized version |
|||
Multiple applications of single |
Commonly used for identical interpolations on each component of a multi-component vector |
|||
Kronecker product of sparse matrix $A$; $ I otimes S + A otimes T $ |
||||
Sliced Ellpack |
SIMD and GPU acceleration |
|||
Block CSR |
Block compressed sparse row |
|||
Symmetric Block CSR |
Upper triangular compressed sparse row |
|||
Dense |
Row oriented storage |
|||
|
Elemental by Jack Poulson |
Block cyclic storage |
||
ScaLAPACK |
Block cyclic storage |
|||
NVIDIA GPU Acceleration |
||||
|
Provides only matrix-vector products |
|||
User provided operations |
||||
Low rank updates |
|
|
limited-memory BFGS style matrices |
|
$A + UCV^T$ |
||||
FFT |
FFTW |
|||
|
NVIDIA’s CuFFT |
NVIDIA GPUs |
||
Hierarchical |
Htool |
|||
H_2 matrices |
||||
Transpose, virtual |
||||
Hermitian Transpose, virtual |
||||
Normal, A’*A, virtual |
||||
Hermitian Normal, A’*A, virtual |
||||
Schur complement |
||||
Sub-matrix, virtual |
Provides |
|||
|
For use in matrix assembly |
|||
Nested matrix |
||||
Scatter operator |
||||
Centering operator |
|
I - (1/N) * ones*ones’ |
||
Block matrix |