ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
berryphase.h
Go to the documentation of this file.
1#ifndef MODULE_IO_BERRYPHASE_H
2#define MODULE_IO_BERRYPHASE_H
3#include "unk_overlap_pw.h"
4#ifdef __LCAO
5#include "unk_overlap_lcao.h"
6#endif
7//#include "source_basis/module_pw/pw_basis.h"
9#include "source_cell/klist.h"
10#include "source_psi/psi.h"
12
14{
15
16 public:
17 berryphase(); // for pw-line
18#ifdef __LCAO
19 berryphase(const Parallel_Orbitals* paraV_in); // for lcao-line
20#endif
22
23 // mohan add 2021-02-16
24 static bool berry_phase_flag;
26#ifdef __LCAO
27 unkOverlap_lcao lcao_method;
28 const Parallel_Orbitals* paraV;
29#endif
30
32 std::vector<std::vector<int>> k_index;
33 int nppstr=0;
34 int direction=0;
36 int GDIR;
37
39#ifdef __LCAO
40 void lcao_init(const UnitCell& ucell,
41 const Grid_Driver& gd,
42 const K_Vectors& kv,
43 const Grid_Technique& grid_tech,
44 const LCAO_Orbitals& orb);
45#endif
46 void set_kpoints(const K_Vectors& kv, const int direction);
47
48 double stringPhase(const UnitCell& ucell,
49 int index_str,
50 int nbands,
51 const int npwx,
52 const psi::Psi<std::complex<double>>* psi_in,
53 const ModulePW::PW_Basis* rhopw,
54 const ModulePW::PW_Basis_K* wfcpw,
55 const K_Vectors& kv);
56
57 void Berry_Phase(const UnitCell& ucell,
58 int nbands,
59 double& pdl_elec_tot,
60 int& mod_elec_tot,
61 const int npwx,
62 const psi::Psi<std::complex<double>>* psi_in,
63 const ModulePW::PW_Basis* rhopw,
64 const ModulePW::PW_Basis_K* wfcpw,
65 const K_Vectors& kv);
66
68 const int npwx,
69 const psi::Psi<double>* psi_in,
70 const ModulePW::PW_Basis* rhopw,
71 const ModulePW::PW_Basis_K* wfcpw,
72 const K_Vectors& kv)
73 {
74 throw std::logic_error("berry phase supports only multi-k");
75 };
76 void Macroscopic_polarization(const UnitCell& ucell,
77 const int npwx,
78 const psi::Psi<std::complex<double>>* psi_in,
79 const ModulePW::PW_Basis* rhopw,
80 const ModulePW::PW_Basis_K* wfcpw,
81 const K_Vectors& kv);
82
83 std::string outFormat(const double polarization, const double modulus, const ModuleBase::Vector3<double> project);
84};
85
86#endif
Definition sltk_grid_driver.h:43
Definition grid_technique.h:18
Definition klist.h:13
Definition ORB_read.h:19
3 elements vector
Definition vector3.h:22
Special pw_basis class. It includes different k-points.
Definition pw_basis_k.h:57
A class which can convert a function of "r" to the corresponding linear superposition of plane waves ...
Definition pw_basis.h:56
Definition parallel_orbitals.h:9
Definition unitcell.h:16
Definition berryphase.h:14
void set_kpoints(const K_Vectors &kv, const int direction)
Definition berryphase.cpp:59
int GDIR
Definition berryphase.h:36
static bool berry_phase_flag
Definition berryphase.h:24
berryphase()
Definition berryphase.cpp:11
void Macroscopic_polarization(const UnitCell &ucell, const int npwx, const psi::Psi< double > *psi_in, const ModulePW::PW_Basis *rhopw, const ModulePW::PW_Basis_K *wfcpw, const K_Vectors &kv)
Definition berryphase.h:67
void get_occupation_bands()
Definition berryphase.cpp:27
~berryphase()
Definition berryphase.cpp:23
int occ_nbands
Definition berryphase.h:35
void Berry_Phase(const UnitCell &ucell, int nbands, double &pdl_elec_tot, int &mod_elec_tot, const int npwx, const psi::Psi< std::complex< double > > *psi_in, const ModulePW::PW_Basis *rhopw, const ModulePW::PW_Basis_K *wfcpw, const K_Vectors &kv)
Definition berryphase.cpp:347
std::vector< std::vector< int > > k_index
Definition berryphase.h:32
double stringPhase(const UnitCell &ucell, int index_str, int nbands, const int npwx, const psi::Psi< std::complex< double > > *psi_in, const ModulePW::PW_Basis *rhopw, const ModulePW::PW_Basis_K *wfcpw, const K_Vectors &kv)
Definition berryphase.cpp:221
unkOverlap_pw pw_method
Definition berryphase.h:25
int total_string
Definition berryphase.h:31
int nppstr
Definition berryphase.h:33
int direction
Definition berryphase.h:34
std::string outFormat(const double polarization, const double modulus, const ModuleBase::Vector3< double > project)
Definition berryphase.cpp:681
Definition psi.h:37
Definition unk_overlap_lcao.h:22
Definition unk_overlap_pw.h:18