ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
write_mlkedf_descriptors.h
Go to the documentation of this file.
1#ifndef Write_MLKEDF_DESCRIPTORS_H
2#define Write_MLKEDF_DESCRIPTORS_H
3
4#ifdef __MLALGO
5
8
9namespace ModuleIO
10{
11
13{
14public:
18
20 if (this->cal_tool != nullptr) {
21 delete this->cal_tool;
22 this->cal_tool = nullptr;
23 }
24 }
25
27 const std::string& out_dir,
28 psi::Psi<std::complex<double>> *psi,
31 ModulePW::PW_Basis *pw_rho,
32 UnitCell& ucell,
33 const double *veff
34 );
36 const std::string& out_dir,
37 psi::Psi<std::complex<float>> *psi,
40 ModulePW::PW_Basis *pw_rho,
41 UnitCell& ucell,
42 const double *veff
43 );
44
45#if ((defined __CUDA) || (defined __ROCM))
47 const std::string& dir,
48 psi::Psi<std::complex<double>, base_device::DEVICE_GPU>* psi,
51 ModulePW::PW_Basis *pw_rho,
52 UnitCell& ucell,
53 const double *veff
54 );
56 const std::string& dir,
57 psi::Psi<std::complex<float>, base_device::DEVICE_GPU>* psi,
60 ModulePW::PW_Basis *pw_rho,
61 UnitCell& ucell,
62 const double *veff
63 );
64#endif
65
67 const std::string& out_dir,
68 const double * const *prho,
69 ModulePW::PW_Basis *pw_rho,
70 std::vector<std::vector<double>> &nablaRho
71 );
72
73 std::string file_name(
74 const std::string& out_dir,
75 std::string parameter,
76 const int kernel_type,
77 const double kernel_scaling
78 );
79
80 Cal_MLKEDF_Descriptors* cal_tool = nullptr; // pointer to the calculation tool
81};
82
83} // namespace ModuleIO
84#endif
85#endif
A class to calculate the descriptors for ML KEDF. Sun, Liang, and Mohan Chen. Physical Review B 109....
Definition cal_mlkedf_descriptors.h:19
Definition write_mlkedf_descriptors.h:13
std::string file_name(const std::string &out_dir, std::string parameter, const int kernel_type, const double kernel_scaling)
Definition write_mlkedf_descriptors.cpp:225
~Write_MLKEDF_Descriptors()
Definition write_mlkedf_descriptors.h:19
Cal_MLKEDF_Descriptors * cal_tool
Definition write_mlkedf_descriptors.h:80
void generate_descriptor(const std::string &out_dir, const double *const *prho, ModulePW::PW_Basis *pw_rho, std::vector< std::vector< double > > &nablaRho)
Definition write_mlkedf_descriptors.cpp:117
void generateTrainData_KS(const std::string &out_dir, psi::Psi< std::complex< double > > *psi, elecstate::ElecState *pelec, ModulePW::PW_Basis_K *pw_psi, ModulePW::PW_Basis *pw_rho, UnitCell &ucell, const double *veff)
Definition write_mlkedf_descriptors.cpp:10
Write_MLKEDF_Descriptors()
Definition write_mlkedf_descriptors.h:15
Special pw_basis class. It includes different k-points.
Definition pw_basis_k.h:57
A class which can convert a function of "r" to the corresponding linear superposition of plane waves ...
Definition pw_basis.h:56
Definition unitcell.h:17
Definition elecstate.h:15
Definition psi.h:37
Definition cal_dos.h:9
Definition exx_lip.h:23