Distributed field-matrix storage, assembly, and factorization. More...
#include "prec_const.hpp"#include "spclibs/matrix.hpp"#include <Kokkos_Core.hpp>#include <vector>#include <complex>#include <memory>#include <unordered_map>
Include dependency graph for solver_data.hpp:
This graph shows which files directly or indirectly include this file:Classes | |
| struct | orb5x::ContiEq |
| Matrix numbers contributing to the electron continuity equation. More... | |
| struct | orb5x::MatArray |
| Sparse associative equivalent of the Fortran two-dimensional matrix array. More... | |
| struct | orb5x::MatPropertyTemplate |
| Mode-independent construction policy for one matrix number. More... | |
| struct | orb5x::OhmEq |
| Electrostatic-potential matrix numbers in the Ohm equation. More... | |
| struct | orb5x::PairHash |
Hashes (global toroidal mode, matrix number) keys. More... | |
| struct | orb5x::PressEq |
| Electrostatic-potential matrix numbers in the pressure equation. More... | |
| struct | orb5x::Zbmat |
| One complex field matrix and its boundary/factorization metadata. More... | |
Namespaces | |
| namespace | orb5x |
| Public C++ interface of the ORB5X gyrokinetic application. | |
Enumerations | |
| enum class | orb5x::NSelMatrixType { orb5x::NSEL_GBMAT = 0 , orb5x::NSEL_PBMAT = 1 } |
| LAPACK storage/factorization selected for one field matrix. More... | |
Functions | |
| void | orb5x::allocate_matrix (int globalk, int matnum, int kl, int ku, int n) |
| Allocate numerical band storage for a registered matrix. | |
| void | orb5x::bsolve (const Zbmat &mat, Complex *rhs, int nrhs=1) |
Overwrite rhs with solutions of the factorized system \(A X=B\). | |
| void | orb5x::defmat_disp () |
| Define required matrix-number slots from the configured physics model. | |
| void | orb5x::factorize_matrix (Zbmat &mat, int nmat=-1, int matnum=-1, const char *context="") |
Factorize mat in place using Cholesky or pivoted band LU. | |
| Zbmat * | orb5x::get_matrix (int globalk, int matnum) |
| Return or lazily create metadata for one mode/matrix pair. | |
| void | orb5x::init_solver_data () |
| Clear and initialize matrix-number bookkeeping. | |
| void | orb5x::printmat () |
| Print the configured matrix-number registry on the reporting rank. | |
| void | orb5x::setmat (bool lapl_boundary_terms) |
| Assign mode-independent storage, factorization, and boundary policies. | |
| void | orb5x::updtmat (Zbmat &mat, int row, int col, Complex val) |
| Accumulate a value into a logical complex band-matrix element. | |
| void | orb5x::vmx (const Zbmat &mat, const Kokkos::View< Complex * > &x, Kokkos::View< Complex * > &y) |
| Compute \(y=A x\) with the unfactorized logical band matrix. | |
Variables | |
| MatArray | orb5x::MATS |
Process-wide solver matrix registry, matching Fortran MATS. | |
Distributed field-matrix storage, assembly, and factorization.
Defines matrix properties and complex band/dense blocks, with host LAPACK factorization and Kokkos-view RHS/vector interfaces.