|
votca 2026-dev
|
Lowest roots of the full (non-TDA) BSE. More...
#include <bse_fullsolver.h>

Classes | |
| struct | Options |
Public Member Functions | |
| FullBSEDavidson (Logger &log, Options opt) | |
| Index | Iterations () const |
| Index | OperatorApplications () const |
| template<class OpA, class OpB> | |
| tools::EigenSystem | Solve (const OpA &A, const OpB &B, Index nroots) |
Private Member Functions | |
| template<class OpA, class OpB> | |
| void | Extend (const OpA &A, const OpB &B, Eigen::MatrixXd T, Eigen::MatrixXd &P, Eigen::MatrixXd &Q, Eigen::MatrixXd &V) |
| void | ProjectedRoots (const Eigen::MatrixXd &V, const Eigen::MatrixXd &P, const Eigen::MatrixXd &Q, Index nroots, Eigen::VectorXd &omega, Eigen::MatrixXd &x, Eigen::MatrixXd &y) const |
Static Private Member Functions | |
| static void | Collapse (Eigen::MatrixXd &V, Eigen::MatrixXd &P, Eigen::MatrixXd &Q, const Eigen::MatrixXd &x, const Eigen::MatrixXd &y) |
Private Attributes | |
| Logger & | log_ |
| Options | opt_ |
| Index | iterations_ = 0 |
| Index | applications_ = 0 |
Lowest roots of the full (non-TDA) BSE.
[ A B ] [X] [ 1 0 ] [X] [ B A ] [Y] = w [ 0 -1 ] [Y]
for real symmetric A, B with A-B and A+B positive definite, in the equivalent Hermitian form of Stratmann, Scuseria and Frisch (J. Chem. Phys. 109, 8218 (1998)):
(A+B)|X+Y> = w |X-Y>, (A-B)|X-Y> = w |X+Y>.
One subspace V carries both |X+Y> and |X-Y>. Per iteration, A and B are applied once each to the new vectors; the projected problem M- M+ x = w^2 x (M+- = V^T (A+-B) V) is solved through the Cholesky factor of M-, which is symmetric and gives real roots. Restarts collapse the subspace onto the current Ritz vectors without new operator products.
Throws std::runtime_error if the projected A-B is not positive definite or a projected root is not positive (an instability of the reference); callers can then fall back to a general non-Hermitian solver.
Definition at line 91 of file bse_fullsolver.h.
Definition at line 99 of file bse_fullsolver.h.
|
inlinestaticprivate |
Definition at line 352 of file bse_fullsolver.h.
|
inlineprivate |
Definition at line 267 of file bse_fullsolver.h.
|
inline |
Definition at line 101 of file bse_fullsolver.h.
|
inline |
Definition at line 102 of file bse_fullsolver.h.
|
inlineprivate |
Definition at line 319 of file bse_fullsolver.h.
|
inline |
Definition at line 105 of file bse_fullsolver.h.
|
private |
Definition at line 368 of file bse_fullsolver.h.
|
private |
Definition at line 367 of file bse_fullsolver.h.
|
private |
Definition at line 365 of file bse_fullsolver.h.
|
private |
Definition at line 366 of file bse_fullsolver.h.