|
ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
|
General Band Matrix (LAPACK GB storage format). More...
#include "matrix.hpp"
Public Member Functions | |
| GBMat ()=default | |
| bool | is_initialized () const |
| Check if matrix is initialized. | |
| int | lda () const |
| Get leading dimension of storage array. | |
Public Attributes | |
| int | kl = 0 |
| Number of subdiagonals (lower bandwidth). | |
| int | kmat = 0 |
| Matrix identifier. | |
| int | ku = 0 |
| Number of superdiagonals (upper bandwidth). | |
| int | mrows = 0 |
| Number of rows. | |
| int | ncols = 0 |
| Number of columns. | |
| int | nterms = 0 |
| Number of non-zero terms (informational). | |
| std::vector< int > | piv |
| Pivot indices from LU factorization. | |
| int | rank = 0 |
| Matrix rank (typically = ncols for square matrices). | |
| Kokkos::View< Real **, Kokkos::HostSpace > | val |
| Matrix values in LAPACK band storage. | |
General Band Matrix (LAPACK GB storage format).
Storage format for LAPACK band matrix routines (DGBTRF, DGBTRS, DGBMV). The matrix is stored in a 2D array with dimensions (2*kl+ku+1, n).
For a matrix element A(i,j): val(kl+ku+i-j, j) = A(i,j) for max(0,j-ku) <= i <= min(n-1,j+kl)
The extra kl rows at the top are used for fill-in during LU factorization.
|
default |
|
inline |
Check if matrix is initialized.
References val.
|
inline |
| int orb5x::spclibs::GBMat::kl = 0 |
Number of subdiagonals (lower bandwidth).
Referenced by lda().
| int orb5x::spclibs::GBMat::kmat = 0 |
Matrix identifier.
| int orb5x::spclibs::GBMat::ku = 0 |
Number of superdiagonals (upper bandwidth).
Referenced by lda().
| int orb5x::spclibs::GBMat::mrows = 0 |
Number of rows.
| int orb5x::spclibs::GBMat::ncols = 0 |
Number of columns.
| int orb5x::spclibs::GBMat::nterms = 0 |
Number of non-zero terms (informational).
| std::vector<int> orb5x::spclibs::GBMat::piv |
Pivot indices from LU factorization.
| int orb5x::spclibs::GBMat::rank = 0 |
Matrix rank (typically = ncols for square matrices).
| Kokkos::View<Real**, Kokkos::HostSpace> orb5x::spclibs::GBMat::val |
Matrix values in LAPACK band storage.
Referenced by is_initialized().