Summary of Matrix Types Available In PETSc#
Format |
Matrix Types |
Constructor |
External Packages |
Details |
---|---|---|---|---|
CSR |
Compressed sparse row |
|||
Intel oneAPI MKL |
OpenMP support |
|||
SIMD acceleration |
||||
Vectorized version |
||||
NVIDIA 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 |
|||
\(\mathcal H^2\) matrices |
||||
Transpose, \(A^T\), virtual |
||||
Hermitian Transpose, \(A^H\), virtual |
||||
Normal, \(A^TA\), virtual |
||||
Hermitian Normal, \(A^HA\), virtual |
||||
Schur complement |
||||
Sub-matrix, virtual |
Provides |
|||
|
For use in matrix assembly |
|||
Nested matrix |
||||
Scatter operator |
||||
Centering operator |
|
\(I - \frac{1}{N}e e^T\), \(e=[1,\dots,1]^T\) |
||
Block matrix |