ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
cal_r_overlap_R.h
Go to the documentation of this file.
1#ifndef CAL_R_OVERLAP_R_H
2#define CAL_R_OVERLAP_R_H
3
7#include "source_base/ylm.h"
17#include "single_R_io.h"
18
19#include <map>
20#include <set>
21#include <vector>
22
23// output r_R matrix, added by Jingan
25{
26
27 public:
30
31 double kmesh_times = 4;
32 double sparse_threshold = 1e-10;
33 bool binary = false;
34
35 void init(const UnitCell& ucell,const Parallel_Orbitals& pv, const LCAO_Orbitals& orb);
36 void init_nonlocal(const UnitCell& ucell,const Parallel_Orbitals& pv, const LCAO_Orbitals& orb);
39 const int& T1,
40 const int& L1,
41 const int& m1,
42 const int& N1,
44 const int& T2,
45 const int& L2,
46 const int& m2,
47 const int& N2
48 );
49 void get_psi_r_beta(
50 const UnitCell& ucell,
51 std::vector<std::vector<double>>& nlm,
53 const int& T1,
54 const int& L1,
55 const int& m1,
56 const int& N1,
58 const int& T2
59 );
60 void out_rR(const UnitCell& ucell, const Grid_Driver& gd, const int& istep);
61 void out_rR_other(const UnitCell& ucell, const int& istep, const std::set<Abfs::Vector3_Order<int>>& output_R_coor);
62
63 private:
64 void initialize_orb_table(const UnitCell& ucell, const LCAO_Orbitals& orb);
65 void construct_orbs_and_orb_r(const UnitCell& ucell,const LCAO_Orbitals& orb);
67
68 std::vector<int> iw2ia;
69 std::vector<int> iw2iL;
70 std::vector<int> iw2im;
71 std::vector<int> iw2iN;
72 std::vector<int> iw2it;
73
76
78 std::vector<std::vector<std::vector<Numerical_Orbital_Lm>>> orbs;
79 std::vector<std::vector<Numerical_Orbital_Lm>> orbs_nonlocal;
80
81 std::map<
82 size_t,
83 std::map<size_t, std::map<size_t, std::map<size_t, std::map<size_t, std::map<size_t, Center2_Orb::Orb11>>>>>>
85
86 std::map<
87 size_t,
88 std::map<size_t, std::map<size_t, std::map<size_t, std::map<size_t, std::map<size_t, Center2_Orb::Orb21>>>>>>
90
91 std::map<
92 size_t,
93 std::map<size_t, std::map<size_t, std::map<size_t, std::map<size_t, Center2_Orb::Orb11>>>>>
95
96 std::map<
97 size_t,
98 std::map<size_t, std::map<size_t, std::map<size_t, std::map<size_t, Center2_Orb::Orb21>>>>>
100
102};
103#endif
Definition abfs-vector3_order.h:16
Definition sltk_grid_driver.h:43
Definition ORB_read.h:19
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 unitcell.h:16
Definition cal_r_overlap_R.h:25
std::map< size_t, std::map< size_t, std::map< size_t, std::map< size_t, std::map< size_t, std::map< size_t, Center2_Orb::Orb21 > > > > > > center2_orb21_r
Definition cal_r_overlap_R.h:89
void init(const UnitCell &ucell, const Parallel_Orbitals &pv, const LCAO_Orbitals &orb)
Definition cal_r_overlap_R.cpp:462
bool binary
Definition cal_r_overlap_R.h:33
std::vector< int > iw2it
Definition cal_r_overlap_R.h:72
cal_r_overlap_R()
Definition cal_r_overlap_R.cpp:10
Numerical_Orbital_Lm orb_r
Definition cal_r_overlap_R.h:77
std::vector< int > iw2ia
Definition cal_r_overlap_R.h:68
std::vector< std::vector< Numerical_Orbital_Lm > > orbs_nonlocal
Definition cal_r_overlap_R.h:79
~cal_r_overlap_R()
Definition cal_r_overlap_R.cpp:14
void get_psi_r_beta(const UnitCell &ucell, std::vector< std::vector< double > > &nlm, const ModuleBase::Vector3< double > &R1, const int &T1, const int &L1, const int &m1, const int &N1, const ModuleBase::Vector3< double > &R2, const int &T2)
Definition cal_r_overlap_R.cpp:532
std::map< size_t, std::map< size_t, std::map< size_t, std::map< size_t, std::map< size_t, Center2_Orb::Orb11 > > > > > center2_orb11_nonlocal
Definition cal_r_overlap_R.h:94
std::map< size_t, std::map< size_t, std::map< size_t, std::map< size_t, std::map< size_t, std::map< size_t, Center2_Orb::Orb11 > > > > > > center2_orb11
Definition cal_r_overlap_R.h:84
double sparse_threshold
Definition cal_r_overlap_R.h:32
void out_rR(const UnitCell &ucell, const Grid_Driver &gd, const int &istep)
Definition cal_r_overlap_R.cpp:610
std::vector< std::vector< std::vector< Numerical_Orbital_Lm > > > orbs
Definition cal_r_overlap_R.h:78
double kmesh_times
Definition cal_r_overlap_R.h:31
ORB_gaunt_table MGT
Definition cal_r_overlap_R.h:75
std::vector< int > iw2im
Definition cal_r_overlap_R.h:70
ModuleBase::Vector3< double > get_psi_r_psi(const ModuleBase::Vector3< double > &R1, const int &T1, const int &L1, const int &m1, const int &N1, const ModuleBase::Vector3< double > &R2, const int &T2, const int &L2, const int &m2, const int &N2)
Definition cal_r_overlap_R.cpp:488
std::vector< int > iw2iL
Definition cal_r_overlap_R.h:69
const Parallel_Orbitals * ParaV
Definition cal_r_overlap_R.h:101
void initialize_orb_table(const UnitCell &ucell, const LCAO_Orbitals &orb)
Definition cal_r_overlap_R.cpp:18
void construct_orbs_and_nonlocal_and_orb_r(const UnitCell &ucell, const LCAO_Orbitals &orb)
Definition cal_r_overlap_R.cpp:230
void init_nonlocal(const UnitCell &ucell, const Parallel_Orbitals &pv, const LCAO_Orbitals &orb)
Definition cal_r_overlap_R.cpp:475
std::map< size_t, std::map< size_t, std::map< size_t, std::map< size_t, std::map< size_t, Center2_Orb::Orb21 > > > > > center2_orb21_r_nonlocal
Definition cal_r_overlap_R.h:99
void construct_orbs_and_orb_r(const UnitCell &ucell, const LCAO_Orbitals &orb)
Definition cal_r_overlap_R.cpp:58
ModuleBase::Sph_Bessel_Recursive::D2 * psb_
Definition cal_r_overlap_R.h:74
std::vector< int > iw2iN
Definition cal_r_overlap_R.h:71
void out_rR_other(const UnitCell &ucell, const int &istep, const std::set< Abfs::Vector3_Order< int > > &output_R_coor)
Definition cal_r_overlap_R.cpp:879