votca 2026-dev
Loading...
Searching...
No Matches
votca::xtp::TCMatrix_gwbse Class Referencefinal

#include <threecenter.h>

Inheritance diagram for votca::xtp::TCMatrix_gwbse:
Collaboration diagram for votca::xtp::TCMatrix_gwbse:

Public Member Functions

const Eigen::MatrixXd & operator[] (Index i) const
Eigen::MatrixXd & operator[] (Index i)
Index auxsize () const
Index get_mmin () const
Index get_mmax () const
Index get_nmin () const
Index get_nmax () const
Index msize () const
Index nsize () const
void Initialize (Index basissize, Index mmin, Index mmax, Index nmin, Index nmax)
void Fill (const AOBasis &auxbasis, const AOBasis &dftbasis, const Eigen::MatrixXd &dft_orbitals)
void Rebuild ()
void MultiplyRightWithAuxMatrix (const Eigen::MatrixXd &matrix)
const Eigen::MatrixXd & InvSqrt () const
const Eigen::MatrixXd & AuxFrame () const
void RestoreAuxFrame (const Eigen::MatrixXd &frame)
Eigen::MatrixXd ToCurrentAuxFrame (const Eigen::MatrixXd &K) const
bool AuxFrameIsOrthogonal () const
void DressAuxIndex (const Eigen::MatrixXd &S)
 Dress the auxiliary index with S: M_fill -> M_fill S.
void UndressAuxIndex ()
bool Dressed () const
void Rotate (const Eigen::MatrixXd &U, Index qpmin, Index qpmax)
 Rotate the n-index (construction rows) of Mmn for QSGW.
Public Member Functions inherited from votca::xtp::TCMatrix
virtual ~TCMatrix ()=default
Index Removedfunctions () const

Static Public Attributes

static constexpr double metric_tolerance = 5e-7

Private Member Functions

void MultiplyInFillFrame (const Eigen::MatrixXd &A)
void Fill3cMO (const AOBasis &auxbasis, const AOBasis &dftbasis, const Eigen::MatrixXd &dft_orbitals)

Private Attributes

std::vector< Eigen::MatrixXd > matrix_
Index mmin_
Index mmax_
Index nmin_
Index nmax_
Index ntotal_
Index mtotal_
Index auxbasissize_
Eigen::MatrixXd aux_frame_
bool aux_frame_known_ = true
Eigen::MatrixXd dressing_
const AOBasis * auxbasis_ = nullptr
const AOBasis * dftbasis_ = nullptr
const Eigen::MatrixXd * dft_orbitals_ = nullptr

Additional Inherited Members

Public Types inherited from votca::xtp::TCMatrix
enum class  SpinChannel { Alpha , Beta }
Protected Attributes inherited from votca::xtp::TCMatrix
Index removedfunctions_ = 0
Eigen::MatrixXd inv_sqrt_

Detailed Description

Definition at line 70 of file threecenter.h.

Member Function Documentation

◆ AuxFrame()

const Eigen::MatrixXd & votca::xtp::TCMatrix_gwbse::AuxFrame ( ) const
inline

Definition at line 137 of file threecenter.h.

◆ AuxFrameIsOrthogonal()

bool votca::xtp::TCMatrix_gwbse::AuxFrameIsOrthogonal ( ) const

Definition at line 77 of file threecenter.cc.

◆ auxsize()

Index votca::xtp::TCMatrix_gwbse::auxsize ( ) const
inline

Definition at line 83 of file threecenter.h.

◆ 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

Definition at line 179 of file threecenter.h.

◆ Fill()

void votca::xtp::TCMatrix_gwbse::Fill ( const AOBasis & auxbasis,
const AOBasis & dftbasis,
const Eigen::MatrixXd & dft_orbitals )

Definition at line 168 of file threecenter.cc.

◆ Fill3cMO()

void votca::xtp::TCMatrix_gwbse::Fill3cMO ( const AOBasis & auxbasis,
const AOBasis & dftbasis,
const Eigen::MatrixXd & dft_orbitals )
private

Definition at line 595 of file libint2_calls.cc.

◆ get_mmax()

Index votca::xtp::TCMatrix_gwbse::get_mmax ( ) const
inline

Definition at line 87 of file threecenter.h.

◆ get_mmin()

Index votca::xtp::TCMatrix_gwbse::get_mmin ( ) const
inline

Definition at line 85 of file threecenter.h.

◆ get_nmax()

Index votca::xtp::TCMatrix_gwbse::get_nmax ( ) const
inline

Definition at line 91 of file threecenter.h.

◆ get_nmin()

Index votca::xtp::TCMatrix_gwbse::get_nmin ( ) const
inline

Definition at line 89 of file threecenter.h.

◆ Initialize()

void votca::xtp::TCMatrix_gwbse::Initialize ( Index basissize,
Index mmin,
Index mmax,
Index nmin,
Index nmax )

Definition at line 33 of file threecenter.cc.

◆ InvSqrt()

const Eigen::MatrixXd & votca::xtp::TCMatrix_gwbse::InvSqrt ( ) const
inline

Definition at line 125 of file threecenter.h.

◆ msize()

Index votca::xtp::TCMatrix_gwbse::msize ( ) const
inline

Definition at line 93 of file threecenter.h.

◆ MultiplyInFillFrame()

void votca::xtp::TCMatrix_gwbse::MultiplyInFillFrame ( const Eigen::MatrixXd & A)
private

Definition at line 90 of file threecenter.cc.

◆ MultiplyRightWithAuxMatrix()

void votca::xtp::TCMatrix_gwbse::MultiplyRightWithAuxMatrix ( const Eigen::MatrixXd & matrix)

Definition at line 58 of file threecenter.cc.

◆ nsize()

Index votca::xtp::TCMatrix_gwbse::nsize ( ) const
inline

Definition at line 95 of file threecenter.h.

◆ operator[]() [1/2]

Eigen::MatrixXd & votca::xtp::TCMatrix_gwbse::operator[] ( Index i)
inline

Definition at line 81 of file threecenter.h.

◆ operator[]() [2/2]

const Eigen::MatrixXd & votca::xtp::TCMatrix_gwbse::operator[] ( Index i) const
inline

Definition at line 78 of file threecenter.h.

◆ Rebuild()

void votca::xtp::TCMatrix_gwbse::Rebuild ( )
inline

Definition at line 104 of file threecenter.h.

◆ RestoreAuxFrame()

void votca::xtp::TCMatrix_gwbse::RestoreAuxFrame ( const Eigen::MatrixXd & frame)
inline

Definition at line 142 of file threecenter.h.

◆ 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
URotation matrix (qptotal x qptotal)
qpminFirst QP level (absolute MO index)
qpmaxLast 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

Definition at line 128 of file threecenter.cc.

◆ UndressAuxIndex()

void votca::xtp::TCMatrix_gwbse::UndressAuxIndex ( )

Definition at line 120 of file threecenter.cc.

Member Data Documentation

◆ aux_frame_

Eigen::MatrixXd votca::xtp::TCMatrix_gwbse::aux_frame_
private

Definition at line 214 of file threecenter.h.

◆ aux_frame_known_

bool votca::xtp::TCMatrix_gwbse::aux_frame_known_ = true
private

Definition at line 215 of file threecenter.h.

◆ auxbasis_

const AOBasis* votca::xtp::TCMatrix_gwbse::auxbasis_ = nullptr
private

Definition at line 221 of file threecenter.h.

◆ auxbasissize_

Index votca::xtp::TCMatrix_gwbse::auxbasissize_
private

Definition at line 212 of file threecenter.h.

◆ dft_orbitals_

const Eigen::MatrixXd* votca::xtp::TCMatrix_gwbse::dft_orbitals_ = nullptr
private

Definition at line 223 of file threecenter.h.

◆ dftbasis_

const AOBasis* votca::xtp::TCMatrix_gwbse::dftbasis_ = nullptr
private

Definition at line 222 of file threecenter.h.

◆ dressing_

Eigen::MatrixXd votca::xtp::TCMatrix_gwbse::dressing_
private

Definition at line 216 of file threecenter.h.

◆ matrix_

std::vector<Eigen::MatrixXd> votca::xtp::TCMatrix_gwbse::matrix_
private

Definition at line 203 of file threecenter.h.

◆ metric_tolerance

double votca::xtp::TCMatrix_gwbse::metric_tolerance = 5e-7
staticconstexpr

Definition at line 75 of file threecenter.h.

◆ mmax_

Index votca::xtp::TCMatrix_gwbse::mmax_
private

Definition at line 207 of file threecenter.h.

◆ mmin_

Index votca::xtp::TCMatrix_gwbse::mmin_
private

Definition at line 206 of file threecenter.h.

◆ mtotal_

Index votca::xtp::TCMatrix_gwbse::mtotal_
private

Definition at line 211 of file threecenter.h.

◆ nmax_

Index votca::xtp::TCMatrix_gwbse::nmax_
private

Definition at line 209 of file threecenter.h.

◆ nmin_

Index votca::xtp::TCMatrix_gwbse::nmin_
private

Definition at line 208 of file threecenter.h.

◆ ntotal_

Index votca::xtp::TCMatrix_gwbse::ntotal_
private

Definition at line 210 of file threecenter.h.


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