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"
8//#include "parallel_orbitals.h"
9
10#include "../LCAO_deepks.h"
11
12#include <fstream>
13#include <iomanip>
14#include <iostream>
15#include <sstream>
16#include <torch/script.h>
17#include <torch/torch.h>
18
19namespace Test_Deepks
20{
21extern Grid_Driver GridD;
22}
23
24template <typename T>
26{
27
28 public:
31
33
37
39
43
44 int failed_check = 0;
45 int total_check = 0;
46
47 int my_rank = 0;
48
49 double lcao_ecut = 0; // (Ry)
50 double lcao_dk = 0.01;
51 double lcao_dr = 0.01;
52 double lcao_rmax = 30; // (a.u.)
53
54 int out_mat_r = 0;
55
56 int lmax = 2;
57 int ntype = 0;
58
59 using TH = std::conditional_t<std::is_same<T, double>::value, ModuleBase::matrix, ModuleBase::ComplexMatrix>;
60
61 std::vector<TH> dm;
62 std::vector<std::vector<T>> dm_new;
64
65 // preparation
66 void preparation();
67 void set_parameters(); // set some global variables
68 void setup_cell();
69
70 void count_ntype(); // from STRU, count types of elements
71 void set_ekcut(); // from LCAO files, read and set ekcut
72
73 void prep_neighbour();
74 void setup_kpt();
75 void set_orbs();
76
77 // tranfer Matrix into vector<T>
78 void set_dm_new();
79
80 // tranfer vector<T> into DensityMatrix
81 void set_p_elec_DM();
82
83 // checking
84 void check_dstable();
85 void check_phialpha();
86
87 void read_dm(const int nks);
88
89 void check_pdm();
90 void check_descriptor(std::vector<torch::Tensor>& descriptor);
91
92 void check_gdmx(torch::Tensor& gdmx);
93 void check_gdmepsl(torch::Tensor& gdmepsl);
94
95 void check_gvx(torch::Tensor& gdmx);
96 void check_gvepsl(torch::Tensor& gdmepsl);
97
98 void check_orbpre();
99
100 void check_vdpre();
101
102 void check_vdrpre();
103
104 void check_edelta(std::vector<torch::Tensor>& descriptor);
105
106 // calculate V_delta
107 void cal_V_delta();
108
109 void check_e_deltabands();
111 void check_o_delta();
112
113 // compares numbers stored in two files
114 void compare_with_ref(const std::string f1, const std::string f2);
115};
Definition sltk_grid_driver.h:43
Definition LCAO_deepks.h:52
Definition ORB_read.h:19
Definition complexmatrix.h:14
Definition matrix.h:19
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:16
Definition density_matrix.h:36
Definition LCAO_deepks_test.h:26
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:21
void check_gdmepsl(torch::Tensor &gdmepsl)
Definition LCAO_deepks_test.cpp:209
double lcao_ecut
Definition LCAO_deepks_test.h:49
int total_check
Definition LCAO_deepks_test.h:45
double lcao_dk
Definition LCAO_deepks_test.h:50
RadialCollection orb_
Definition LCAO_deepks_test.h:34
void set_ekcut()
Definition LCAO_deepks_test_prep.cpp:117
LCAO_Orbitals ORB
Definition LCAO_deepks_test.h:32
std::vector< std::vector< T > > dm_new
Definition LCAO_deepks_test.h:62
int out_mat_r
Definition LCAO_deepks_test.h:54
void check_edelta(std::vector< torch::Tensor > &descriptor)
Definition LCAO_deepks_test.cpp:327
std::conditional_t< std::is_same< T, double >::value, ModuleBase::matrix, ModuleBase::ComplexMatrix > TH
Definition LCAO_deepks_test.h:59
void check_phialpha()
Definition LCAO_deepks_test.cpp:33
void check_descriptor(std::vector< torch::Tensor > &descriptor)
Definition LCAO_deepks_test.cpp:166
int ntype
Definition LCAO_deepks_test.h:57
LCAO_Deepks< T > ld
Definition LCAO_deepks_test.h:42
void compare_with_ref(const std::string f1, const std::string f2)
Definition LCAO_deepks_test.cpp:451
int failed_check
Definition LCAO_deepks_test.h:44
void check_o_delta()
Definition LCAO_deepks_test.cpp:436
void count_ntype()
Definition LCAO_deepks_test_prep.cpp:70
void check_vdrpre()
Definition LCAO_deepks_test.cpp:297
int lmax
Definition LCAO_deepks_test.h:56
void check_pdm()
Definition LCAO_deepks_test.cpp:135
Test_Deepks::K_Vectors kv
Definition LCAO_deepks_test.h:41
void check_e_deltabands()
Definition LCAO_deepks_test.cpp:388
RadialCollection alpha_
Definition LCAO_deepks_test.h:35
double lcao_rmax
Definition LCAO_deepks_test.h:52
void cal_V_delta()
Definition LCAO_deepks_test.cpp:367
elecstate::DensityMatrix< T, double > * p_elec_DM
Definition LCAO_deepks_test.h:63
std::vector< TH > dm
Definition LCAO_deepks_test.h:61
double lcao_dr
Definition LCAO_deepks_test.h:51
void check_f_delta_and_stress_delta()
Definition LCAO_deepks_test.cpp:400
void set_dm_new()
Definition LCAO_deepks_test.cpp:99
void setup_kpt()
Definition LCAO_deepks_test_prep.cpp:220
void check_vdpre()
Definition LCAO_deepks_test.cpp:272
void preparation()
Definition LCAO_deepks_test_prep.cpp:25
void check_gvx(torch::Tensor &gdmx)
Definition LCAO_deepks_test.cpp:198
void set_orbs()
Definition LCAO_deepks_test_prep.cpp:183
void read_dm(const int nks)
Definition LCAO_deepks_test.cpp:68
TwoCenterIntegrator overlap_orb_alpha_
Definition LCAO_deepks_test.h:36
void check_gdmx(torch::Tensor &gdmx)
Definition LCAO_deepks_test.cpp:179
void check_dstable()
Definition LCAO_deepks_test.cpp:26
void set_p_elec_DM()
Definition LCAO_deepks_test.cpp:110
void prep_neighbour()
Definition LCAO_deepks_test_prep.cpp:166
UnitCell ucell
Definition LCAO_deepks_test.h:38
void check_gvepsl(torch::Tensor &gdmepsl)
Definition LCAO_deepks_test.cpp:228
test_deepks()
Definition LCAO_deepks_test.cpp:16
int my_rank
Definition LCAO_deepks_test.h:47
Parallel_Orbitals ParaO
Definition LCAO_deepks_test.h:40
void check_orbpre()
Definition LCAO_deepks_test.cpp:246
Definition klist.h:12
Grid_Driver GridD