ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
Namespaces | |
namespace | HSolver |
Classes | |
class | ESolver_LR |
Excited State Solver: Linear Response TDDFT (Tamm Dancoff Approximation) More... | |
class | HamiltLR |
class | HamiltULR |
class | KernelXC |
Calculate the exchange-correlation (XC) kernel ($f_{xc}=\delta^2E_xc/\delta\rho^2$) and store its components. More... | |
class | LR_Spectrum |
class | OperatorLRDiag |
Diag part of A operator: [AX]_iak = (e_ak - e_ik) X_iak. More... | |
class | OperatorLREXX |
class | OperatorLRHxc |
Hxc part of A operator for LR-TDDFT. More... | |
class | PotHxcLR |
struct | TGint |
struct | TGint< double > |
struct | TGint< std::complex< double > > |
Typedefs | |
template<typename T > | |
using | Real = typename GetTypeReal< T >::type |
Enumerations | |
enum | MO_TYPE { OO , VO , VV , OO , VO , VV } |
enum | MO_TYPE { OO , VO , VV , OO , VO , VV } |
Functions | |
template<typename T > | |
void | ao_to_mo_forloop_serial (const std::vector< container::Tensor > &mat_ao, const psi::Psi< T > &coeff, const int &nocc, const int &nvirt, T *const mat_mo, const MO_TYPE type=VO) |
template<typename T > | |
void | ao_to_mo_blas (const std::vector< container::Tensor > &mat_ao, const psi::Psi< T > &coeff, const int &nocc, const int &nvirt, T *const mat_mo, const bool add_on=true, const MO_TYPE type=VO) |
template<typename T > | |
void | ao_to_mo_pblas (const std::vector< container::Tensor > &mat_ao, const Parallel_2D &pmat_ao, const psi::Psi< T > &coeff, const Parallel_2D &pcoeff, const int &naos, const int &nocc, const int &nvirt, const Parallel_2D &pmat_mo, T *const mat_mo, const bool add_on=true, const MO_TYPE type=VO) |
template<> | |
void | ao_to_mo_pblas (const std::vector< container::Tensor > &mat_ao, const Parallel_2D &pmat_ao, const psi::Psi< double > &coeff, const Parallel_2D &pcoeff, const int &naos, const int &nocc, const int &nvirt, const Parallel_2D &pmat_mo, double *mat_mo, const bool add_on, const MO_TYPE type) |
template<> | |
void | ao_to_mo_pblas (const std::vector< container::Tensor > &mat_ao, const Parallel_2D &pmat_ao, const psi::Psi< std::complex< double > > &coeff, const Parallel_2D &pcoeff, const int &naos, const int &nocc, const int &nvirt, const Parallel_2D &pmat_mo, std::complex< double > *const mat_mo, const bool add_on, const MO_TYPE type) |
template<> | |
void | ao_to_mo_forloop_serial (const std::vector< container::Tensor > &mat_ao, const psi::Psi< double > &coeff, const int &nocc, const int &nvirt, double *mat_mo, const MO_TYPE type) |
template<> | |
void | ao_to_mo_forloop_serial (const std::vector< container::Tensor > &mat_ao, const psi::Psi< std::complex< double > > &coeff, const int &nocc, const int &nvirt, std::complex< double > *const mat_mo, const MO_TYPE type) |
template<> | |
void | ao_to_mo_blas (const std::vector< container::Tensor > &mat_ao, const psi::Psi< double > &coeff, const int &nocc, const int &nvirt, double *mat_mo, const bool add_on, const MO_TYPE type) |
template<> | |
void | ao_to_mo_blas (const std::vector< container::Tensor > &mat_ao, const psi::Psi< std::complex< double > > &coeff, const int &nocc, const int &nvirt, std::complex< double > *const mat_mo, const bool add_on, const MO_TYPE type) |
template<typename T > | |
std::vector< container::Tensor > | cal_dm_trans_pblas (const T *const X_istate, const Parallel_2D &px, const psi::Psi< T > &c, const Parallel_2D &pc, const int naos, const int nocc, const int nvirt, const Parallel_2D &pmat, const T factor=(T) 1.0, const MO_TYPE type=MO_TYPE::VO) |
calculate the 2d-block transition density matrix in AO basis using p?gemm | |
template<typename T > | |
std::vector< container::Tensor > | cal_dm_trans_blas (const T *const X_istate, const psi::Psi< T > &c, const int &nocc, const int &nvirt, const T factor=(T) 1.0, const MO_TYPE type=MO_TYPE::VO) |
calculate the 2d-block transition density matrix in AO basis using ?gemm | |
template<typename T > | |
std::vector< container::Tensor > | cal_dm_trans_forloop_serial (const T *const X_istate, const psi::Psi< T > &c, const int &nocc, const int &nvirt, const T factor=(T) 1.0, const MO_TYPE type=MO_TYPE::VO) |
calculate the 2d-block transition density matrix in AO basis using for loop (for test) | |
template<> | |
std::vector< container::Tensor > | cal_dm_trans_pblas (const double *const X_istate, const Parallel_2D &px, const psi::Psi< double > &c, const Parallel_2D &pc, const int naos, const int nocc, const int nvirt, const Parallel_2D &pmat, const double factor, const MO_TYPE type) |
template<> | |
std::vector< container::Tensor > | cal_dm_trans_pblas (const std::complex< double > *const X_istate, const Parallel_2D &px, const psi::Psi< std::complex< double > > &c, const Parallel_2D &pc, const int naos, const int nocc, const int nvirt, const Parallel_2D &pmat, const std::complex< double > factor, const MO_TYPE type) |
template<> | |
std::vector< container::Tensor > | cal_dm_trans_forloop_serial (const double *const X_istate, const psi::Psi< double > &c, const int &nocc, const int &nvirt, const double factor, const MO_TYPE type) |
template<> | |
std::vector< container::Tensor > | cal_dm_trans_forloop_serial (const std::complex< double > *const X_istate, const psi::Psi< std::complex< double > > &c, const int &nocc, const int &nvirt, const std::complex< double > factor, const MO_TYPE type) |
template<> | |
std::vector< container::Tensor > | cal_dm_trans_blas (const double *const X_istate, const psi::Psi< double > &c, const int &nocc, const int &nvirt, const double factor, const MO_TYPE type) |
template<> | |
std::vector< container::Tensor > | cal_dm_trans_blas (const std::complex< double > *const X_istate, const psi::Psi< std::complex< double > > &c, const int &nocc, const int &nvirt, const std::complex< double > factor, const MO_TYPE type) |
Velocity_op< std::complex< double > > | get_velocity_matrix_R (const UnitCell &ucell, const Grid_Driver &gd, const Parallel_Orbitals &pmat, const TwoCenterBundle &two_center_bundle) |
get the velocity matrix v(R) | |
double | lorentz_delta (const double dfreq_au, const double eta_au) |
double | gauss_delta (const double dfreq_au, const double eta_au) |
template<typename T > | |
ModuleBase::Vector3< T > | convert_vector_to_vector3 (const std::vector< std::complex< double > > &vec) |
template<> | |
ModuleBase::Vector3< double > | convert_vector_to_vector3 (const std::vector< std::complex< double > > &vec) |
template<> | |
ModuleBase::Vector3< std::complex< double > > | convert_vector_to_vector3 (const std::vector< std::complex< double > > &vec) |
void | cal_eig_ks_diff (double *const eig_ks_diff, const double *const eig_ks, const Parallel_2D &px, const int nk, const int nocc, const int nvirt) |
using LR::Real = typedef typename GetTypeReal<T>::type |
enum LR::MO_TYPE |
enum LR::MO_TYPE |
void LR::ao_to_mo_blas | ( | const std::vector< container::Tensor > & | mat_ao, |
const psi::Psi< double > & | coeff, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
double * | mat_mo, | ||
const bool | add_on, | ||
const MO_TYPE | type | ||
) |
void LR::ao_to_mo_blas | ( | const std::vector< container::Tensor > & | mat_ao, |
const psi::Psi< std::complex< double > > & | coeff, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
std::complex< double > *const | mat_mo, | ||
const bool | add_on, | ||
const MO_TYPE | type | ||
) |
void LR::ao_to_mo_blas | ( | const std::vector< container::Tensor > & | mat_ao, |
const psi::Psi< T > & | coeff, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
T *const | mat_mo, | ||
const bool | add_on = true , |
||
const MO_TYPE | type = VO |
||
) |
void LR::ao_to_mo_forloop_serial | ( | const std::vector< container::Tensor > & | mat_ao, |
const psi::Psi< double > & | coeff, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
double * | mat_mo, | ||
const MO_TYPE | type | ||
) |
void LR::ao_to_mo_forloop_serial | ( | const std::vector< container::Tensor > & | mat_ao, |
const psi::Psi< std::complex< double > > & | coeff, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
std::complex< double > *const | mat_mo, | ||
const MO_TYPE | type | ||
) |
void LR::ao_to_mo_forloop_serial | ( | const std::vector< container::Tensor > & | mat_ao, |
const psi::Psi< T > & | coeff, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
T *const | mat_mo, | ||
const MO_TYPE | type = VO |
||
) |
void LR::ao_to_mo_pblas | ( | const std::vector< container::Tensor > & | mat_ao, |
const Parallel_2D & | pmat_ao, | ||
const psi::Psi< double > & | coeff, | ||
const Parallel_2D & | pcoeff, | ||
const int & | naos, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
const Parallel_2D & | pmat_mo, | ||
double * | mat_mo, | ||
const bool | add_on, | ||
const MO_TYPE | type | ||
) |
void LR::ao_to_mo_pblas | ( | const std::vector< container::Tensor > & | mat_ao, |
const Parallel_2D & | pmat_ao, | ||
const psi::Psi< std::complex< double > > & | coeff, | ||
const Parallel_2D & | pcoeff, | ||
const int & | naos, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
const Parallel_2D & | pmat_mo, | ||
std::complex< double > *const | mat_mo, | ||
const bool | add_on, | ||
const MO_TYPE | type | ||
) |
void LR::ao_to_mo_pblas | ( | const std::vector< container::Tensor > & | mat_ao, |
const Parallel_2D & | pmat_ao, | ||
const psi::Psi< T > & | coeff, | ||
const Parallel_2D & | pcoeff, | ||
const int & | naos, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
const Parallel_2D & | pmat_mo, | ||
T *const | mat_mo, | ||
const bool | add_on = true , |
||
const MO_TYPE | type = VO |
||
) |
std::vector< container::Tensor > LR::cal_dm_trans_blas | ( | const double *const | X_istate, |
const psi::Psi< double > & | c, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
const double | factor, | ||
const MO_TYPE | type | ||
) |
std::vector< container::Tensor > LR::cal_dm_trans_blas | ( | const std::complex< double > *const | X_istate, |
const psi::Psi< std::complex< double > > & | c, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
const std::complex< double > | factor, | ||
const MO_TYPE | type | ||
) |
std::vector< container::Tensor > LR::cal_dm_trans_blas | ( | const T *const | X_istate, |
const psi::Psi< T > & | c, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
const T | factor = (T) 1.0 , |
||
const MO_TYPE | type = MO_TYPE::VO |
||
) |
calculate the 2d-block transition density matrix in AO basis using ?gemm
std::vector< container::Tensor > LR::cal_dm_trans_forloop_serial | ( | const double *const | X_istate, |
const psi::Psi< double > & | c, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
const double | factor, | ||
const MO_TYPE | type | ||
) |
std::vector< container::Tensor > LR::cal_dm_trans_forloop_serial | ( | const std::complex< double > *const | X_istate, |
const psi::Psi< std::complex< double > > & | c, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
const std::complex< double > | factor, | ||
const MO_TYPE | type | ||
) |
std::vector< container::Tensor > LR::cal_dm_trans_forloop_serial | ( | const T *const | X_istate, |
const psi::Psi< T > & | c, | ||
const int & | nocc, | ||
const int & | nvirt, | ||
const T | factor = (T) 1.0 , |
||
const MO_TYPE | type = MO_TYPE::VO |
||
) |
calculate the 2d-block transition density matrix in AO basis using for loop (for test)
std::vector< container::Tensor > LR::cal_dm_trans_pblas | ( | const double *const | X_istate, |
const Parallel_2D & | px, | ||
const psi::Psi< double > & | c, | ||
const Parallel_2D & | pc, | ||
const int | naos, | ||
const int | nocc, | ||
const int | nvirt, | ||
const Parallel_2D & | pmat, | ||
const double | factor, | ||
const MO_TYPE | type | ||
) |
std::vector< container::Tensor > LR::cal_dm_trans_pblas | ( | const std::complex< double > *const | X_istate, |
const Parallel_2D & | px, | ||
const psi::Psi< std::complex< double > > & | c, | ||
const Parallel_2D & | pc, | ||
const int | naos, | ||
const int | nocc, | ||
const int | nvirt, | ||
const Parallel_2D & | pmat, | ||
const std::complex< double > | factor, | ||
const MO_TYPE | type | ||
) |
std::vector< container::Tensor > LR::cal_dm_trans_pblas | ( | const T *const | X_istate, |
const Parallel_2D & | px, | ||
const psi::Psi< T > & | c, | ||
const Parallel_2D & | pc, | ||
const int | naos, | ||
const int | nocc, | ||
const int | nvirt, | ||
const Parallel_2D & | pmat, | ||
const T | factor = (T) 1.0 , |
||
const MO_TYPE | type = MO_TYPE::VO |
||
) |
calculate the 2d-block transition density matrix in AO basis using p?gemm
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
get the velocity matrix v(R)
|
inline |