|
votca 2026-dev
|
#include <gw.h>

Classes | |
| struct | options |
| class | QPFunc |
Public Member Functions | |
| GW (Logger &log, TCMatrix_gwbse &Mmn, const Eigen::MatrixXd &vxc, const Eigen::VectorXd &dft_energies) | |
| void | configure (const options &opt) |
| Eigen::VectorXd | getGWAResults () const |
| void | CalculateGWPerturbation () |
| void | CalculateHQP () |
| void | CalculateQSGW () |
| Run quasiparticle self-consistent GW (QSGW). | |
| const Eigen::MatrixXd & | getQSGWRotation () const |
| const Eigen::VectorXd & | getQSGWSeedEnergies () const |
| Return the seed (G0W0/evGW) energies that QSGW started from. | |
| void | PrintQSGW_Energies (const std::string &seed_label, const Eigen::VectorXd &seed_energies, const Eigen::VectorXd &qsgw_energies) const |
| Print a two-column comparison of seed (G0W0 or evGW) vs converged QSGW quasiparticle energies. | |
| void | PrintQSGW_Composition (double threshold=0.01) const |
| Print the dominant DFT-KS orbital contributions to each converged QSGW quasiparticle state. | |
| Eigen::MatrixXd | getHQP () const |
| Eigen::SelfAdjointEigenSolver< Eigen::MatrixXd > | DiagonalizeQPHamiltonian () const |
| void | PlotSigma (std::string filename, Index steps, double spacing, std::string states) const |
| Eigen::VectorXd | RPAInputEnergies () const |
Private Types | |
| using | EvalStage = qp_solver::EvalStage |
| using | QPStats = qp_solver::Stats |
| using | QPRootCandidate = qp_solver::RootCandidate |
| using | QPWindowDiagnostics = qp_solver::WindowDiagnostics |
Private Member Functions | |
| double | CalcHomoLumoShift (Eigen::VectorXd frequencies) const |
| Eigen::VectorXd | ScissorShift_DFTlevel (const Eigen::VectorXd &dft_energies) const |
| void | PrintQP_Energies (const Eigen::VectorXd &qp_diag_energies) const |
| void | PrintGWA_Energies () const |
| Eigen::VectorXd | SolveQP (const Eigen::VectorXd &frequencies) const |
| boost::optional< double > | SolveQP_Grid (double intercept0, double frequency0, Index gw_level, QPStats *stats=nullptr) const |
| boost::optional< double > | SolveQP_Grid_Windowed (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 (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 (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 (double intercept0, double frequency0, Index gw_level, QPStats *stats=nullptr) const |
| boost::optional< double > | SolveQP_Linearisation (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< QPRootCandidate > | RefineQPInterval (double lowerbound, double f_lowerbound, double upperbound, double f_upperbound, const QPFunc &f, double reference) const |
Private Attributes | |
| Index | qptotal_ |
| Eigen::MatrixXd | Sigma_x_ |
| Eigen::MatrixXd | Sigma_c_ |
| Eigen::MatrixXd | qsgw_rotation_ |
| Eigen::VectorXd | qsgw_seed_energies_ |
| Eigen::VectorXd | qsgw_final_energies_ |
| options | opt_ |
| std::unique_ptr< Sigma_base > | sigma_ = nullptr |
| Logger & | log_ |
| TCMatrix_gwbse & | Mmn_ |
| const Eigen::MatrixXd & | vxc_ |
| const Eigen::VectorXd & | dft_energies_ |
| Index | gw_sc_iteration_ |
| RPA | rpa_ |
|
private |
|
private |
|
private |
|
private |
|
inline |
|
private |
| void votca::xtp::GW::CalculateQSGW | ( | ) |
Run quasiparticle self-consistent GW (QSGW).
At each iteration:
The accumulated rotation U (DFT MOs -> converged QP wavefunctions) is stored in qsgw_rotation_ and returned via getQSGWRotation(). QPdiag energies and eigenvectors are set to the converged QSGW values.
|
private |
| Eigen::SelfAdjointEigenSolver< Eigen::MatrixXd > votca::xtp::GW::DiagonalizeQPHamiltonian | ( | ) | const |
|
inline |
|
inline |
| void votca::xtp::GW::PlotSigma | ( | std::string | filename, |
| Index | steps, | ||
| double | spacing, | ||
| std::string | states ) const |
|
private |
| void votca::xtp::GW::PrintQSGW_Composition | ( | double | threshold = 0.01 | ) | const |
Print the dominant DFT-KS orbital contributions to each converged QSGW quasiparticle state.
For each QP state n, prints the KS orbitals m with |U_{mn}|^2 > threshold, where U = qsgw_rotation_ (columns = QP states in DFT-KS basis).
| threshold | Minimum weight to print (default 0.01 = 1%) |
| void votca::xtp::GW::PrintQSGW_Energies | ( | const std::string & | seed_label, |
| const Eigen::VectorXd & | seed_energies, | ||
| const Eigen::VectorXd & | qsgw_energies ) const |
Print a two-column comparison of seed (G0W0 or evGW) vs converged QSGW quasiparticle energies.
| seed_label | Label for the seed column, e.g. "G0W0" or "evGW". |
| seed_energies | QP energies from the seed calculation (Ha). |
| qsgw_energies | Converged QSGW eigenvalues (Ha). |
|
private |
|
inline |
|
private |
|
private |
|
private |
|
private |