ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <hamilt_ulr.hpp>
Public Member Functions | |
template<typename TGint > | |
HamiltULR (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, Grid_Driver &gd_in, const psi::Psi< T > &psi_ks_in, const ModuleBase::matrix &eig_ks, TGint *gint_in, std::vector< std::shared_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) | |
~HamiltULR () | |
void | hPsi (const T *const psi_in, T *const hpsi, const int ld_psi, const int &nband) const |
std::vector< T > | matrix () const |
void | global2local (T *lvec, const T *gvec, const int &nband) const |
copy global data (eigenvectors) to local memory | |
Private Attributes | |
const std::vector< int > & | nocc |
const std::vector< int > & | nvirt |
const std::vector< Parallel_2D > & | pX |
const int | nk = 1 |
const int | ldim = 1 |
const int | gdim = 1 |
std::vector< hamilt::Operator< T > * > | ops |
4 operator lists: uu, ud, du, dd | |
std::unique_ptr< elecstate::DensityMatrix< T, T > > | DM_trans |
std::function< void(const int &, const T *const)> | cal_dm_trans |
const bool | tdm_sym = false |
whether to symmetrize the transition density matrix | |
Unristricted TDDFT (TDA) for open-shell systems The A matrix is diveded by 4 blocks: uu, ud, du, dd
|
inline |
nocc | {up, down} |
nvirt | {up, down} |
pX_in | {up, down} |
|
inline |
|
inline |
copy global data (eigenvectors) to local memory
|
inline |
band-wise act (also works for close-shell, but not efficient)
|
inline |
|
private |
|
private |
transition density matrix in AO representation Hxc only: size=1, calculate on the same address for each bands Hxc+Exx: size=nbands, store the result of each bands for common use
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
4 operator lists: uu, ud, du, dd
|
private |
|
private |
whether to symmetrize the transition density matrix