13 template<
typename T =
double,
typename Device = base_device::DEVICE_CPU>
20 const std::vector<int>&
nocc,
21 const std::vector<int>&
nvirt,
25 std::weak_ptr<PotHxcLR> pot_in,
27 const std::vector<double>& orb_cutoff,
30 const std::vector<Parallel_2D>& pX_in,
33 const std::vector<int>&
ispin_ks = {0})
42 LR_Util::initialize_HR<T, T>(*this->
hR, ucell_in, gd_in, orb_cutoff);
43 assert(&pmat_in == this->
hR->get_paraV());
47 void init(
const int ik_in)
override {};
49 virtual void act(
const int nbands,
65 const std::vector<int>&
nocc;
73 std::unique_ptr<elecstate::DensityMatrix<T, T>>&
DM_trans;
76 std::unique_ptr<hamilt::HContainer<T>>
hR =
nullptr;
80 const std::vector<Parallel_2D>&
pX;
83 std::weak_ptr<PotHxcLR>
pot;
Definition sltk_grid_driver.h:43
Hxc part of A operator for LR-TDDFT.
Definition operator_lr_hxc.h:15
const Parallel_Orbitals & pmat
Definition operator_lr_hxc.h:81
~OperatorLRHxc()
Definition operator_lr_hxc.h:45
const std::vector< int > ispin_ks
the index of spin of psi_ks used in {AX, DM_trans}
Definition operator_lr_hxc.h:67
OperatorLRHxc(const int &nspin, const int &naos, const std::vector< int > &nocc, const std::vector< int > &nvirt, const psi::Psi< T, Device > &psi_ks_in, std::unique_ptr< elecstate::DensityMatrix< T, T > > &DM_trans_in, typename TGint< T >::type *gint_in, std::weak_ptr< PotHxcLR > pot_in, const UnitCell &ucell_in, const std::vector< double > &orb_cutoff, const Grid_Driver &gd_in, const K_Vectors &kv_in, const std::vector< Parallel_2D > &pX_in, const Parallel_2D &pc_in, const Parallel_Orbitals &pmat_in, const std::vector< int > &ispin_ks={0})
Definition operator_lr_hxc.h:18
virtual void act(const int nbands, const int nbasis, const int npol, const T *psi_in, T *hpsi, const int ngk_ik=0, const bool is_first_node=false) const override
Definition operator_lr_hxc.cpp:20
void grid_calculation(const int &nbands) const
void init(const int ik_in) override
Definition operator_lr_hxc.h:47
const int & naos
Definition operator_lr_hxc.h:62
const Grid_Driver & gd
Definition operator_lr_hxc.h:89
const UnitCell & ucell
Definition operator_lr_hxc.h:87
const int & nspin
Definition operator_lr_hxc.h:61
const std::vector< Parallel_2D > & pX
Definition operator_lr_hxc.h:80
std::unique_ptr< hamilt::HContainer< T > > hR
transition hamiltonian in AO representation
Definition operator_lr_hxc.h:76
const std::vector< int > & nvirt
Definition operator_lr_hxc.h:66
std::weak_ptr< PotHxcLR > pot
Definition operator_lr_hxc.h:83
const std::vector< int > & nocc
Definition operator_lr_hxc.h:65
const K_Vectors & kv
Definition operator_lr_hxc.h:68
const Parallel_2D & pc
parallel info
Definition operator_lr_hxc.h:79
bool first_print
test
Definition operator_lr_hxc.h:92
TGint< T >::type * gint
Definition operator_lr_hxc.h:85
std::unique_ptr< elecstate::DensityMatrix< T, T > > & DM_trans
transition density matrix
Definition operator_lr_hxc.h:73
const psi::Psi< T, Device > & psi_ks
ground state wavefunction
Definition operator_lr_hxc.h:70
std::vector< double > orb_cutoff_
Definition operator_lr_hxc.h:88
const int nk
Definition operator_lr_hxc.h:63
This class packs the basic information of 2D-block-cyclic parallel distribution of an arbitrary matri...
Definition parallel_2d.h:12
Definition parallel_orbitals.h:9
Definition density_matrix.h:36
Definition hcontainer.h:144
psi::Psi< T, Device > * hpsi
Definition operator.h:112
enum calculation_type cal_type
Definition operator.h:107
bool is_first_node
Definition operator.h:109
#define T
Definition exp.cpp:237
Definition esolver_ks_lcao.h:37
void TITLE(const std::string &class_name, const std::string &function_name, const bool disable)
Definition tool_title.cpp:18
Definition gint_template.h:6