21#ifndef VOTCA_XTP_RPA_H
22#define VOTCA_XTP_RPA_H
77 const Eigen::VectorXd& gwaenergies,
Index qpmin);
91 const double eta_ = 0.0001;
Wall-clock accounting for the parts of a DFT run.
Logger is used for thread-safe output of messages.
RPA(Logger &log, const TCMatrix_gwbse &Mmn)
Eigen::MatrixXd Calculate_H2p_ApB() const
Eigen::MatrixXd calculate_epsilon_i(double frequency) const
void ShiftUncorrectedEnergies(const Eigen::VectorXd &dftenergies, Index qpmin, Index gwsize)
Eigen::MatrixXd ResponseSum(const WeightedGram::WeightsFn &weights) const
OutOfWindowShift out_of_window_
void setRPAInputEnergies(const Eigen::VectorXd &rpaenergies)
Eigen::VectorXd energies_
void setTimings(DFTTimings *timings)
Times the dielectric-matrix builds in these timings (optional).
void VisitHoleVirtualRows(Index m_level, const WeightedGram::RowsVisitor &use) const
Eigen::MatrixXd calculate_epsilon(double frequency) const
Eigen::MatrixXd calculate_epsilon_r(double frequency) const
void setOutOfWindowShift(const OutOfWindowShift &shift)
How levels outside the GW window are shifted by UpdateRPAInputEnergies.
const TCMatrix_gwbse & Mmn_
SymmetricEigenSystem Diagonalize_H2p_C(const Eigen::MatrixXd &C) const
Eigen::VectorXd Calculate_H2p_AmB() const
void configure(Index homo, Index rpamin, Index rpamax)
const Eigen::VectorXd & getRPAInputEnergies() const
rpa_eigensolution Diagonalize_H2p() const
void UpdateRPAInputEnergies(const Eigen::VectorXd &dftenergies, const Eigen::VectorXd &gwaenergies, Index qpmin)
std::function< void(Index m, Eigen::VectorXd &w)> WeightsFn
Writes the weights of block m; their number is the number of rows.
std::function< void(const Eigen::Ref< const Eigen::MatrixXd > &)> RowsVisitor
Calls use(R_m); R_m may be a block of stored data or a temporary.
Provides a means for comparing floating point numbers.
How the RPA energies of levels outside the GW window are shifted.