|
votca 2026-dev
|
#include <bse.h>

Classes | |
| struct | options |
| struct | Interaction |
| struct | ExpectationValues |
| struct | DirectCaches |
Public Member Functions | |
| BSE (Logger &log, TCMatrix_gwbse &Mmn) | |
| void | configure (const options &opt, const Eigen::VectorXd &RPAEnergies, const Eigen::MatrixXd &Hqp_in) |
| void | setReactionField (const Eigen::MatrixXd &R, bool include_kreac) |
| Screen by a static polarizable environment (embedded BSE). | |
| Eigen::VectorXd | ReactionFieldExchange (const tools::EigenSystem &es, bool tda) const |
| void | configure_with_precomputed_screening (const options &opt, const Eigen::VectorXd &RPAEnergies, const Eigen::MatrixXd &Hqp_in, const Eigen::VectorXd &epsilon_0_inv) |
| void | Solve_singlets (Orbitals &orb) const |
| void | Solve_triplets (Orbitals &orb) const |
| Eigen::MatrixXd | getHqp () const |
| SingletOperator_TDA | getSingletOperator_TDA () const |
| TripletOperator_TDA | getTripletOperator_TDA () const |
| void | Analyze_singlets (std::vector< QMFragment< BSE_Population > > fragments, const Orbitals &orb) const |
| void | Analyze_triplets (std::vector< QMFragment< BSE_Population > > fragments, const Orbitals &orb) const |
| void | Perturbative_DynamicalScreening (const QMStateType &type, Orbitals &orb) |
Static Public Member Functions | |
| static void | setStateMatrixMemory (double bytes) |
Private Member Functions | |
| tools::EigenSystem | Solve_singlets_TDA () const |
| tools::EigenSystem | Solve_singlets_BTDA () const |
| tools::EigenSystem | Solve_triplets_TDA () const |
| tools::EigenSystem | Solve_triplets_BTDA () const |
| void | PrintWeights (const Eigen::VectorXd &weights) const |
| template<typename BSE_OPERATOR> | |
| void | configureBSEOperator (BSE_OPERATOR &H, std::shared_ptr< SymmetricTiles > cache=nullptr) const |
| void | DecideDirectCaches (bool coupling) const |
| void | ReleaseDirectCaches () const |
| template<typename BSE_OPERATOR> | |
| tools::EigenSystem | solve_hermitian (BSE_OPERATOR &h) const |
| template<typename BSE_OPERATOR_ApB, typename BSE_OPERATOR_AmB> | |
| tools::EigenSystem | Solve_nonhermitian (BSE_OPERATOR_ApB &apb, BSE_OPERATOR_AmB &) const |
| template<typename BSE_OPERATOR_A, typename BSE_OPERATOR_B> | |
| tools::EigenSystem | Solve_nonhermitian_Davidson (BSE_OPERATOR_A &Aop, BSE_OPERATOR_B &Bop) const |
| void | printFragInfo (const std::vector< QMFragment< BSE_Population > > &frags, Index state) const |
| void | printWeights (Index i_bse, double weight) const |
| void | RotateIntoScreeningFrame (const Eigen::MatrixXd &U) |
| void | MatchDressingToRoute () |
| SymmetricEigenSystem | ScreenedInteraction (const Eigen::VectorXd &RPAInputEnergies, double energy, DFTTimings &timings) const |
| Eigen::MatrixXd | DirectTermDensity (const std::vector< std::pair< const Eigen::VectorXd *, const Eigen::VectorXd * > > &pairs) const |
| Eigen::MatrixXd | CouplingTermDensity (const Eigen::VectorXd &Avec, const Eigen::VectorXd &Bvec) const |
| void | SetupDirectInteractionOperator (const Eigen::VectorXd &DFTenergies, double energy) |
| Eigen::MatrixXd | AdjustHqpSize (const Eigen::MatrixXd &Hqp_in, const Eigen::VectorXd &RPAInputEnergies) |
| Interaction | Analyze_eh_interaction (const QMStateType &type, const Orbitals &orb) const |
| template<typename BSE_OPERATOR> | |
| ExpectationValues | ExpectationValue_Operator (const QMStateType &type, const Orbitals &orb, const BSE_OPERATOR &H) const |
| tools::EigenSystem & | GetBSEEigenSystem (const QMStateType &type, Orbitals &orb) const |
| const tools::EigenSystem & | GetBSEEigenSystem (const QMStateType &type, const Orbitals &orb) const |
| std::string | StateEnergiesHeader (const QMStateType &type) const |
| std::string | StateShortLabel (const QMStateType &type) const |
| std::string | StateDynamicLabel (const QMStateType &type) const |
| double | ExchangePrefactor (const QMStateType &type) const |
Private Attributes | |
| options | opt_ |
| Logger & | log_ |
| Index | bse_vmax_ |
| Index | bse_cmin_ |
| Index | bse_size_ |
| Index | bse_vtotal_ |
| Index | bse_ctotal_ |
| Index | max_dyn_iter_ |
| double | dyn_tolerance_ |
| Eigen::VectorXd | epsilon_0_inv_ |
| TCMatrix_gwbse & | Mmn_ |
| Eigen::MatrixXd | Hqp_ |
| Eigen::MatrixXd | reaction_field_ |
| Eigen::MatrixXd | dressing_ |
| bool | include_kreac_ = true |
| DirectCaches | direct_caches_ |
Static Private Attributes | |
| static double | state_matrix_bytes_ = 1e9 |
|
inline |
|
private |
|
private |
| void votca::xtp::BSE::Analyze_singlets | ( | std::vector< QMFragment< BSE_Population > > | fragments, |
| const Orbitals & | orb ) const |
| void votca::xtp::BSE::Analyze_triplets | ( | std::vector< QMFragment< BSE_Population > > | fragments, |
| const Orbitals & | orb ) const |
| void votca::xtp::BSE::configure | ( | const options & | opt, |
| const Eigen::VectorXd & | RPAEnergies, | ||
| const Eigen::MatrixXd & | Hqp_in ) |
| void votca::xtp::BSE::configure_with_precomputed_screening | ( | const options & | opt, |
| const Eigen::VectorXd & | RPAEnergies, | ||
| const Eigen::MatrixXd & | Hqp_in, | ||
| const Eigen::VectorXd & | epsilon_0_inv ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
| SingletOperator_TDA votca::xtp::BSE::getSingletOperator_TDA | ( | ) | const |
| TripletOperator_TDA votca::xtp::BSE::getTripletOperator_TDA | ( | ) | const |
| void votca::xtp::BSE::Perturbative_DynamicalScreening | ( | const QMStateType & | type, |
| Orbitals & | orb ) |
|
private |
|
private |
|
private |
| Eigen::VectorXd votca::xtp::BSE::ReactionFieldExchange | ( | const tools::EigenSystem & | es, |
| bool | tda ) const |
|
private |
|
private |
| void votca::xtp::BSE::setReactionField | ( | const Eigen::MatrixXd & | R, |
| bool | include_kreac ) |
Screen by a static polarizable environment (embedded BSE).
R as for GW::setReactionField. Call before configure, which sets up the screened interaction. The kernel becomes
K = Kx[v] + K_reac[v_reac] + Kd[W_tot], W_tot = [(1 + R)^-1 + eps - 1]^-1 (in the metric of M),
Kd with the environment-screened W: the environment's response to the charge an excitation rearranges (state-specific in solvation terms). K_reac = (ia|v_reac|jb) has the index structure of Kx: the environment's response to the transition density, i.e. its Hartree part, which moves bright singlets (linear response in solvation terms). Triplets have no Kx and so no K_reac.
include_kreac = true runs the whole kernel on integrals dressed with (1 + R)^(1/2) (TCMatrix_gwbse::DressAuxIndex), where Kx + K_reac and Kd[W_tot] come out of the unchanged operators. false keeps them bare and diagonalizes W_tot itself instead of eps, so Kx stays v. Either way the first-order K_reac of each singlet is logged after solving. An empty R (the default) leaves everything as it was.
|
inlinestatic |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
mutableprivate |
|
private |
|
staticprivate |