ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
hamilt_sdft_pw.h
Go to the documentation of this file.
1#ifndef HAMILTSDFTPW_H
2#define HAMILTSDFTPW_H
3
5
6namespace hamilt
7{
8
9template <typename T, typename Device = base_device::DEVICE_CPU>
10class HamiltSdftPW : public HamiltPW<T, Device>
11{
12 public:
13 using Real = typename GetTypeReal<T>::type;
25 ModulePW::PW_Basis_K* wfc_basis,
26 K_Vectors* p_kv,
28 const UnitCell* ucell,
29 const int& npol,
30 Real* emin_in,
31 Real* emax_in);
37
45 void hPsi(const T* psi_in, T* hpsi, const int& nbands = 1);
46
54 void hPsi_norm(const T* psi_in, T* hpsi, const int& nbands = 1);
55
56 Real* emin = nullptr;
57 Real* emax = nullptr;
58
59 private:
60 int npwk_max = 0;
61 int npol = 0;
62 std::vector<int>& ngk;
63};
64
65} // namespace hamilt
66
67#endif
Definition klist.h:13
Special pw_basis class. It includes different k-points.
Definition pw_basis_k.h:57
Definition unitcell.h:16
Definition potential_new.h:48
Definition hamilt_pw.h:18
const UnitCell *const ucell
Definition hamilt_pw.h:45
Definition hamilt_sdft_pw.h:11
std::vector< int > & ngk
number of G vectors
Definition hamilt_sdft_pw.h:62
int npol
number of polarizations
Definition hamilt_sdft_pw.h:61
void hPsi(const T *psi_in, T *hpsi, const int &nbands=1)
Calculate \hat{H}|psi>
Definition hamilt_sdft_pw.cpp:27
void hPsi_norm(const T *psi_in, T *hpsi, const int &nbands=1)
Calculate \hat{H}|psi> and normalize it.
Definition hamilt_sdft_pw.cpp:47
int npwk_max
maximum number of plane waves
Definition hamilt_sdft_pw.h:60
Real * emin
Emin of the Hamiltonian.
Definition hamilt_sdft_pw.h:56
~HamiltSdftPW()
Destroy the HamiltSdftPW object.
Definition hamilt_sdft_pw.h:36
typename GetTypeReal< T >::type Real
Definition hamilt_sdft_pw.h:13
Real * emax
Emax of the Hamiltonian.
Definition hamilt_sdft_pw.h:57
Definition VNL_in_pw.h:21
#define T
Definition exp.cpp:237
Definition hamilt.h:12
T type
Definition macros.h:8