ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
math_lebedev_laikov.h
Go to the documentation of this file.
1#ifndef MATH_LEBEDEV_LAIKOV_H
2#define MATH_LEBEDEV_LAIKOV_H
3
4#include "vector3.h"
5#include <set>
6#include <string>
7
8namespace ModuleBase
9{
10
12{
13public:
16
17
19
21 {
22 return grid_coor;
23 };
24
25 const double* get_weight() const
26 {
27 return weight;
28 };
29
30 void print_grid_and_weight(std::string filename);
31
32 // degree: can only take the following values
33 // degree = { 6, 14, 26, 38, 50, 74, 86, 110, 146, 170, 194, 230, 266, 302, 350, 434, 590, 770, 974,
34 // 1202, 1454, 1730, 2030, 2354, 2702, 3074, 3470, 3890, 4334, 4802, 5294, 5810};
35 int degree = 6;
36
37private:
38 int getLebedevReccurencePoints(int type, int start, double a, double b, double v);
39
40 std::set<int> allowed_degree = {
41 6, 14, 26, 38, 50, 74, 86, 110, 146, 170, 194, 230, 266,
42 302, 350, 434, 590, 770, 974, 1202, 1454, 1730, 2030,
43 2354, 2702, 3074, 3470, 3890, 4334, 4802, 5294, 5810
44 };
45
47 double* weight = nullptr;
48};
49
50}
51
52#endif
Definition math_lebedev_laikov.h:12
double * weight
Definition math_lebedev_laikov.h:47
ModuleBase::Vector3< double > * grid_coor
Definition math_lebedev_laikov.h:46
~Lebedev_laikov_grid()
Definition math_lebedev_laikov.cpp:26
void generate_grid_points()
Definition math_lebedev_laikov.cpp:58
const ModuleBase::Vector3< double > * get_grid_coor() const
Definition math_lebedev_laikov.h:20
std::set< int > allowed_degree
Definition math_lebedev_laikov.h:40
int getLebedevReccurencePoints(int type, int start, double a, double b, double v)
Definition math_lebedev_laikov.cpp:4735
int degree
Definition math_lebedev_laikov.h:35
void print_grid_and_weight(std::string filename)
Definition math_lebedev_laikov.cpp:41
const double * get_weight() const
Definition math_lebedev_laikov.h:25
3 elements vector
Definition vector3.h:22
Definition array_pool.h:6
iclock::time_point start
Definition test_partition.cpp:22