votca 2026-dev
Loading...
Searching...
No Matches
votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 > Class Template Reference

#include <bse_operator.h>

Inheritance diagram for votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >:
Collaboration diagram for votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >:

Public Member Functions

 BSE_OPERATOR (const Eigen::VectorXd &Hd_operator, const TCMatrix_gwbse &Mmn, const Eigen::MatrixXd &Hqp)
void configure (BSEOperator_Options opt)
Eigen::VectorXd diagonal () const
Eigen::MatrixXd matmul (const Eigen::MatrixXd &input) const
void set_direct_cache (std::shared_ptr< SymmetricTiles > cache)
bool direct_term_cached () const
void use_row_kernel (bool rows)
Public Member Functions inherited from votca::xtp::MatrixFreeOperator
Index rows () const
Index cols () const
template<typename Vtype>
Eigen::Product< MatrixFreeOperator, Vtype, Eigen::AliasFreeProduct > operator* (const Eigen::MatrixBase< Vtype > &x) const
Index size () const
void set_size (Index size)

Static Public Member Functions

static constexpr Index DirectKind ()
 Tag of the direct term an operator caches: 1 for Hd, 2 for Hd2.

Private Member Functions

void BuildDirectMatrix () const
Eigen::MatrixXd ApplyDirectBlocks (const Eigen::MatrixXd &input) const
Eigen::MatrixXd ApplyDirectRows (const Eigen::MatrixXd &input) const

Private Attributes

std::shared_ptr< SymmetricTiles > direct_cache_
bool row_kernel_ = false
Eigen::MatrixXd stacked_
BSEOperator_Options opt_
Index bse_size_
Index bse_vtotal_
Index bse_ctotal_
Index bse_cmin_
const Eigen::VectorXd & epsilon_0_inv_
const TCMatrix_gwbse & Mmn_
const Eigen::MatrixXd & Hqp_

Additional Inherited Members

Public Types inherited from votca::xtp::MatrixFreeOperator
enum  { ColsAtCompileTime = Eigen::Dynamic , MaxColsAtCompileTime = Eigen::Dynamic , IsRowMajor = false }

Detailed Description

template<Index cqp, Index cx, Index cd, Index cd2>
class votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >

Definition at line 45 of file bse_operator.h.

Constructor & Destructor Documentation

◆ BSE_OPERATOR()

template<Index cqp, Index cx, Index cd, Index cd2>
votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::BSE_OPERATOR ( const Eigen::VectorXd & Hd_operator,
const TCMatrix_gwbse & Mmn,
const Eigen::MatrixXd & Hqp )
inline

Definition at line 48 of file bse_operator.h.

Member Function Documentation

◆ ApplyDirectBlocks()

template<Index cqp, Index cx, Index cd, Index cd2>
Eigen::MatrixXd votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::ApplyDirectBlocks ( const Eigen::MatrixXd & input) const
private

Definition at line 125 of file bse_operator.cc.

◆ ApplyDirectRows()

template<Index cqp, Index cx, Index cd, Index cd2>
Eigen::MatrixXd votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::ApplyDirectRows ( const Eigen::MatrixXd & input) const
private

Definition at line 78 of file bse_operator.cc.

◆ BuildDirectMatrix()

template<Index cqp, Index cx, Index cd, Index cd2>
void votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::BuildDirectMatrix ( ) const
private

Definition at line 181 of file bse_operator.cc.

◆ configure()

template<Index cqp, Index cx, Index cd, Index cd2>
void votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::configure ( BSEOperator_Options opt)

Definition at line 32 of file bse_operator.cc.

◆ diagonal()

template<Index cqp, Index cx, Index cd, Index cd2>
Eigen::VectorXd votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::diagonal ( ) const
virtual

Implements votca::xtp::MatrixFreeOperator.

Definition at line 220 of file bse_operator.cc.

◆ direct_term_cached()

template<Index cqp, Index cx, Index cd, Index cd2>
bool votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::direct_term_cached ( ) const
inline

Definition at line 75 of file bse_operator.h.

◆ DirectKind()

template<Index cqp, Index cx, Index cd, Index cd2>
constexpr Index votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::DirectKind ( )
inlinestaticconstexpr

Tag of the direct term an operator caches: 1 for Hd, 2 for Hd2.

Definition at line 79 of file bse_operator.h.

◆ matmul()

template<Index cqp, Index cx, Index cd, Index cd2>
Eigen::MatrixXd votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::matmul ( const Eigen::MatrixXd & input) const
virtual

Implements votca::xtp::MatrixFreeOperator.

Definition at line 43 of file bse_operator.cc.

◆ set_direct_cache()

template<Index cqp, Index cx, Index cd, Index cd2>
void votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::set_direct_cache ( std::shared_ptr< SymmetricTiles > cache)
inline

Keep the screened direct term (Hd for cd, Hd2 for cd2; unit prefactor) in this matrix, which is built on first use unless it already holds it. Operators of the same BSE can share it (e.g. the singlet and triplet A, or Hd for the analysis); null disables it.

Definition at line 72 of file bse_operator.h.

◆ use_row_kernel()

template<Index cqp, Index cx, Index cd, Index cd2>
void votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::use_row_kernel ( bool rows)
inline

Without the dense cache the screened direct term is applied in large products, one block of Hamiltonian rows (all v1 for one c1) at a time; true selects the row-by-row kernel (one Hamiltonian row at a time).

Definition at line 85 of file bse_operator.h.

Member Data Documentation

◆ bse_cmin_

template<Index cqp, Index cx, Index cd, Index cd2>
Index votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::bse_cmin_
private

Definition at line 105 of file bse_operator.h.

◆ bse_ctotal_

template<Index cqp, Index cx, Index cd, Index cd2>
Index votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::bse_ctotal_
private

Definition at line 104 of file bse_operator.h.

◆ bse_size_

template<Index cqp, Index cx, Index cd, Index cd2>
Index votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::bse_size_
private

Definition at line 102 of file bse_operator.h.

◆ bse_vtotal_

template<Index cqp, Index cx, Index cd, Index cd2>
Index votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::bse_vtotal_
private

Definition at line 103 of file bse_operator.h.

◆ direct_cache_

template<Index cqp, Index cx, Index cd, Index cd2>
std::shared_ptr<SymmetricTiles> votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::direct_cache_
private

Definition at line 95 of file bse_operator.h.

◆ epsilon_0_inv_

template<Index cqp, Index cx, Index cd, Index cd2>
const Eigen::VectorXd& votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::epsilon_0_inv_
private

Definition at line 107 of file bse_operator.h.

◆ Hqp_

template<Index cqp, Index cx, Index cd, Index cd2>
const Eigen::MatrixXd& votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::Hqp_
private

Definition at line 109 of file bse_operator.h.

◆ Mmn_

template<Index cqp, Index cx, Index cd, Index cd2>
const TCMatrix_gwbse& votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::Mmn_
private

Definition at line 108 of file bse_operator.h.

◆ opt_

template<Index cqp, Index cx, Index cd, Index cd2>
BSEOperator_Options votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::opt_
private

Definition at line 101 of file bse_operator.h.

◆ row_kernel_

template<Index cqp, Index cx, Index cd, Index cd2>
bool votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::row_kernel_ = false
private

Definition at line 96 of file bse_operator.h.

◆ stacked_

template<Index cqp, Index cx, Index cd, Index cd2>
Eigen::MatrixXd votca::xtp::BSE_OPERATOR< cqp, cx, cd, cd2 >::stacked_
mutableprivate

Definition at line 100 of file bse_operator.h.


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