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_uspp_in,
24 const int nspin_in,
25 const int scf_iter_in,
26 const int diag_iter_max_in,
27 const double diag_thr_in,
28 const bool need_subspace_in)
29 : HSolverPW<T, Device>(wfc_basis_in,
30 calculation_type_in,
31 basis_type_in,
32 method_in,
33 use_uspp_in,
34 nspin_in,
35 scf_iter_in,
36 diag_iter_max_in,
37 diag_thr_in,
38 need_subspace_in)
39 {
40 stoiter.init(pkv, wfc_basis_in, stowf, stoche, p_hamilt_sto);
41 }
42
43 void solve(const UnitCell& ucell,
46 psi::Psi<T>& psi_cpu,
50 const int istep,
51 const int iter,
52 const bool skip_charge);
53
55
56 protected:
63};
64} // namespace hsolver
65#endif
Definition klist.h:12
Special pw_basis class. It includes different k-points.
Definition pw_basis_k.h:56
Definition sto_che.h:9
Definition sto_iter.h:22
Definition sto_wf.h:13
Definition unitcell.h:15
Definition elecstate.h:15
Definition hamilt_sdft_pw.h:11
Definition hamilt.h:17
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_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:54
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:15
ModulePW::PW_Basis_K * wfc_basis
Definition hsolver_pw.h:72
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