#include <threecenter.h>
Definition at line 70 of file threecenter.h.
◆ AuxFrame()
| const Eigen::MatrixXd & votca::xtp::TCMatrix_gwbse::AuxFrame |
( |
| ) |
const |
|
inline |
◆ AuxFrameIsOrthogonal()
| bool votca::xtp::TCMatrix_gwbse::AuxFrameIsOrthogonal |
( |
| ) |
const |
◆ auxsize()
| Index votca::xtp::TCMatrix_gwbse::auxsize |
( |
| ) |
const |
|
inline |
◆ DressAuxIndex()
| void votca::xtp::TCMatrix_gwbse::DressAuxIndex |
( |
const Eigen::MatrixXd & | S | ) |
|
Dress the auxiliary index with S: M_fill -> M_fill S.
For a static environment the QM electrons interact through u = v + v_reac, which is 1 + R in the metric of M, and the screened interaction is W = [u^-1 - chi0]^-1. With S = (1 + R)^(1/2), that is exactly the ordinary RPA and correlation self-energy built from M S in place of M: every place that pairs two M's through the bare interaction pairs them through u instead.
S is in the fill-time frame, and is applied in whatever frame the integrals are in now; AuxFrame() records it, so ToCurrentAuxFrame still maps fill-time kernels correctly. Exchange-type sums that must keep the bare v take ToCurrentAuxFrame(identity) as their kernel once the frame is no longer orthogonal (see AuxFrameIsOrthogonal).
Throws if already dressed. Fill and Rebuild undress.
Definition at line 105 of file threecenter.cc.
◆ Dressed()
| bool votca::xtp::TCMatrix_gwbse::Dressed |
( |
| ) |
const |
|
inline |
◆ Fill()
| void votca::xtp::TCMatrix_gwbse::Fill |
( |
const AOBasis & | auxbasis, |
|
|
const AOBasis & | dftbasis, |
|
|
const Eigen::MatrixXd & | dft_orbitals ) |
◆ Fill3cMO()
| void votca::xtp::TCMatrix_gwbse::Fill3cMO |
( |
const AOBasis & | auxbasis, |
|
|
const AOBasis & | dftbasis, |
|
|
const Eigen::MatrixXd & | dft_orbitals ) |
|
private |
◆ get_mmax()
| Index votca::xtp::TCMatrix_gwbse::get_mmax |
( |
| ) |
const |
|
inline |
◆ get_mmin()
| Index votca::xtp::TCMatrix_gwbse::get_mmin |
( |
| ) |
const |
|
inline |
◆ get_nmax()
| Index votca::xtp::TCMatrix_gwbse::get_nmax |
( |
| ) |
const |
|
inline |
◆ get_nmin()
| Index votca::xtp::TCMatrix_gwbse::get_nmin |
( |
| ) |
const |
|
inline |
◆ Initialize()
◆ InvSqrt()
| const Eigen::MatrixXd & votca::xtp::TCMatrix_gwbse::InvSqrt |
( |
| ) |
const |
|
inline |
◆ msize()
| Index votca::xtp::TCMatrix_gwbse::msize |
( |
| ) |
const |
|
inline |
◆ MultiplyInFillFrame()
| void votca::xtp::TCMatrix_gwbse::MultiplyInFillFrame |
( |
const Eigen::MatrixXd & | A | ) |
|
|
private |
◆ MultiplyRightWithAuxMatrix()
| void votca::xtp::TCMatrix_gwbse::MultiplyRightWithAuxMatrix |
( |
const Eigen::MatrixXd & | matrix | ) |
|
◆ nsize()
| Index votca::xtp::TCMatrix_gwbse::nsize |
( |
| ) |
const |
|
inline |
◆ operator[]() [1/2]
| Eigen::MatrixXd & votca::xtp::TCMatrix_gwbse::operator[] |
( |
Index | i | ) |
|
|
inline |
◆ operator[]() [2/2]
| const Eigen::MatrixXd & votca::xtp::TCMatrix_gwbse::operator[] |
( |
Index | i | ) |
const |
|
inline |
◆ Rebuild()
| void votca::xtp::TCMatrix_gwbse::Rebuild |
( |
| ) |
|
|
inline |
◆ RestoreAuxFrame()
| void votca::xtp::TCMatrix_gwbse::RestoreAuxFrame |
( |
const Eigen::MatrixXd & | frame | ) |
|
|
inline |
◆ Rotate()
| void votca::xtp::TCMatrix_gwbse::Rotate |
( |
const Eigen::MatrixXd & | U, |
|
|
Index | qpmin, |
|
|
Index | qpmax ) |
Rotate the n-index (construction rows) of Mmn for QSGW.
In QSGW the self-energy matrix elements are in the DFT-MO basis (outer m-index unchanged). The internal construction sum over particle/hole states (inner n-rows) must use QP wavefunctions. This method rotates only the n-rows of ALL m-slices within the QP window block:
new_M[m].rows(qp_offset_n : qp_offset_n+qptotal) = U^T * old_M[m].rows(qp_offset_n : qp_offset_n+qptotal)
Rows outside the QP window remain as DFT-MOs (consistent with evGW). The outer m-index and auxiliary index are unchanged.
- Parameters
-
| U | Rotation matrix (qptotal x qptotal) |
| qpmin | First QP level (absolute MO index) |
| qpmax | Last QP level (absolute MO index) |
Definition at line 208 of file threecenter.cc.
◆ ToCurrentAuxFrame()
| Eigen::MatrixXd votca::xtp::TCMatrix_gwbse::ToCurrentAuxFrame |
( |
const Eigen::MatrixXd & | K | ) |
const |
◆ UndressAuxIndex()
| void votca::xtp::TCMatrix_gwbse::UndressAuxIndex |
( |
| ) |
|
◆ aux_frame_
| Eigen::MatrixXd votca::xtp::TCMatrix_gwbse::aux_frame_ |
|
private |
◆ aux_frame_known_
| bool votca::xtp::TCMatrix_gwbse::aux_frame_known_ = true |
|
private |
◆ auxbasis_
| const AOBasis* votca::xtp::TCMatrix_gwbse::auxbasis_ = nullptr |
|
private |
◆ auxbasissize_
| Index votca::xtp::TCMatrix_gwbse::auxbasissize_ |
|
private |
◆ dft_orbitals_
| const Eigen::MatrixXd* votca::xtp::TCMatrix_gwbse::dft_orbitals_ = nullptr |
|
private |
◆ dftbasis_
| const AOBasis* votca::xtp::TCMatrix_gwbse::dftbasis_ = nullptr |
|
private |
◆ dressing_
| Eigen::MatrixXd votca::xtp::TCMatrix_gwbse::dressing_ |
|
private |
◆ matrix_
| std::vector<Eigen::MatrixXd> votca::xtp::TCMatrix_gwbse::matrix_ |
|
private |
◆ metric_tolerance
| double votca::xtp::TCMatrix_gwbse::metric_tolerance = 5e-7 |
|
staticconstexpr |
◆ mmax_
| Index votca::xtp::TCMatrix_gwbse::mmax_ |
|
private |
◆ mmin_
| Index votca::xtp::TCMatrix_gwbse::mmin_ |
|
private |
◆ mtotal_
| Index votca::xtp::TCMatrix_gwbse::mtotal_ |
|
private |
◆ nmax_
| Index votca::xtp::TCMatrix_gwbse::nmax_ |
|
private |
◆ nmin_
| Index votca::xtp::TCMatrix_gwbse::nmin_ |
|
private |
◆ ntotal_
| Index votca::xtp::TCMatrix_gwbse::ntotal_ |
|
private |
The documentation for this class was generated from the following files: