21#ifndef VOTCA_XTP_BSE_UKS_H
22#define VOTCA_XTP_BSE_UKS_H
59 const options& opt,
Index homo_alpha,
Index homo_beta,
60 const Eigen::VectorXd& RPAInputEnergiesAlpha,
61 const Eigen::VectorXd& RPAInputEnergiesBeta,
62 const Eigen::MatrixXd& Hqp_alpha_in,
const Eigen::MatrixXd& Hqp_beta_in,
63 const Eigen::VectorXd& epsilon_0_inv,
64 const Eigen::MatrixXd& epsilon_eigenvectors);
99 const Eigen::VectorXd& RPAInputEnergies,
103 const Eigen::VectorXd& RPAInputEnergiesAlpha,
104 const Eigen::VectorXd& RPAInputEnergiesBeta,
double energy);
106 template <
typename BSE_OPERATOR>
109 template <
typename BSE_OPERATOR>
113 template <
typename BSE_OPERATOR>
120 template <
typename BSE_OPERATOR>
123 template <
typename BSE_OPERATOR_A,
typename BSE_OPERATOR_B>
125 BSE_OPERATOR_B& Bop)
const;
const TCMatrix_gwbse_spin & Mmn_raw_
ExpectationValues ExpectationValue_Operator_State(Index state, const Orbitals &orb, const BSE_OPERATOR &H) const
tools::EigenSystem solve_hermitian(BSE_OPERATOR &h) const
void configure_with_precomputed_screening(const options &opt, Index homo_alpha, Index homo_beta, const Eigen::VectorXd &RPAInputEnergiesAlpha, const Eigen::VectorXd &RPAInputEnergiesBeta, const Eigen::MatrixXd &Hqp_alpha_in, const Eigen::MatrixXd &Hqp_beta_in, const Eigen::VectorXd &epsilon_0_inv, const Eigen::MatrixXd &epsilon_eigenvectors)
BSE_UKS(Logger &log, const TCMatrix_gwbse_spin &Mmn)
void configureBSEOperator(BSE_OPERATOR &H) const
void PrintWeightsUKS(const Eigen::VectorXd &coeffs) const
tools::EigenSystem Solve_nonhermitian_Davidson(BSE_OPERATOR_A &Aop, BSE_OPERATOR_B &Bop) const
Eigen::MatrixXd Hqp_beta_
Eigen::VectorXd epsilon_0_inv_
void Perturbative_DynamicalScreening(Orbitals &orb)
ExpectationValues ExpectationValue_Operator(const Orbitals &orb, const BSE_OPERATOR &H) const
Eigen::MatrixXd AdjustHqpSize(const Eigen::MatrixXd &Hqp_in, const Eigen::VectorXd &RPAInputEnergies, Index homo) const
tools::EigenSystem Solve_excitons_uks_BTDA() const
void SetupDirectInteractionOperator(const Eigen::VectorXd &RPAInputEnergiesAlpha, const Eigen::VectorXd &RPAInputEnergiesBeta, double energy)
void Solve_excitons_uks(Orbitals &orb) const
Eigen::MatrixXd Hqp_alpha_
void Analyze_excitons_uks(std::vector< QMFragment< BSE_Population > > fragments, const Orbitals &orb) const
tools::EigenSystem Solve_excitons_uks_TDA() const
Logger is used for thread-safe output of messages.
Container for molecular orbitals and derived one-particle data.
Provides a means for comparing floating point numbers.
Eigen::VectorXd cross_term
Eigen::VectorXd direct_term
std::string davidson_update
std::string davidson_tolerance
std::string davidson_correction