ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
hsolver_pw_sdft.h
Go to the documentation of this file.
1#ifndef HSOLVERPW_SDFT_H
2#define HSOLVERPW_SDFT_H
3#include "hsolver_pw.h"
6namespace hsolver
7{
8template <typename T, typename Device = base_device::DEVICE_CPU>
9class HSolverPW_SDFT : public HSolverPW<T, Device>
10{
11 protected:
12 using Real = typename GetTypeReal<T>::type;
13
14 public:
16 ModulePW::PW_Basis_K* wfc_basis_in,
20 const std::string calculation_type_in,
21 const std::string basis_type_in,
22 const std::string method_in,
23 const bool use_paw_in,
24 const bool use_uspp_in,
25 const int nspin_in,
26 const int scf_iter_in,
27 const int diag_iter_max_in,
28 const double diag_thr_in,
29 const bool need_subspace_in)
30 : HSolverPW<T, Device>(wfc_basis_in,
31 calculation_type_in,
32 basis_type_in,
33 method_in,
34 use_paw_in,
35 use_uspp_in,
36 nspin_in,
37 scf_iter_in,
38 diag_iter_max_in,
39 diag_thr_in,
40 need_subspace_in)
41 {
42 stoiter.init(pkv, wfc_basis_in, stowf, stoche, p_hamilt_sto);
43 }
44
45 void solve(const UnitCell& ucell,
48 psi::Psi<T>& psi_cpu,
52 const int istep,
53 const int iter,
54 const bool skip_charge);
55
57
58 protected:
65};
66} // namespace hsolver
67#endif
Definition klist.h:13
Special pw_basis class. It includes different k-points.
Definition pw_basis_k.h:57
Definition sto_che.h:9
Definition sto_iter.h:22
Definition sto_wf.h:13
Definition unitcell.h:16
Definition elecstate.h:15
Definition hamilt_sdft_pw.h:11
Definition hamilt.h:16
Definition hsolver_pw_sdft.h:10
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)
Definition hsolver_pw_sdft.h:15
Stochastic_Iter< T, Device > stoiter
Definition hsolver_pw_sdft.h:56
typename GetTypeReal< T >::type Real
Definition hsolver_pw_sdft.h:12
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)
Definition hsolver_pw_sdft.cpp:15
Definition hsolver_pw.h:16
ModulePW::PW_Basis_K * wfc_basis
Definition hsolver_pw.h:74
Definition psi.h:37
#define T
Definition exp.cpp:237
Definition diag_comm_info.h:9
Definition exx_lip.h:23
T type
Definition macros.h:8
Definition memory_op.h:31