1#ifndef TOWannier90_LCAO_H
2#define TOWannier90_LCAO_H
52 Coordinate_3D(
double x = 0.0,
double y = 0.0,
double z = 0.0) :
x(
x), y(y), z(z)
56 bool operator<(
const Coordinate_3D& other)
const
63 return std::abs(z - other.z) >=
threshold && z < other.z;
70 toWannier90_LCAO(
const bool& out_wannier_mmn,
71 const bool& out_wannier_amn,
72 const bool& out_wannier_unk,
73 const bool& out_wannier_eig,
74 const bool& out_wannier_wvfn_formatted,
75 const std::string& nnkpfile,
76 const std::string& wannier_spin,
95 throw std::logic_error(
"The wave function of toWannier90_LCAO_IN_PW is generally a std::complex<double> type.");
104 const int mesh_r = 1001;
105 const double dr = 0.01;
106 std::vector<std::vector<Numerical_Orbital_Lm>> A_orbs;
115 double kmesh_times = 1;
118 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> orbs;
119 std::map<size_t, std::map<size_t, std::map<size_t, Center2_Orb::Orb11>>> center2_orb11_A;
121 std::vector<ModuleBase::Vector3<double>> R_coor_car;
122 std::vector<std::vector<std::vector<double>>> psi_psiA_R;
124 std::vector<int> iw2it;
125 std::vector<int> iw2ia;
126 std::vector<int> iw2iL;
127 std::vector<int> iw2iN;
128 std::vector<int> iw2im;
129 std::vector<int> iw2iorb;
133 void initialize_orb_table(
const UnitCell& ucell);
134 void produce_basis_orb();
138 std::vector<Coordinate_3D> delta_k_all;
139 std::map<Coordinate_3D, int> delta_k_all_index;
141 void unkdotkb(
const UnitCell& ucell,
143 const psi::Psi<std::complex<double>>& psi_in,
149 void produce_trial_in_lcao();
150 void construct_overlap_table_project();
151 void cal_orbA_overlap_R(
const UnitCell& ucell);
154 const psi::Psi<std::complex<double>>& psi_in,
158 std::vector<FR_overlap<std::complex<double>>> FR;
bool operator<(const Abfs::Vector3_Order< double > &v1, const Abfs::Vector3_Order< double > &v2)
Definition abfs-vector3_order.cpp:4
Definition sltk_grid_driver.h:43
Definition complexmatrix.h:14
Definition sph_bessel_recursive.h:49
3 elements vector
Definition vector3.h:22
Definition ORB_atomic_lm.h:22
Definition ORB_gaunt_table.h:9
Definition parallel_orbitals.h:9
Definition to_wannier90.h:23
void cal_Amn()
Definition to_wannier90.cpp:124
void cal_Mmn()
Definition to_wannier90.cpp:128
void out_unk()
Definition to_wannier90.cpp:120
void calculate()
Definition to_wannier90.cpp:69
double x[440]
Definition sincos.cpp:28
#define threshold
Definition sph_bessel_recursive_test.cpp:4