21#ifndef VOTCA_XTP_BSE_OPERATOR_UKS_H
22#define VOTCA_XTP_BSE_OPERATOR_UKS_H
40template <Index cqp, Index cx, Index cd, Index cd2>
45 const Eigen::MatrixXd& Hqp_alpha,
46 const Eigen::MatrixXd& Hqp_beta)
55 Eigen::MatrixXd
matmul(
const Eigen::MatrixXd& input)
const override;
83 const SpinBlockInfo& blk,
const Eigen::MatrixXd& Hqp)
const;
86 const SpinBlockInfo& out_blk,
87 const SpinBlockInfo& in_blk,
89 double prefactor)
const;
92 const SpinBlockInfo& out_blk,
97 const SpinBlockInfo& out_blk,
98 const SpinBlockInfo& in_blk,
100 double prefactor)
const;
void add_exchange_block(Eigen::MatrixXd &y, const Eigen::MatrixXd &x, const SpinBlockInfo &out_blk, const SpinBlockInfo &in_blk, const TCMatrix_gwbse &Mout, const TCMatrix_gwbse &Min, double prefactor) const
const Eigen::MatrixXd & Hqp_beta_
Eigen::VectorXd diagonal() const override
const TCMatrix_gwbse_spin & Mmn_
const Eigen::MatrixXd & Hqp_alpha_
void configure(BSEOperatorUKS_Options opt)
void add_direct_block(Eigen::MatrixXd &y, const Eigen::MatrixXd &x, const SpinBlockInfo &out_blk, const SpinBlockInfo &in_blk, const TCMatrix_gwbse &Mout, const TCMatrix_gwbse &Min, double prefactor) const
BSEOperatorUKS_Options opt_
void add_direct2_block(Eigen::MatrixXd &y, const Eigen::MatrixXd &x, const SpinBlockInfo &out_blk, const SpinBlockInfo &in_blk, const TCMatrix_gwbse &Mout, const TCMatrix_gwbse &Min, double prefactor) const
BSE_OPERATOR_UKS(const Eigen::VectorXd &epsilon_0_inv, const TCMatrix_gwbse_spin &Mmn, const Eigen::MatrixXd &Hqp_alpha, const Eigen::MatrixXd &Hqp_beta)
void setup_block(SpinBlockInfo &blk, Index homo, Index offset)
Eigen::MatrixXd matmul(const Eigen::MatrixXd &input) const override
Eigen::MatrixXd dense_matrix() const
void add_qp_block(Eigen::MatrixXd &y, const Eigen::MatrixXd &x, const SpinBlockInfo &blk, const Eigen::MatrixXd &Hqp) const
const Eigen::VectorXd & epsilon_0_inv_
BSE_OPERATOR_UKS< 0, 1, 0, 1 > ExcitonUKSOperator_BTDA_B
BSE_OPERATOR_UKS< 1, 1, 1, 0 > ExcitonUKSOperator_TDA
BSE_OPERATOR_UKS< 0, 0, 0, 1 > Hd2UKSOperator
BSE_OPERATOR_UKS< 0, 0, 1, 0 > HdUKSOperator
BSE_OPERATOR_UKS< 0, 1, 0, 0 > HxUKSOperator
BSE_OPERATOR_UKS< 1, 0, 0, 0 > QpUKSOperator
Provides a means for comparing floating point numbers.