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

#include <hamilt_pw.h>

Inheritance diagram for hamilt::HamiltPW< T, Device >:
Collaboration diagram for hamilt::HamiltPW< T, Device >:

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 ()
 
- Public Member Functions inherited from hamilt::Hamilt< T, Device >
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< Tmatrix ()
 

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 >
 
- Protected Types inherited from hamilt::Hamilt< T, Device >
using syncmem_op = base_device::memory::synchronize_memory_op< T, Device, Device >
 

Protected Attributes

const pseudopot_cell_vnlppcell = nullptr
 
const UnitCell *const ucell = nullptr
 
Tvkb = nullptr
 
Realqq_nt = nullptr
 
Tqq_so = nullptr
 
Device * ctx = {}
 
- Protected Attributes inherited from hamilt::Hamilt< T, Device >
Device * ctx = {}
 

Private Types

using Real = typename GetTypeReal< T >::type
 

Additional Inherited Members

- Public Attributes inherited from hamilt::Hamilt< T, Device >
std::string classname = "none"
 
int non_first_scf =0
 
Operator< T, Device > * ops = nullptr
 first node operator, add operations from each operators
 

Member Typedef Documentation

◆ delmem_complex_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hamilt::HamiltPW< T, Device >::delmem_complex_op = base_device::memory::delete_memory_op<T, Device>
protected

◆ gemm_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hamilt::HamiltPW< T, Device >::gemm_op = ModuleBase::gemm_op<T, Device>
protected

◆ gemv_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hamilt::HamiltPW< T, Device >::gemv_op = ModuleBase::gemv_op<T, Device>
protected

◆ Real

template<typename T , typename Device = base_device::DEVICE_CPU>
using hamilt::HamiltPW< T, Device >::Real = typename GetTypeReal<T>::type
private

◆ resmem_complex_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hamilt::HamiltPW< T, Device >::resmem_complex_op = base_device::memory::resize_memory_op<T, Device>
protected

◆ setmem_complex_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hamilt::HamiltPW< T, Device >::setmem_complex_op = base_device::memory::set_memory_op<T, Device>
protected

◆ syncmem_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hamilt::HamiltPW< T, Device >::syncmem_op = base_device::memory::synchronize_memory_op<T, Device, Device>
protected

Constructor & Destructor Documentation

◆ HamiltPW() [1/5]

template<typename T , typename Device >
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 
)

◆ HamiltPW() [2/5]

template<typename T , typename Device >
template<typename T_in , typename Device_in >
hamilt::HamiltPW< T, Device >::HamiltPW ( const HamiltPW< T_in, Device_in > *  hamilt)
explicit
Here is the call graph for this function:

◆ ~HamiltPW() [1/4]

template<typename T , typename Device >
hamilt::HamiltPW< T, Device >::~HamiltPW ( )

◆ HamiltPW() [3/5]

hamilt::HamiltPW< double >::HamiltPW ( elecstate::Potential pot_in,
ModulePW::PW_Basis_K wfc_basis,
K_Vectors pkv,
pseudopot_cell_vnl ,
const UnitCell  
)

◆ ~HamiltPW() [2/4]

hamilt::HamiltPW< double >::~HamiltPW ( )

◆ HamiltPW() [4/5]

hamilt::HamiltPW< std::complex< double > >::HamiltPW ( elecstate::Potential pot_in,
ModulePW::PW_Basis_K wfc_basis,
K_Vectors pkv,
pseudopot_cell_vnl ,
const UnitCell  
)

◆ ~HamiltPW() [3/4]

hamilt::HamiltPW< std::complex< double > >::~HamiltPW ( )

◆ HamiltPW() [5/5]

hamilt::HamiltPW< std::complex< float > >::HamiltPW ( elecstate::Potential pot_in,
ModulePW::PW_Basis_K wfc_basis,
K_Vectors pkv,
pseudopot_cell_vnl ,
const UnitCell  
)

◆ ~HamiltPW() [4/4]

hamilt::HamiltPW< std::complex< float > >::~HamiltPW ( )

Member Function Documentation

◆ set_exx_helper()

template<typename T , typename Device >
void hamilt::HamiltPW< T, Device >::set_exx_helper ( Exx_Helper< T, Device > &  exx_helper_in)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sPsi() [1/4]

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

◆ sPsi() [2/4]

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

◆ sPsi() [3/4]

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

◆ sPsi() [4/4]

template<typename T , typename Device >
void hamilt::HamiltPW< T, Device >::sPsi ( const T psi_in,
T spsi,
const int  nrow,
const int  npw,
const int  nbands 
) const
overridevirtual

Reimplemented from hamilt::Hamilt< T, Device >.

Here is the call graph for this function:

◆ updateHk() [1/4]

void hamilt::HamiltPW< double >::updateHk ( const int  ik)
virtual

for target K point, update consequence of hPsi() and matrix()

Reimplemented from hamilt::Hamilt< T, Device >.

◆ updateHk() [2/4]

void hamilt::HamiltPW< std::complex< double > >::updateHk ( const int  ik)
virtual

for target K point, update consequence of hPsi() and matrix()

Reimplemented from hamilt::Hamilt< T, Device >.

◆ updateHk() [3/4]

void hamilt::HamiltPW< std::complex< float > >::updateHk ( const int  ik)
virtual

for target K point, update consequence of hPsi() and matrix()

Reimplemented from hamilt::Hamilt< T, Device >.

◆ updateHk() [4/4]

template<typename T , typename Device >
void hamilt::HamiltPW< T, Device >::updateHk ( const int  ik)
overridevirtual

for target K point, update consequence of hPsi() and matrix()

Reimplemented from hamilt::Hamilt< T, Device >.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ ctx

template<typename T , typename Device = base_device::DEVICE_CPU>
Device* hamilt::HamiltPW< T, Device >::ctx = {}
protected

◆ ppcell

template<typename T , typename Device = base_device::DEVICE_CPU>
const pseudopot_cell_vnl* hamilt::HamiltPW< T, Device >::ppcell = nullptr
protected

◆ qq_nt

template<typename T , typename Device = base_device::DEVICE_CPU>
Real* hamilt::HamiltPW< T, Device >::qq_nt = nullptr
protected

◆ qq_so

template<typename T , typename Device = base_device::DEVICE_CPU>
T* hamilt::HamiltPW< T, Device >::qq_so = nullptr
protected

◆ ucell

template<typename T , typename Device = base_device::DEVICE_CPU>
const UnitCell* const hamilt::HamiltPW< T, Device >::ucell = nullptr
protected

◆ vkb

template<typename T , typename Device = base_device::DEVICE_CPU>
T* hamilt::HamiltPW< T, Device >::vkb = nullptr
mutableprotected

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