One complex field matrix and its boundary/factorization metadata. More...
#include "solver_data.hpp"
Collaboration diagram for orb5x::Zbmat:Public Member Functions | |
| void | allocate_band (int kl, int ku, int n) |
| Allocate active band storage. | |
| void | clear_factorization () |
| Invalidate both primary and fallback factorization state after assembly changes. | |
| int | get_rank () const |
| Return the square dimension of active matrix storage. | |
| bool | has_matrix () const |
| Test whether active LAPACK storage is allocated. | |
| Zbmat () | |
| Construct an unallocated, unfactorized matrix descriptor. | |
Public Attributes | |
| Kokkos::View< Complex *** > | boundary_terms |
Explicit boundary blocks [term][term][inner/outer]. | |
| bool | is_allocated = false |
| Whether numerical matrix storage has been allocated. | |
| bool | is_factorized = false |
| Whether active numerical storage contains a factorization. | |
| int | mass_matrix = 0 |
0 standard mass operator; 1 first toroidal derivative. | |
| bool | nl_factorize = false |
| Whether this operator is factorized for solves. | |
| bool | nl_impose_bc = false |
| Whether radial boundary transforms apply. | |
| NSelMatrixType | nsel_type = NSelMatrixType::NSEL_PBMAT |
| Requested storage/factorization type. | |
| int | nterms = 0 |
| Number of assembled weak-form terms. | |
| int | nterms_boundary = 0 |
| Number of stored explicit boundary terms. | |
| bool | use_gb_fallback = false |
| Whether an SPD matrix was refactorized as general band. | |
| spclibs::ZGBMat | zgb |
| General complex band storage. | |
| spclibs::ZPBMat | zpb |
| Hermitian positive-definite packed-band storage. | |
One complex field matrix and its boundary/factorization metadata.
Exactly one of zpb or zgb is active. Positive-definite matrices use LAPACK packed-band Cholesky; nonsymmetric matrices use pivoted general-band LU. A failed SPD factorization may be represented by the general-band fallback while retaining the requested matrix type.
solver_data.F90, type zbmat.
|
inline |
Construct an unallocated, unfactorized matrix descriptor.
|
inline |
Allocate active band storage.
| [in] | kl | Number of subdiagonals (general-band path). |
| [in] | ku | Number of superdiagonals. |
| [in] | n | Square matrix dimension. |
References orb5x::spclibs::init(), is_allocated, is_factorized, orb5x::NSEL_PBMAT, nsel_type, nterms, zgb, and zpb.
|
inline |
Invalidate both primary and fallback factorization state after assembly changes.
References is_factorized, and use_gb_fallback.
|
inline |
Return the square dimension of active matrix storage.
References orb5x::NSEL_PBMAT, nsel_type, orb5x::spclibs::ZGBMat::rank, orb5x::spclibs::ZPBMat::rank, zgb, and zpb.
|
inline |
Test whether active LAPACK storage is allocated.
References orb5x::spclibs::ZGBMat::is_initialized(), orb5x::spclibs::ZPBMat::is_initialized(), orb5x::NSEL_PBMAT, nsel_type, zgb, and zpb.
| Kokkos::View<Complex***> orb5x::Zbmat::boundary_terms |
Explicit boundary blocks [term][term][inner/outer].
| bool orb5x::Zbmat::is_allocated = false |
Whether numerical matrix storage has been allocated.
Referenced by allocate_band().
| bool orb5x::Zbmat::is_factorized = false |
Whether active numerical storage contains a factorization.
Referenced by allocate_band(), and clear_factorization().
| int orb5x::Zbmat::mass_matrix = 0 |
0 standard mass operator; 1 first toroidal derivative.
| bool orb5x::Zbmat::nl_factorize = false |
Whether this operator is factorized for solves.
| bool orb5x::Zbmat::nl_impose_bc = false |
Whether radial boundary transforms apply.
| NSelMatrixType orb5x::Zbmat::nsel_type = NSelMatrixType::NSEL_PBMAT |
Requested storage/factorization type.
Referenced by allocate_band(), get_rank(), and has_matrix().
| int orb5x::Zbmat::nterms = 0 |
Number of assembled weak-form terms.
Referenced by allocate_band().
| int orb5x::Zbmat::nterms_boundary = 0 |
Number of stored explicit boundary terms.
| bool orb5x::Zbmat::use_gb_fallback = false |
Whether an SPD matrix was refactorized as general band.
Referenced by clear_factorization().
| spclibs::ZGBMat orb5x::Zbmat::zgb |
General complex band storage.
Referenced by allocate_band(), get_rank(), and has_matrix().
| spclibs::ZPBMat orb5x::Zbmat::zpb |
Hermitian positive-definite packed-band storage.
Referenced by allocate_band(), get_rank(), and has_matrix().