ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <hamilt_pw.h>
Public Member Functions | |
HamiltPW (elecstate::Potential *pot_in, ModulePW::PW_Basis_K *wfc_basis, K_Vectors *p_kv, pseudopot_cell_vnl *nlpp, const UnitCell *ucell) | |
template<typename T_in , typename Device_in = Device> | |
HamiltPW (const HamiltPW< T_in, Device_in > *hamilt) | |
~HamiltPW () | |
void | updateHk (const int ik) override |
for target K point, update consequence of hPsi() and matrix() | |
void | sPsi (const T *psi_in, T *spsi, const int nrow, const int npw, const int nbands) const override |
void | set_exx_helper (Exx_Helper< T, Device > &exx_helper_in) |
void | sPsi (const double *psi_in, double *spsi, const int nrow, const int npw, const int nbands) const |
void | sPsi (const std::complex< double > *psi_in, std::complex< double > *spsi, const int nrow, const int npw, const int nbands) const |
void | sPsi (const std::complex< float > *psi_in, std::complex< float > *spsi, const int nrow, const int npw, const int nbands) const |
void | updateHk (const int ik) |
for target K point, update consequence of hPsi() and matrix() | |
HamiltPW (elecstate::Potential *pot_in, ModulePW::PW_Basis_K *wfc_basis, K_Vectors *pkv, pseudopot_cell_vnl *, const UnitCell *) | |
~HamiltPW () | |
void | updateHk (const int ik) |
for target K point, update consequence of hPsi() and matrix() | |
HamiltPW (elecstate::Potential *pot_in, ModulePW::PW_Basis_K *wfc_basis, K_Vectors *pkv, pseudopot_cell_vnl *, const UnitCell *) | |
~HamiltPW () | |
void | updateHk (const int ik) |
for target K point, update consequence of hPsi() and matrix() | |
HamiltPW (elecstate::Potential *pot_in, ModulePW::PW_Basis_K *wfc_basis, K_Vectors *pkv, pseudopot_cell_vnl *, const UnitCell *) | |
~HamiltPW () | |
![]() | |
virtual | ~Hamilt () |
virtual void | refresh (void) |
refresh status of Hamiltonian, for example, refresh H(R) and S(R) in LCAO case | |
virtual void | hPsi (const T *psi_in, T *hpsi, const size_t size) const |
core function: for solving eigenvalues of Hamiltonian with iterative method | |
virtual void | matrix (MatrixBlock< std::complex< double > > &hk_in, MatrixBlock< std::complex< double > > &sk_in) |
core function: return H(k) and S(k) matrixs for direct solving eigenvalues. | |
virtual void | matrix (MatrixBlock< double > &hk_in, MatrixBlock< double > &sk_in) |
virtual std::vector< T > | matrix () |
Protected Types | |
using | gemv_op = ModuleBase::gemv_op< T, Device > |
using | gemm_op = ModuleBase::gemm_op< T, Device > |
using | setmem_complex_op = base_device::memory::set_memory_op< T, Device > |
using | resmem_complex_op = base_device::memory::resize_memory_op< T, Device > |
using | delmem_complex_op = base_device::memory::delete_memory_op< T, Device > |
using | syncmem_op = base_device::memory::synchronize_memory_op< T, Device, Device > |
![]() | |
using | syncmem_op = base_device::memory::synchronize_memory_op< T, Device, Device > |
Protected Attributes | |
const pseudopot_cell_vnl * | ppcell = nullptr |
const UnitCell *const | ucell = nullptr |
T * | vkb = nullptr |
Real * | qq_nt = nullptr |
T * | qq_so = nullptr |
Device * | ctx = {} |
![]() | |
Device * | ctx = {} |
Private Types | |
using | Real = typename GetTypeReal< T >::type |
Additional Inherited Members | |
![]() | |
std::string | classname = "none" |
int | non_first_scf =0 |
Operator< T, Device > * | ops = nullptr |
first node operator, add operations from each operators | |
|
protected |
|
protected |
|
protected |
|
private |
|
protected |
|
protected |
|
protected |
hamilt::HamiltPW< T, Device >::HamiltPW | ( | elecstate::Potential * | pot_in, |
ModulePW::PW_Basis_K * | wfc_basis, | ||
K_Vectors * | p_kv, | ||
pseudopot_cell_vnl * | nlpp, | ||
const UnitCell * | ucell | ||
) |
|
explicit |
hamilt::HamiltPW< T, Device >::~HamiltPW | ( | ) |
hamilt::HamiltPW< double >::HamiltPW | ( | elecstate::Potential * | pot_in, |
ModulePW::PW_Basis_K * | wfc_basis, | ||
K_Vectors * | pkv, | ||
pseudopot_cell_vnl * | , | ||
const UnitCell * | |||
) |
hamilt::HamiltPW< double >::~HamiltPW | ( | ) |
hamilt::HamiltPW< std::complex< double > >::HamiltPW | ( | elecstate::Potential * | pot_in, |
ModulePW::PW_Basis_K * | wfc_basis, | ||
K_Vectors * | pkv, | ||
pseudopot_cell_vnl * | , | ||
const UnitCell * | |||
) |
hamilt::HamiltPW< std::complex< double > >::~HamiltPW | ( | ) |
hamilt::HamiltPW< std::complex< float > >::HamiltPW | ( | elecstate::Potential * | pot_in, |
ModulePW::PW_Basis_K * | wfc_basis, | ||
K_Vectors * | pkv, | ||
pseudopot_cell_vnl * | , | ||
const UnitCell * | |||
) |
hamilt::HamiltPW< std::complex< float > >::~HamiltPW | ( | ) |
void hamilt::HamiltPW< T, Device >::set_exx_helper | ( | Exx_Helper< T, Device > & | exx_helper_in | ) |
void hamilt::HamiltPW< double, base_device::DEVICE_CPU >::sPsi | ( | const double * | psi_in, |
double * | spsi, | ||
const int | nrow, | ||
const int | npw, | ||
const int | nbands | ||
) | const |
void hamilt::HamiltPW< std::complex< double >, base_device::DEVICE_CPU >::sPsi | ( | const std::complex< double > * | psi_in, |
std::complex< double > * | spsi, | ||
const int | nrow, | ||
const int | npw, | ||
const int | nbands | ||
) | const |
void hamilt::HamiltPW< std::complex< float >, base_device::DEVICE_CPU >::sPsi | ( | const std::complex< float > * | psi_in, |
std::complex< float > * | spsi, | ||
const int | nrow, | ||
const int | npw, | ||
const int | nbands | ||
) | const |
|
overridevirtual |
|
virtual |
for target K point, update consequence of hPsi() and matrix()
Reimplemented from hamilt::Hamilt< T, Device >.
|
virtual |
for target K point, update consequence of hPsi() and matrix()
Reimplemented from hamilt::Hamilt< T, Device >.
|
virtual |
for target K point, update consequence of hPsi() and matrix()
Reimplemented from hamilt::Hamilt< T, Device >.
|
overridevirtual |
for target K point, update consequence of hPsi() and matrix()
Reimplemented from hamilt::Hamilt< T, Device >.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |