ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
get_wf_lcao.h
Go to the documentation of this file.
1#ifndef GET_WF_LCAO_H
2#define GET_WF_LCAO_H
3
6
8{
9 public:
12
14 void begin(const UnitCell& ucell,
15 const psi::Psi<double>* psid,
16 const ModulePW::PW_Basis_K* pw_wfc,
17 const Parallel_Grid& pgrid,
18 const Parallel_Orbitals& para_orb,
19 const int& out_wfc_pw,
20 const K_Vectors& kv,
21 const double nelec,
22 const std::vector<int>& out_wfc_norm,
23 const std::vector<int>& out_wfc_re_im,
24 const int nbands,
25 const int nspin,
26 const int nlocal,
27 const std::string& global_out_dir,
28 std::ofstream& ofs_running);
29
31 void begin(const UnitCell& ucell,
32 const psi::Psi<std::complex<double>>* psi,
33 const ModulePW::PW_Basis_K* pw_wfc,
34 const Parallel_Grid& pgrid,
35 const Parallel_Orbitals& para_orb,
36 const int& out_wfc_pw,
37 const K_Vectors& kv,
38 const double nelec,
39 const std::vector<int>& out_wfc_norm,
40 const std::vector<int>& out_wfc_re_im,
41 const int nbands,
42 const int nspin,
43 const int nlocal,
44 const std::string& global_out_dir,
45 std::ofstream& ofs_running);
46
47 private:
48 void prepare_get_wf(std::ofstream& ofs_running);
49
50 void select_bands(const std::vector<int>& out_wfc_kb, const int nbands, const int fermi_band);
51
52 void set_pw_wfc(const ModulePW::PW_Basis_K* pw_wfc,
53 const int& ik,
54 const int& ib,
55 const int& nspin,
56 const double* const* const rho,
57 psi::Psi<std::complex<double>>& wfc_g);
58
59 int globalIndex(int localindex, int nblk, int nprocs, int myproc);
60
61 int localIndex(int globalindex, int nblk, int nprocs, int& myproc);
62
63#ifdef __MPI
64 template <typename T>
65 int set_wfc_grid(const int naroc[2],
66 const int nb,
67 const int dim0,
68 const int dim1,
69 const int iprow,
70 const int ipcol,
71 const T* in,
72 T** out,
73 const std::vector<int>& trace_lo);
74 template <typename T>
75 void wfc_2d_to_grid(const T* wfc_2d, const Parallel_Orbitals& pv, T** wfc_grid, const std::vector<int>& trace_lo);
76#endif // __MPI
77
78 std::vector<int> bands_picked_;
79 const elecstate::ElecState* pes_ = nullptr;
80};
81#endif // GET_WF_LCAO_H
Definition get_wf_lcao.h:8
void wfc_2d_to_grid(const T *wfc_2d, const Parallel_Orbitals &pv, T **wfc_grid, const std::vector< int > &trace_lo)
Definition get_wf_lcao.cpp:495
void begin(const UnitCell &ucell, const psi::Psi< double > *psid, const ModulePW::PW_Basis_K *pw_wfc, const Parallel_Grid &pgrid, const Parallel_Orbitals &para_orb, const int &out_wfc_pw, const K_Vectors &kv, const double nelec, const std::vector< int > &out_wfc_norm, const std::vector< int > &out_wfc_re_im, const int nbands, const int nspin, const int nlocal, const std::string &global_out_dir, std::ofstream &ofs_running)
For gamma_only.
Definition get_wf_lcao.cpp:20
void set_pw_wfc(const ModulePW::PW_Basis_K *pw_wfc, const int &ik, const int &ib, const int &nspin, const double *const *const rho, psi::Psi< std::complex< double > > &wfc_g)
Definition get_wf_lcao.cpp:409
void prepare_get_wf(std::ofstream &ofs_running)
Definition get_wf_lcao.cpp:573
const elecstate::ElecState * pes_
Definition get_wf_lcao.h:79
void select_bands(const std::vector< int > &out_wfc_kb, const int nbands, const int fermi_band)
Definition get_wf_lcao.cpp:331
~Get_wf_lcao()
Definition get_wf_lcao.cpp:15
std::vector< int > bands_picked_
Definition get_wf_lcao.h:78
int globalIndex(int localindex, int nblk, int nprocs, int myproc)
Definition get_wf_lcao.cpp:592
int localIndex(int globalindex, int nblk, int nprocs, int &myproc)
Definition get_wf_lcao.cpp:599
int set_wfc_grid(const int naroc[2], const int nb, const int dim0, const int dim1, const int iprow, const int ipcol, const T *in, T **out, const std::vector< int > &trace_lo)
Definition get_wf_lcao.cpp:439
Definition klist.h:13
Special pw_basis class. It includes different k-points.
Definition pw_basis_k.h:57
Definition parallel_grid.h:8
Definition parallel_orbitals.h:9
Definition unitcell.h:17
Definition elecstate.h:15
Definition psi.h:37
#define T
Definition exp.cpp:237
Definition exx_lip.h:23