votca 2026-dev
Loading...
Searching...
No Matches
votca::xtp::GW_UKS Class Reference

#include <gw_uks.h>

Collaboration diagram for votca::xtp::GW_UKS:

Classes

struct  options
class  QPFunc

Public Member Functions

 GW_UKS (Logger &log, TCMatrix_gwbse_spin &Mmn, const Eigen::MatrixXd &vxc_alpha, const Eigen::MatrixXd &vxc_beta, const Eigen::VectorXd &dft_energies_alpha, const Eigen::VectorXd &dft_energies_beta)
void configure (const options &opt)
void CalculateGWPerturbation ()
void CalculateHQP ()
Eigen::VectorXd getGWAResultsAlpha () const
Eigen::VectorXd getGWAResultsBeta () const
const Eigen::VectorXd & RPAInputEnergiesAlpha () const
const Eigen::VectorXd & RPAInputEnergiesBeta () const
Eigen::MatrixXd getHQPAlpha () const
Eigen::MatrixXd getHQPBeta () const
Eigen::SelfAdjointEigenSolver< Eigen::MatrixXd > DiagonalizeQPHamiltonianAlpha () const
Eigen::SelfAdjointEigenSolver< Eigen::MatrixXd > DiagonalizeQPHamiltonianBeta () const

Private Types

enum class  Spin { Alpha , Beta }
using EvalStage = qp_solver::EvalStage
using QPStats = qp_solver::Stats
using QPRootCandidate = qp_solver::RootCandidate
using QPWindowDiagnostics = qp_solver::WindowDiagnostics

Private Member Functions

const Eigen::VectorXd & DftEnergies (Spin spin) const
const Eigen::MatrixXd & Vxc (Spin spin) const
Eigen::MatrixXd & SigmaX (Spin spin)
Eigen::MatrixXd & SigmaC (Spin spin)
const Eigen::MatrixXd & SigmaX (Spin spin) const
const Eigen::MatrixXd & SigmaC (Spin spin) const
Sigma_base_UKSSigmaEvaluator (Spin spin)
const Sigma_base_UKSSigmaEvaluator (Spin spin) const
Index Homo (Spin spin) const
const char * SpinName (Spin spin) const
Eigen::VectorXd ScissorShift_DFTlevel (const Eigen::VectorXd &dft_energies, Index homo) const
double CalcSpinHomoLumoShift (const Eigen::VectorXd &frequencies, Spin spin) const
void PrintGWA_Energies (Spin spin) const
void PrintQP_Energies (Spin spin, const Eigen::VectorXd &qp_diag_energies) const
Eigen::VectorXd SolveQP (Spin spin, const Eigen::VectorXd &frequencies) const
boost::optional< double > SolveQP_Grid (Spin spin, double intercept0, double frequency0, Index gw_level, QPStats *stats=nullptr) const
boost::optional< double > SolveQP_Grid_Windowed (Spin spin, double intercept0, double frequency0, Index gw_level, double left_limit, double right_limit, bool allow_rejected_return=true, QPStats *stats=nullptr) const
boost::optional< double > SolveQP_Grid_Windowed_Adaptive (Spin spin, double intercept0, double frequency0, Index gw_level, double left_limit, double right_limit, bool allow_rejected_return=true, QPStats *stats=nullptr) const
boost::optional< double > SolveQP_Grid_Windowed_Dense (Spin spin, double intercept0, double frequency0, Index gw_level, double left_limit, double right_limit, bool allow_rejected_return=true, QPStats *stats=nullptr) const
boost::optional< double > SolveQP_FixedPoint (Spin spin, double intercept0, double frequency0, Index gw_level, QPStats *stats=nullptr) const
boost::optional< double > SolveQP_Linearisation (Spin spin, double intercept0, double frequency0, Index gw_level, QPStats *stats=nullptr) const
bool Converged (const Eigen::VectorXd &e1, const Eigen::VectorXd &e2, double epsilon) const
boost::optional< QPRootCandidateRefineQPInterval (double lowerbound, double f_lowerbound, double upperbound, double f_upperbound, const QPFunc &f, double reference) const
std::string LevelLabel (Spin spin, Index level) const
const char * OccupationTag (Spin spin, Index level) const

Private Attributes

PPM ppm_
Index qptotal_ = 0
options opt_
Loggerlog_
Index gw_sc_iteration_ = 0
TCMatrix_gwbse_spinMmn_
const Eigen::MatrixXd & vxc_alpha_
const Eigen::MatrixXd & vxc_beta_
const Eigen::VectorXd & dft_energies_alpha_
const Eigen::VectorXd & dft_energies_beta_
RPA_UKS rpa_
std::unique_ptr< Sigma_base_UKSsigma_alpha_
std::unique_ptr< Sigma_base_UKSsigma_beta_
Eigen::MatrixXd Sigma_x_alpha_
Eigen::MatrixXd Sigma_x_beta_
Eigen::MatrixXd Sigma_c_alpha_
Eigen::MatrixXd Sigma_c_beta_

Detailed Description

Definition at line 25 of file gw_uks.h.

Member Typedef Documentation

◆ EvalStage

Definition at line 27 of file gw_uks.h.

◆ QPRootCandidate

Definition at line 29 of file gw_uks.h.

◆ QPStats

Definition at line 28 of file gw_uks.h.

◆ QPWindowDiagnostics

Member Enumeration Documentation

◆ Spin

enum class votca::xtp::GW_UKS::Spin
strongprivate
Enumerator
Alpha 
Beta 

Definition at line 102 of file gw_uks.h.

Constructor & Destructor Documentation

◆ GW_UKS()

votca::xtp::GW_UKS::GW_UKS ( Logger & log,
TCMatrix_gwbse_spin & Mmn,
const Eigen::MatrixXd & vxc_alpha,
const Eigen::MatrixXd & vxc_beta,
const Eigen::VectorXd & dft_energies_alpha,
const Eigen::VectorXd & dft_energies_beta )

Definition at line 25 of file gw_uks.cc.

Member Function Documentation

◆ CalcSpinHomoLumoShift()

double votca::xtp::GW_UKS::CalcSpinHomoLumoShift ( const Eigen::VectorXd & frequencies,
Spin spin ) const
private

Definition at line 178 of file gw_uks.cc.

◆ CalculateGWPerturbation()

void votca::xtp::GW_UKS::CalculateGWPerturbation ( )

Definition at line 188 of file gw_uks.cc.

◆ CalculateHQP()

void votca::xtp::GW_UKS::CalculateHQP ( )

Definition at line 758 of file gw_uks.cc.

◆ configure()

void votca::xtp::GW_UKS::configure ( const options & opt)

Definition at line 38 of file gw_uks.cc.

◆ Converged()

bool votca::xtp::GW_UKS::Converged ( const Eigen::VectorXd & e1,
const Eigen::VectorXd & e2,
double epsilon ) const
private

Definition at line 749 of file gw_uks.cc.

◆ DftEnergies()

const Eigen::VectorXd & votca::xtp::GW_UKS::DftEnergies ( Spin spin) const
private

Definition at line 125 of file gw_uks.cc.

◆ DiagonalizeQPHamiltonianAlpha()

Eigen::SelfAdjointEigenSolver< Eigen::MatrixXd > votca::xtp::GW_UKS::DiagonalizeQPHamiltonianAlpha ( ) const

Definition at line 779 of file gw_uks.cc.

◆ DiagonalizeQPHamiltonianBeta()

Eigen::SelfAdjointEigenSolver< Eigen::MatrixXd > votca::xtp::GW_UKS::DiagonalizeQPHamiltonianBeta ( ) const

Definition at line 786 of file gw_uks.cc.

◆ getGWAResultsAlpha()

Eigen::VectorXd votca::xtp::GW_UKS::getGWAResultsAlpha ( ) const

Definition at line 297 of file gw_uks.cc.

◆ getGWAResultsBeta()

Eigen::VectorXd votca::xtp::GW_UKS::getGWAResultsBeta ( ) const

Definition at line 302 of file gw_uks.cc.

◆ getHQPAlpha()

Eigen::MatrixXd votca::xtp::GW_UKS::getHQPAlpha ( ) const

Definition at line 767 of file gw_uks.cc.

◆ getHQPBeta()

Eigen::MatrixXd votca::xtp::GW_UKS::getHQPBeta ( ) const

Definition at line 772 of file gw_uks.cc.

◆ Homo()

Index votca::xtp::GW_UKS::Homo ( Spin spin) const
private

Definition at line 149 of file gw_uks.cc.

◆ LevelLabel()

std::string votca::xtp::GW_UKS::LevelLabel ( Spin spin,
Index level ) const
private

Definition at line 156 of file gw_uks.cc.

◆ OccupationTag()

const char * votca::xtp::GW_UKS::OccupationTag ( Spin spin,
Index level ) const
private

Definition at line 166 of file gw_uks.cc.

◆ PrintGWA_Energies()

void votca::xtp::GW_UKS::PrintGWA_Energies ( Spin spin) const
private

Definition at line 792 of file gw_uks.cc.

◆ PrintQP_Energies()

void votca::xtp::GW_UKS::PrintQP_Energies ( Spin spin,
const Eigen::VectorXd & qp_diag_energies ) const
private

Definition at line 832 of file gw_uks.cc.

◆ RefineQPInterval()

boost::optional< QPRootCandidate > votca::xtp::GW_UKS::RefineQPInterval ( double lowerbound,
double f_lowerbound,
double upperbound,
double f_upperbound,
const QPFunc & f,
double reference ) const
private

◆ RPAInputEnergiesAlpha()

const Eigen::VectorXd & votca::xtp::GW_UKS::RPAInputEnergiesAlpha ( ) const

Definition at line 307 of file gw_uks.cc.

◆ RPAInputEnergiesBeta()

const Eigen::VectorXd & votca::xtp::GW_UKS::RPAInputEnergiesBeta ( ) const

Definition at line 310 of file gw_uks.cc.

◆ ScissorShift_DFTlevel()

Eigen::VectorXd votca::xtp::GW_UKS::ScissorShift_DFTlevel ( const Eigen::VectorXd & dft_energies,
Index homo ) const
private

Definition at line 170 of file gw_uks.cc.

◆ SigmaC() [1/2]

Eigen::MatrixXd & votca::xtp::GW_UKS::SigmaC ( Spin spin)
private

Definition at line 134 of file gw_uks.cc.

◆ SigmaC() [2/2]

const Eigen::MatrixXd & votca::xtp::GW_UKS::SigmaC ( Spin spin) const
private

Definition at line 140 of file gw_uks.cc.

◆ SigmaEvaluator() [1/2]

Sigma_base_UKS & votca::xtp::GW_UKS::SigmaEvaluator ( Spin spin)
private

Definition at line 143 of file gw_uks.cc.

◆ SigmaEvaluator() [2/2]

const Sigma_base_UKS & votca::xtp::GW_UKS::SigmaEvaluator ( Spin spin) const
private

Definition at line 146 of file gw_uks.cc.

◆ SigmaX() [1/2]

Eigen::MatrixXd & votca::xtp::GW_UKS::SigmaX ( Spin spin)
private

Definition at line 131 of file gw_uks.cc.

◆ SigmaX() [2/2]

const Eigen::MatrixXd & votca::xtp::GW_UKS::SigmaX ( Spin spin) const
private

Definition at line 137 of file gw_uks.cc.

◆ SolveQP()

Eigen::VectorXd votca::xtp::GW_UKS::SolveQP ( Spin spin,
const Eigen::VectorXd & frequencies ) const
private

Definition at line 314 of file gw_uks.cc.

◆ SolveQP_FixedPoint()

boost::optional< double > votca::xtp::GW_UKS::SolveQP_FixedPoint ( Spin spin,
double intercept0,
double frequency0,
Index gw_level,
QPStats * stats = nullptr ) const
private

Definition at line 727 of file gw_uks.cc.

◆ SolveQP_Grid()

boost::optional< double > votca::xtp::GW_UKS::SolveQP_Grid ( Spin spin,
double intercept0,
double frequency0,
Index gw_level,
QPStats * stats = nullptr ) const
private

Definition at line 409 of file gw_uks.cc.

◆ SolveQP_Grid_Windowed()

boost::optional< double > votca::xtp::GW_UKS::SolveQP_Grid_Windowed ( Spin spin,
double intercept0,
double frequency0,
Index gw_level,
double left_limit,
double right_limit,
bool allow_rejected_return = true,
QPStats * stats = nullptr ) const
private

Definition at line 671 of file gw_uks.cc.

◆ SolveQP_Grid_Windowed_Adaptive()

boost::optional< double > votca::xtp::GW_UKS::SolveQP_Grid_Windowed_Adaptive ( Spin spin,
double intercept0,
double frequency0,
Index gw_level,
double left_limit,
double right_limit,
bool allow_rejected_return = true,
QPStats * stats = nullptr ) const
private

Definition at line 473 of file gw_uks.cc.

◆ SolveQP_Grid_Windowed_Dense()

boost::optional< double > votca::xtp::GW_UKS::SolveQP_Grid_Windowed_Dense ( Spin spin,
double intercept0,
double frequency0,
Index gw_level,
double left_limit,
double right_limit,
bool allow_rejected_return = true,
QPStats * stats = nullptr ) const
private

Definition at line 548 of file gw_uks.cc.

◆ SolveQP_Linearisation()

boost::optional< double > votca::xtp::GW_UKS::SolveQP_Linearisation ( Spin spin,
double intercept0,
double frequency0,
Index gw_level,
QPStats * stats = nullptr ) const
private

Definition at line 385 of file gw_uks.cc.

◆ SpinName()

const char * votca::xtp::GW_UKS::SpinName ( Spin spin) const
private

Definition at line 152 of file gw_uks.cc.

◆ Vxc()

const Eigen::MatrixXd & votca::xtp::GW_UKS::Vxc ( Spin spin) const
private

Definition at line 128 of file gw_uks.cc.

Member Data Documentation

◆ dft_energies_alpha_

const Eigen::VectorXd& votca::xtp::GW_UKS::dft_energies_alpha_
private

Definition at line 244 of file gw_uks.h.

◆ dft_energies_beta_

const Eigen::VectorXd& votca::xtp::GW_UKS::dft_energies_beta_
private

Definition at line 245 of file gw_uks.h.

◆ gw_sc_iteration_

Index votca::xtp::GW_UKS::gw_sc_iteration_ = 0
private

Definition at line 240 of file gw_uks.h.

◆ log_

Logger& votca::xtp::GW_UKS::log_
private

Definition at line 239 of file gw_uks.h.

◆ Mmn_

TCMatrix_gwbse_spin& votca::xtp::GW_UKS::Mmn_
private

Definition at line 241 of file gw_uks.h.

◆ opt_

options votca::xtp::GW_UKS::opt_
private

Definition at line 238 of file gw_uks.h.

◆ ppm_

PPM votca::xtp::GW_UKS::ppm_
private

Definition at line 178 of file gw_uks.h.

◆ qptotal_

Index votca::xtp::GW_UKS::qptotal_ = 0
private

Definition at line 237 of file gw_uks.h.

◆ rpa_

RPA_UKS votca::xtp::GW_UKS::rpa_
private

Definition at line 246 of file gw_uks.h.

◆ sigma_alpha_

std::unique_ptr<Sigma_base_UKS> votca::xtp::GW_UKS::sigma_alpha_
private

Definition at line 247 of file gw_uks.h.

◆ sigma_beta_

std::unique_ptr<Sigma_base_UKS> votca::xtp::GW_UKS::sigma_beta_
private

Definition at line 248 of file gw_uks.h.

◆ Sigma_c_alpha_

Eigen::MatrixXd votca::xtp::GW_UKS::Sigma_c_alpha_
private

Definition at line 251 of file gw_uks.h.

◆ Sigma_c_beta_

Eigen::MatrixXd votca::xtp::GW_UKS::Sigma_c_beta_
private

Definition at line 252 of file gw_uks.h.

◆ Sigma_x_alpha_

Eigen::MatrixXd votca::xtp::GW_UKS::Sigma_x_alpha_
private

Definition at line 249 of file gw_uks.h.

◆ Sigma_x_beta_

Eigen::MatrixXd votca::xtp::GW_UKS::Sigma_x_beta_
private

Definition at line 250 of file gw_uks.h.

◆ vxc_alpha_

const Eigen::MatrixXd& votca::xtp::GW_UKS::vxc_alpha_
private

Definition at line 242 of file gw_uks.h.

◆ vxc_beta_

const Eigen::MatrixXd& votca::xtp::GW_UKS::vxc_beta_
private

Definition at line 243 of file gw_uks.h.


The documentation for this class was generated from the following files: