21#ifndef VOTCA_XTP_BSE_H
22#define VOTCA_XTP_BSE_H
33template <Index cqp, Index cx, Index cd, Index cd2>
68 const Eigen::MatrixXd& Hqp_in);
120 void PrintWeights(
const Eigen::VectorXd& weights)
const;
122 template <
typename BSE_OPERATOR>
125 template <
typename BSE_OPERATOR>
128 template <
typename BSE_OPERATOR_ApB,
typename BSE_OPERATOR_AmB>
130 BSE_OPERATOR_AmB&)
const;
132 template <
typename BSE_OPERATOR_A,
typename BSE_OPERATOR_B>
134 BSE_OPERATOR_B& Bop)
const;
143 const Eigen::VectorXd& RPAInputEnergies);
147 template <
typename BSE_OPERATOR>
152 template <
typename BSE_OPERATOR>
void Solve_singlets(Orbitals &orb) const
BSE(Logger &log, TCMatrix_gwbse &Mmn)
Eigen::MatrixXd getHqp() const
void printFragInfo(const std::vector< QMFragment< BSE_Population > > &frags, Index state) const
void PrintWeights(const Eigen::VectorXd &weights) const
void printWeights(Index i_bse, double weight) const
void Analyze_singlets(std::vector< QMFragment< BSE_Population > > fragments, const Orbitals &orb) const
tools::EigenSystem Solve_triplets_BTDA() const
TripletOperator_TDA getTripletOperator_TDA() const
SingletOperator_TDA getSingletOperator_TDA() const
ExpectationValues ExpectationValue_Operator_State(const QMState &state, const Orbitals &orb, const BSE_OPERATOR &H) const
tools::EigenSystem Solve_singlets_BTDA() const
void Perturbative_DynamicalScreening(const QMStateType &type, Orbitals &orb)
void Analyze_triplets(std::vector< QMFragment< BSE_Population > > fragments, const Orbitals &orb) const
void SetupDirectInteractionOperator(const Eigen::VectorXd &DFTenergies, double energy)
void configure(const options &opt, const Eigen::VectorXd &RPAEnergies, const Eigen::MatrixXd &Hqp_in)
Eigen::VectorXd epsilon_0_inv_
ExpectationValues ExpectationValue_Operator(const QMStateType &type, const Orbitals &orb, const BSE_OPERATOR &H) const
Interaction Analyze_eh_interaction(const QMStateType &type, const Orbitals &orb) const
tools::EigenSystem Solve_singlets_TDA() const
void configureBSEOperator(BSE_OPERATOR &H) const
tools::EigenSystem solve_hermitian(BSE_OPERATOR &h) const
tools::EigenSystem Solve_nonhermitian(BSE_OPERATOR_ApB &apb, BSE_OPERATOR_AmB &) const
void Solve_triplets(Orbitals &orb) const
tools::EigenSystem Solve_nonhermitian_Davidson(BSE_OPERATOR_A &Aop, BSE_OPERATOR_B &Bop) const
Eigen::MatrixXd AdjustHqpSize(const Eigen::MatrixXd &Hqp_in, const Eigen::VectorXd &RPAInputEnergies)
tools::EigenSystem Solve_triplets_TDA() const
Logger is used for thread-safe output of messages.
container for molecular orbitals
Identifier for QMstates. Strings like S1 are converted into enum +zero indexed int.
BSE_OPERATOR< 1, 2, 1, 0 > SingletOperator_TDA
BSE_OPERATOR< 1, 0, 1, 0 > TripletOperator_TDA
base class for all analysis tools
Eigen::VectorXd direct_term
Eigen::VectorXd cross_term
Eigen::VectorXd qp_contrib
Eigen::VectorXd exchange_contrib
Eigen::VectorXd direct_contrib
std::string davidson_tolerance
std::string davidson_update
std::string davidson_correction