ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
sto_dos.h
Go to the documentation of this file.
1#ifndef STO_DOS
2#define STO_DOS
8
9template <typename FPTYPE, typename Device>
11{
12 public:
13 Sto_DOS(ModulePW::PW_Basis_K* p_wfcpw_in,
14 K_Vectors* p_kv_in,
15 elecstate::ElecState* p_elec_in,
16 psi::Psi<std::complex<double>>* p_psi_in,
17 hamilt::Hamilt<std::complex<double>>* p_hamilt_in,
19 Stochastic_WF<std::complex<double>, base_device::DEVICE_CPU>* p_stowf_in);
20 ~Sto_DOS();
21
34 void decide_param(const int& dos_nche,
35 const double& emin_sto,
36 const double& emax_sto,
37 const bool& dos_setemin,
38 const bool& dos_setemax,
39 const double& dos_emin_ev,
40 const double& dos_emax_ev,
41 const double& dos_scale);
49 void caldos(const double sigmain, const double de, const int npart);
50
51 protected:
52 int nbands_ks = 0;
53 int nbands_sto = 0;
54 int dos_nche = 0;
55 int method_sto = 1;
56 double emax = 0.0;
57 double emin = 0.0;
59 K_Vectors* p_kv = nullptr;
63
65 = nullptr;
67
69};
70
71#endif // STO_DOS
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_dos.h:11
int method_sto
method for sDFT
Definition sto_dos.h:55
~Sto_DOS()
Definition sto_dos.cpp:8
int nbands_ks
number of KS bands
Definition sto_dos.h:52
void decide_param(const int &dos_nche, const double &emin_sto, const double &emax_sto, const bool &dos_setemin, const bool &dos_setemax, const double &dos_emin_ev, const double &dos_emax_ev, const double &dos_scale)
decide the parameters for the DOS calculation
Definition sto_dos.cpp:35
double emax
maximum energy
Definition sto_dos.h:56
int dos_nche
number of Chebyshev orders for DOS
Definition sto_dos.h:54
Stochastic_WF< std::complex< double >, base_device::DEVICE_CPU > * p_stowf
pointer to the stochastic wavefunctions
Definition sto_dos.h:65
psi::Psi< std::complex< double > > * p_psi
pointer to the wavefunction
Definition sto_dos.h:61
elecstate::ElecState * p_elec
pointer to the electronic state
Definition sto_dos.h:60
hamilt::Hamilt< std::complex< double > > * p_hamilt
pointer to the Hamiltonian
Definition sto_dos.h:62
void caldos(const double sigmain, const double de, const int npart)
Calculate DOS using stochastic wavefunctions.
Definition sto_dos.cpp:79
hamilt::HamiltSdftPW< std::complex< double > > * p_hamilt_sto
pointer to the Hamiltonian for sDFT
Definition sto_dos.h:68
double emin
minimum energy
Definition sto_dos.h:57
int nbands_sto
number of stochastic bands
Definition sto_dos.h:53
Sto_Func< double > stofunc
functions
Definition sto_dos.h:66
K_Vectors * p_kv
pointer to the k vectors
Definition sto_dos.h:59
ModulePW::PW_Basis_K * p_wfcpw
pointer to the plane wave basis
Definition sto_dos.h:58
Definition sto_func.h:6
Definition sto_wf.h:13
Definition elecstate.h:15
Definition hamilt_sdft_pw.h:11
Definition hamilt.h:16
Definition psi.h:37