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 AIJ |
Commonly used for identical interpolations on each component of a multi-component vector |
|||
Kronecker product of sparse matrx 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 + U*C*V’ |
||||
FFT |
|
|
FFTW |
|
|
NVIDIA’s CuFFT |
NVIDIA GPUs |
||
|
|
FFTW |
Unevenly spaced FFT |
|
Hierarchical |
Htool |
|||
H_2 matrices |
||||
Transpose, virtual |
||||
Hermitian Transpose, virtual |
||||
Normal, A’*A, virtual |
|
|||
Hermitiona 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 |