ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
LR::HamiltLR< T > Class Template Reference

#include <hamilt_casida.h>

Collaboration diagram for LR::HamiltLR< T >:

Public Member Functions

template<typename TGint >
 HamiltLR (std::string &xc_kernel, const int &nspin, const int &naos, const std::vector< int > &nocc, const std::vector< int > &nvirt, const UnitCell &ucell_in, const std::vector< double > &orb_cutoff, const Grid_Driver &gd_in, const psi::Psi< T > &psi_ks_in, const ModuleBase::matrix &eig_ks, TGint *gint_in, std::weak_ptr< PotHxcLR > pot_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::string &spin_type, const std::string &ri_hartree_benchmark="none", const std::vector< int > &aims_nbasis={})
 
 ~HamiltLR ()
 
std::vector< Tmatrix () const
 
void hPsi (const T *const psi_in, T *const hpsi, const int ld_psi, const int &nband) const
 
void global2local (T *lvec, const T *gvec, const int &nband) const
 

Private Member Functions

T one () const
 
double one () const
 
std::complex< double > one () const
 

Private Attributes

const std::vector< int > & nocc
 
const std::vector< int > & nvirt
 
const int nspin = 1
 
const int nk = 1
 
const bool tdm_sym = false
 whether to symmetrize the transition density matrix
 
const std::vector< Parallel_2D > & pX
 
std::unique_ptr< elecstate::DensityMatrix< T, T > > DM_trans
 
hamilt::Operator< T, base_device::DEVICE_CPU > * ops = nullptr
 first node operator, add operations from each operators
 
std::function< void(const int &, const T *const)> cal_dm_trans
 

Constructor & Destructor Documentation

◆ HamiltLR()

template<typename T >
template<typename TGint >
LR::HamiltLR< T >::HamiltLR ( std::string &  xc_kernel,
const int &  nspin,
const int &  naos,
const std::vector< int > &  nocc,
const std::vector< int > &  nvirt,
const UnitCell ucell_in,
const std::vector< double > &  orb_cutoff,
const Grid_Driver gd_in,
const psi::Psi< T > &  psi_ks_in,
const ModuleBase::matrix eig_ks,
TGint gint_in,
std::weak_ptr< PotHxcLR pot_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::string &  spin_type,
const std::string &  ri_hartree_benchmark = "none",
const std::vector< int > &  aims_nbasis = {} 
)
inline

◆ ~HamiltLR()

template<typename T >
LR::HamiltLR< T >::~HamiltLR ( )
inline

Member Function Documentation

◆ global2local()

template<typename T >
void LR::HamiltLR< T >::global2local ( T lvec,
const T gvec,
const int &  nband 
) const
inline

◆ hPsi()

template<typename T >
void LR::HamiltLR< T >::hPsi ( const T *const  psi_in,
T *const  hpsi,
const int  ld_psi,
const int &  nband 
) const
inline
Here is the call graph for this function:

◆ matrix()

template<typename T >
std::vector< T > LR::HamiltLR< T >::matrix ( ) const
Here is the call graph for this function:

◆ one() [1/3]

double LR::HamiltLR< double >::one ( ) const
private

◆ one() [2/3]

std::complex< double > LR::HamiltLR< std::complex< double > >::one ( ) const
private

◆ one() [3/3]

template<typename T >
T LR::HamiltLR< T >::one ( ) const
private

Member Data Documentation

◆ cal_dm_trans

template<typename T >
std::function<void(const int&, const T* const)> LR::HamiltLR< T >::cal_dm_trans
private

◆ DM_trans

template<typename T >
std::unique_ptr<elecstate::DensityMatrix<T, T> > LR::HamiltLR< T >::DM_trans
private

transition density matrix in AO representation calculate on the same address for each bands, and commonly used by all the operators

◆ nk

template<typename T >
const int LR::HamiltLR< T >::nk = 1
private

◆ nocc

template<typename T >
const std::vector<int>& LR::HamiltLR< T >::nocc
private

◆ nspin

template<typename T >
const int LR::HamiltLR< T >::nspin = 1
private

◆ nvirt

template<typename T >
const std::vector<int>& LR::HamiltLR< T >::nvirt
private

◆ ops

template<typename T >
hamilt::Operator<T, base_device::DEVICE_CPU>* LR::HamiltLR< T >::ops = nullptr
private

first node operator, add operations from each operators

◆ pX

template<typename T >
const std::vector<Parallel_2D>& LR::HamiltLR< T >::pX
private

◆ tdm_sym

template<typename T >
const bool LR::HamiltLR< T >::tdm_sym = false
private

whether to symmetrize the transition density matrix


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