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

#include <hsolver_pw_sdft.h>

Inheritance diagram for hsolver::HSolverPW_SDFT< T, Device >:
Collaboration diagram for hsolver::HSolverPW_SDFT< T, Device >:

Public Member Functions

 HSolverPW_SDFT (K_Vectors *pkv, ModulePW::PW_Basis_K *wfc_basis_in, Stochastic_WF< T, Device > &stowf, StoChe< Real, Device > &stoche, hamilt::HamiltSdftPW< T, Device > *p_hamilt_sto, const std::string calculation_type_in, const std::string basis_type_in, const std::string method_in, const bool use_paw_in, const bool use_uspp_in, const int nspin_in, const int scf_iter_in, const int diag_iter_max_in, const double diag_thr_in, const bool need_subspace_in)
 
void solve (const UnitCell &ucell, hamilt::Hamilt< T, Device > *pHamilt, psi::Psi< T, Device > &psi, psi::Psi< T > &psi_cpu, elecstate::ElecState *pes, ModulePW::PW_Basis_K *wfc_basis, Stochastic_WF< T, Device > &stowf, const int istep, const int iter, const bool skip_charge)
 
- Public Member Functions inherited from hsolver::HSolverPW< T, Device >
 HSolverPW (ModulePW::PW_Basis_K *wfc_basis_in, const std::string calculation_type_in, const std::string basis_type_in, const std::string method_in, const bool use_paw_in, const bool use_uspp_in, const int nspin_in, const int scf_iter_in, const int diag_iter_max_in, const double diag_thr_in, const bool need_subspace_in, const bool use_k_continuity_in=false)
 
void solve (hamilt::Hamilt< T, Device > *pHamilt, psi::Psi< T, Device > &psi, elecstate::ElecState *pes, double *out_eigenvalues, const int rank_in_pool_in, const int nproc_in_pool_in, const bool skip_charge, const double tpiba, const int nat)
 solve function for pw
 

Public Attributes

Stochastic_Iter< T, Device > stoiter
 

Protected Types

using Real = typename GetTypeReal< T >::type
 
using setmem_complex_op = base_device::memory::set_memory_op< T, Device >
 
using setmem_var_op = base_device::memory::set_memory_op< Real, Device >
 
using syncmem_h2d_op = base_device::memory::synchronize_memory_op< T, Device, base_device::DEVICE_CPU >
 
using syncmem_d2h_op = base_device::memory::synchronize_memory_op< T, base_device::DEVICE_CPU, Device >
 
using syncmem_var_h2d_op = base_device::memory::synchronize_memory_op< Real, Device, base_device::DEVICE_CPU >
 
using syncmem_var_d2h_op = base_device::memory::synchronize_memory_op< Real, base_device::DEVICE_CPU, Device >
 
- Protected Types inherited from hsolver::HSolverPW< T, Device >
using Real = typename GetTypeReal< T >::type
 
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 setmem_complex_op = base_device::memory::set_memory_op< T, Device >
 

Additional Inherited Members

- Protected Member Functions inherited from hsolver::HSolverPW< T, Device >
void hamiltSolvePsiK (hamilt::Hamilt< T, Device > *hm, psi::Psi< T, Device > &psi, std::vector< Real > &pre_condition, Real *eigenvalue, const int &nk_nums)
 
void update_precondition (std::vector< Real > &h_diag, const int ik, const int npw, const Real vl_of_0)
 
void output_iterInfo ()
 
- Protected Attributes inherited from hsolver::HSolverPW< T, Device >
ModulePW::PW_Basis_Kwfc_basis
 
const std::string calculation_type
 
const std::string basis_type
 
const std::string method
 
const bool use_paw
 
const bool use_uspp
 
const int nspin
 
const int scf_iter
 
const int diag_iter_max
 
const double diag_thr
 
const bool need_subspace
 
const bool use_k_continuity
 
Device * ctx = {}
 
int rank_in_pool = 0
 
int nproc_in_pool = 1
 
std::vector< double > ethr_band
 

Member Typedef Documentation

◆ Real

template<typename T , typename Device = base_device::DEVICE_CPU>
using hsolver::HSolverPW_SDFT< T, Device >::Real = typename GetTypeReal<T>::type
protected

◆ setmem_complex_op

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

◆ setmem_var_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hsolver::HSolverPW_SDFT< T, Device >::setmem_var_op = base_device::memory::set_memory_op<Real, Device>
protected

◆ syncmem_d2h_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hsolver::HSolverPW_SDFT< T, Device >::syncmem_d2h_op = base_device::memory::synchronize_memory_op<T, base_device::DEVICE_CPU, Device>
protected

◆ syncmem_h2d_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hsolver::HSolverPW_SDFT< T, Device >::syncmem_h2d_op = base_device::memory::synchronize_memory_op<T, Device, base_device::DEVICE_CPU>
protected

◆ syncmem_var_d2h_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hsolver::HSolverPW_SDFT< T, Device >::syncmem_var_d2h_op = base_device::memory::synchronize_memory_op<Real, base_device::DEVICE_CPU, Device>
protected

◆ syncmem_var_h2d_op

template<typename T , typename Device = base_device::DEVICE_CPU>
using hsolver::HSolverPW_SDFT< T, Device >::syncmem_var_h2d_op = base_device::memory::synchronize_memory_op<Real, Device, base_device::DEVICE_CPU>
protected

Constructor & Destructor Documentation

◆ HSolverPW_SDFT()

template<typename T , typename Device = base_device::DEVICE_CPU>
hsolver::HSolverPW_SDFT< T, Device >::HSolverPW_SDFT ( K_Vectors pkv,
ModulePW::PW_Basis_K wfc_basis_in,
Stochastic_WF< T, Device > &  stowf,
StoChe< Real, Device > &  stoche,
hamilt::HamiltSdftPW< T, Device > *  p_hamilt_sto,
const std::string  calculation_type_in,
const std::string  basis_type_in,
const std::string  method_in,
const bool  use_paw_in,
const bool  use_uspp_in,
const int  nspin_in,
const int  scf_iter_in,
const int  diag_iter_max_in,
const double  diag_thr_in,
const bool  need_subspace_in 
)
inline

Member Function Documentation

◆ solve()

template<typename T , typename Device >
void hsolver::HSolverPW_SDFT< T, Device >::solve ( const UnitCell ucell,
hamilt::Hamilt< T, Device > *  pHamilt,
psi::Psi< T, Device > &  psi,
psi::Psi< T > &  psi_cpu,
elecstate::ElecState pes,
ModulePW::PW_Basis_K wfc_basis,
Stochastic_WF< T, Device > &  stowf,
const int  istep,
const int  iter,
const bool  skip_charge 
)

update psi pointer for each k point

template add precondition calculating here

solve eigenvector and eigenvalue for H(k)

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

Member Data Documentation

◆ stoiter

template<typename T , typename Device = base_device::DEVICE_CPU>
Stochastic_Iter<T, Device> hsolver::HSolverPW_SDFT< T, Device >::stoiter

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