ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
ORB_gaunt_table.h
Go to the documentation of this file.
1#ifndef ORB_GAUNT_TABLE_H
2#define ORB_GAUNT_TABLE_H
3
4#include <map>
7
9{
10 public:
11
14
21 void init_Gaunt_CH(const int& Lmax);
22 double Get_Gaunt_CH(
23 const int& l1,
24 const int& m1,
25 const int& l2,
26 const int& m2,
27 const int& l3,
28 const int& m3 );
29
33 double Get_Gaunt_SH(
34 const int& l1,
35 const int& mm1,
36 const int& l2,
37 const int& mm2,
38 const int& l3,
39 const int& mm3 );
40
41 double Calc_Gaunt_CH(
42 const int& l1,
43 const int& m1,
44 const int& l2,
45 const int& m2,
46 const int& l3,
47 const int& m3 );
48
49
57
60 /*
61 void init_Ylm_Gaunt(
62 const int &lmax,
63 const double &s1,
64 const double &e1,
65 const double &s2,
66 const double &e2);
67 */
68
71 /*
72 double Cal_Gaunt_single(
73 const int &l1,
74 const int &m1,
75 const int &l2,
76 const int &m2,
77 const int &l,
78 const int &m,
79 const double &s1,
80 const double &e1,
81 const double &s2,
82 const double &e2);
83 */
84
87 void init_Gaunt(const int &lmax);
88
89 static inline int get_lm_index(const int l, const int m)
90 {
91 return l*l+m;
92 }
93
94 static int Index_M(const int& m);
95
96 private:
97
98 // Index Function
99 // Yu's mehtod
100 // Peize Lin delete void ModuleBase::GlobalFunc::ZEROS(); 2016-08-26
101
102 //int P_EL(const int& L);
103
104 int EP_EL(const int& L);
105
106 int index_func(
107 const int& l1,
108 const int& l2,
109 const int& l3,
110 const int& m3 );
111
112 double Fact(const int& n);
113
114 void Swap(
115 int& l1,
116 int& m1,
117 int& l2,
118 int& m2 );
119
120 //2*Lmax+1
121 std::map<int,std::map<int,double>> Gaunt_CH; // Peize Lin update 2016-08-26
122
123 //direct integral
125};
126#endif
Definition matrix.h:19
double float array
Definition realarray.h:21
Definition ORB_gaunt_table.h:9
double Calc_Gaunt_CH(const int &l1, const int &m1, const int &l2, const int &m2, const int &l3, const int &m3)
Definition ORB_gaunt_table.cpp:234
double Get_Gaunt_CH(const int &l1, const int &m1, const int &l2, const int &m2, const int &l3, const int &m3)
Definition ORB_gaunt_table.cpp:277
void init_Gaunt(const int &lmax)
Definition ORB_gaunt_table.cpp:15
static int Index_M(const int &m)
Definition ORB_gaunt_table.cpp:447
ORB_gaunt_table()
Definition ORB_gaunt_table.cpp:12
double Get_Gaunt_SH(const int &l1, const int &mm1, const int &l2, const int &mm2, const int &l3, const int &mm3)
Definition ORB_gaunt_table.cpp:335
int index_func(const int &l1, const int &l2, const int &l3, const int &m3)
Definition ORB_gaunt_table.cpp:167
ModuleBase::matrix Ylm_Gaunt
Definition ORB_gaunt_table.h:124
ModuleBase::realArray Gaunt_Coefficients
Definition ORB_gaunt_table.h:56
static int get_lm_index(const int l, const int m)
Definition ORB_gaunt_table.h:89
std::map< int, std::map< int, double > > Gaunt_CH
Definition ORB_gaunt_table.h:121
~ORB_gaunt_table()
Definition ORB_gaunt_table.cpp:13
double Fact(const int &n)
Definition ORB_gaunt_table.cpp:413
void Swap(int &l1, int &m1, int &l2, int &m2)
Definition ORB_gaunt_table.cpp:424
void init_Gaunt_CH(const int &Lmax)
Definition ORB_gaunt_table.cpp:182
int EP_EL(const int &L)
effective pointers
Definition ORB_gaunt_table.cpp:159