21#ifndef VOTCA_XTP_SIGMA_BASE_H
22#define VOTCA_XTP_SIGMA_BASE_H
79 const Eigen::MatrixXd& R = Eigen::MatrixXd())
const;
114 const Eigen::VectorXd& frequencies)
const;
170 virtual ScreeningData
ScreeningDump(
const Eigen::VectorXd& nu)
const;
173 Index gw_level,
double frequency)
const = 0;
175 double frequency)
const = 0;
180 Index gw_level,
const Eigen::VectorXd& frequencies)
const {
181 Eigen::VectorXd result(frequencies.size());
182 for (
Index i = 0; i < frequencies.size(); ++i) {
190 double frequency2)
const = 0;
218 static void FrameSums(
const Eigen::MatrixXd& a,
const Eigen::VectorXd& omegas,
230 const std::function<
void(
Index, Eigen::MatrixXd&)>& makeX)
const;
Wall-clock accounting for the parts of a DFT run.
bool keep_screening_data_
void setTimings(DFTTimings *timings)
Times the parts of PrepareScreening in these timings (optional).
virtual std::string ScreeningSummary() const
One line about the screening just prepared (empty if nothing to say).
virtual bool HasPoleForm() const
std::atomic< std::size_t > diag_eval_counter_
Eigen::MatrixXd CalcHartreeMatrix(const Eigen::MatrixXd &R=Eigen::MatrixXd()) const
void setPairContractionMemory(double block_bytes, double chunk_bytes)
Sigma_base(TCMatrix_gwbse &Mmn, const RPA &rpa)
static void FrameSums(const Eigen::MatrixXd &a, const Eigen::VectorXd &omegas, const Eigen::VectorXd &nu, ScreeningData &data)
std::size_t GetDiagEvalCounter() const
virtual Eigen::MatrixXd CalcCorrelationOffDiag(const Eigen::VectorXd &frequencies) const
virtual double CalcCorrelationDiagElementDerivative(Index gw_level, double frequency) const =0
Eigen::MatrixXd CalcCorrelationSRG(const Eigen::VectorXd &frequencies, double s) const
virtual ScreeningData ScreeningDump(const Eigen::VectorXd &nu) const
virtual double CalcCorrelationOffDiagElement(Index gw_level1, Index gw_level2, double frequency1, double frequency2) const =0
virtual DiagPoleForm PoleForm(Index gw_level) const
void configure(options opt)
virtual double CalcCorrelationDiagElement(Index gw_level, double frequency) const =0
virtual void PrepareScreening()=0
void setKeepScreeningData(bool keep)
virtual bool HasOffDiagonal() const
False if CalcCorrelationOffDiag only returns zeros (CDA).
Eigen::MatrixXd PairContraction(Index nrows, const std::function< void(Index, Eigen::MatrixXd &)> &makeX) const
virtual ~Sigma_base()=default
Eigen::VectorXd CalcCorrelationDiag(const Eigen::VectorXd &frequencies) const
Eigen::MatrixXd CalcReactionFieldMatrix(const Eigen::MatrixXd &R) const
Static self-energy of an environment reaction field: the COH+SEX pair for v_reac, in the QP window.
Eigen::MatrixXd CalcExchangeMatrix() const
void CountDiagEval() const
void ResetDiagEvalCounter() const
virtual Eigen::VectorXd CalcCorrelationDiagElements(Index gw_level, const Eigen::VectorXd &frequencies) const
Provides a means for comparing floating point numbers.
Pole sums of the exact (RPA spectral) correlation self-energy.
Eigen::MatrixXd frame_eps_inv_imag
Eigen::VectorXd frame_weights
Eigen::MatrixXd frame_moments
std::string quadrature_scheme