|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <hamilt_ulr.hpp>
Public Member Functions | |
| 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, 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