ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
LCAO_deepks_test.h
Go to the documentation of this file.
1#include "klist.h"
9//#include "parallel_orbitals.h"
10
11#include "../LCAO_deepks.h"
12
13#include <fstream>
14#include <iomanip>
15#include <iostream>
16#include <sstream>
17#include <torch/script.h>
18#include <torch/torch.h>
19
20namespace Test_Deepks
21{
22extern Grid_Driver GridD;
23}
24
25template <typename T>
27{
28
29 public:
32
34
38
40
44
45 int failed_check = 0;
46 int total_check = 0;
47
48 int my_rank = 0;
49
50 double lcao_ecut = 0; // (Ry)
51 double lcao_dk = 0.01;
52 double lcao_dr = 0.01;
53 double lcao_rmax = 30; // (a.u.)
54
55 int out_mat_r = 0;
56
57 int lmax = 2;
58 int ntype = 0;
59
60 using TH = std::conditional_t<std::is_same<T, double>::value, ModuleBase::matrix, ModuleBase::ComplexMatrix>;
61
62 std::vector<TH> dm;
63 std::vector<std::vector<T>> dm_new;
65
66 // preparation
67 void preparation();
68 void set_parameters(); // set some global variables
69 void setup_cell();
70
71 void count_ntype(); // from STRU, count types of elements
72 void set_ekcut(); // from LCAO files, read and set ekcut
73
74 void prep_neighbour();
75 void setup_kpt();
76 void set_orbs();
77
78 // tranfer Matrix into vector<T>
79 void set_dm_new();
80
81 // tranfer vector<T> into DensityMatrix
82 void set_p_elec_DM();
83
84 // checking
85 void check_dstable();
86 void check_phialpha();
87
88 void read_dm(const int nks);
89
90 void check_pdm();
91 void check_descriptor(std::vector<torch::Tensor>& descriptor);
92
93 void check_gdmx(torch::Tensor& gdmx);
94 void check_gdmepsl(torch::Tensor& gdmepsl);
95
96 void check_gvx(torch::Tensor& gdmx);
97 void check_gvepsl(torch::Tensor& gdmepsl);
98
99 void check_orbpre();
100
101 void check_vdpre();
102
103 void check_vdrpre();
104
105 void check_edelta(std::vector<torch::Tensor>& descriptor);
106
107 // calculate V_delta
108 void cal_V_delta();
109
110 void check_e_deltabands();
112 void check_o_delta();
113
114 // compares numbers stored in two files
115 void compare_with_ref(const std::string f1, const std::string f2);
116};
Definition sltk_grid_driver.h:40
Definition LCAO_deepks.h:39
Definition ORB_read.h:18
Definition complexmatrix.h:13
Definition matrix.h:18
Definition parallel_orbitals.h:9
A class that holds all numerical radial functions of the same kind.
Definition radial_collection.h:18
Definition klist.h:14
A class to compute two-center integrals.
Definition two_center_integrator.h:35
Definition unitcell.h:15
Definition density_matrix.h:70
Definition LCAO_deepks_test.h:27
void set_parameters()
Definition LCAO_deepks_test_prep.cpp:47
void setup_cell()
Definition LCAO_deepks_test_prep.cpp:157
~test_deepks()
Definition LCAO_deepks_test.cpp:32
void check_gdmepsl(torch::Tensor &gdmepsl)
Definition LCAO_deepks_test.cpp:210
double lcao_ecut
Definition LCAO_deepks_test.h:50
int total_check
Definition LCAO_deepks_test.h:46
double lcao_dk
Definition LCAO_deepks_test.h:51
RadialCollection orb_
Definition LCAO_deepks_test.h:35
void set_ekcut()
Definition LCAO_deepks_test_prep.cpp:117
LCAO_Orbitals ORB
Definition LCAO_deepks_test.h:33
std::vector< std::vector< T > > dm_new
Definition LCAO_deepks_test.h:63
int out_mat_r
Definition LCAO_deepks_test.h:55
void check_edelta(std::vector< torch::Tensor > &descriptor)
Definition LCAO_deepks_test.cpp:325
std::conditional_t< std::is_same< T, double >::value, ModuleBase::matrix, ModuleBase::ComplexMatrix > TH
Definition LCAO_deepks_test.h:60
void check_phialpha()
Definition LCAO_deepks_test.cpp:44
void check_descriptor(std::vector< torch::Tensor > &descriptor)
Definition LCAO_deepks_test.cpp:174
int ntype
Definition LCAO_deepks_test.h:58
LCAO_Deepks< T > ld
Definition LCAO_deepks_test.h:43
void compare_with_ref(const std::string f1, const std::string f2)
Definition LCAO_deepks_test.cpp:444
int failed_check
Definition LCAO_deepks_test.h:45
void check_o_delta()
Definition LCAO_deepks_test.cpp:429
void count_ntype()
Definition LCAO_deepks_test_prep.cpp:70
void check_vdrpre()
Definition LCAO_deepks_test.cpp:283
int lmax
Definition LCAO_deepks_test.h:57
void check_pdm()
Definition LCAO_deepks_test.cpp:146
Test_Deepks::K_Vectors kv
Definition LCAO_deepks_test.h:42
void check_e_deltabands()
Definition LCAO_deepks_test.cpp:381
RadialCollection alpha_
Definition LCAO_deepks_test.h:36
double lcao_rmax
Definition LCAO_deepks_test.h:53
void cal_V_delta()
Definition LCAO_deepks_test.cpp:360
elecstate::DensityMatrix< T, double > * p_elec_DM
Definition LCAO_deepks_test.h:64
std::vector< TH > dm
Definition LCAO_deepks_test.h:62
double lcao_dr
Definition LCAO_deepks_test.h:52
void check_f_delta_and_stress_delta()
Definition LCAO_deepks_test.cpp:393
void set_dm_new()
Definition LCAO_deepks_test.cpp:110
void setup_kpt()
Definition LCAO_deepks_test_prep.cpp:221
void check_vdpre()
Definition LCAO_deepks_test.cpp:261
void preparation()
Definition LCAO_deepks_test_prep.cpp:25
void check_gvx(torch::Tensor &gdmx)
Definition LCAO_deepks_test.cpp:199
void set_orbs()
Definition LCAO_deepks_test_prep.cpp:183
void read_dm(const int nks)
Definition LCAO_deepks_test.cpp:79
TwoCenterIntegrator overlap_orb_alpha_
Definition LCAO_deepks_test.h:37
void check_gdmx(torch::Tensor &gdmx)
Definition LCAO_deepks_test.cpp:182
void check_dstable()
Definition LCAO_deepks_test.cpp:37
void set_p_elec_DM()
Definition LCAO_deepks_test.cpp:121
void prep_neighbour()
Definition LCAO_deepks_test_prep.cpp:166
UnitCell ucell
Definition LCAO_deepks_test.h:39
void check_gvepsl(torch::Tensor &gdmepsl)
Definition LCAO_deepks_test.cpp:227
test_deepks()
Definition LCAO_deepks_test.cpp:27
int my_rank
Definition LCAO_deepks_test.h:48
Parallel_Orbitals ParaO
Definition LCAO_deepks_test.h:41
void check_orbpre()
Definition LCAO_deepks_test.cpp:238
Definition klist.h:12
Grid_Driver GridD