ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
LCAO_deepks_io.h
Go to the documentation of this file.
1#ifndef LCAO_DEEPKS_IO_H
2#define LCAO_DEEPKS_IO_H
3
4#ifdef __MLALGO
5
9
10#include <string>
11#include <torch/script.h>
12#include <torch/torch.h>
13#include <vector>
14
16{
17
22
26
28
34
37constexpr double Ry2Hartree = 0.5;
38
40template <typename TK>
41void print_dm(const int nks, const int nlocal, const int nrow, const std::vector<std::vector<TK>>& dm);
42
43void load_npy_gedm(const int nat, const int des_per_atom, double** gedm, double& e_delta, const int rank);
44
46void save_npy_d(const int nat,
47 const int des_per_atom,
48 const int inlmax,
49 const std::vector<int>& inl2l,
50 const bool deepks_equiv,
51 const std::vector<torch::Tensor>& descriptor,
52 const std::string& dm_eig_file,
53 const int rank);
54
55// save energy
56void save_npy_e(const double& e,
57 const std::string& e_file,
58 const int rank,
59 const double unit_scale = Ry2Hartree);
60
61// save Hamiltonian
62template <typename TK, typename TH>
63void save_npy_h(const std::vector<TH>& hamilt,
64 const std::string& h_file,
65 const int nlocal,
66 const int nks,
67 const int rank,
68 const double unit_scale = Ry2Hartree);
69
70void save_matrix2npy(const std::string& file_name,
71 const ModuleBase::matrix& matrix,
72 const int rank,
73 const double& scale = 1.0,
74 const char mode = 'N',
75 const double unit_scale = Ry2Hartree);
76
77template <typename T>
78void save_tensor2npy(const std::string& file_name, const torch::Tensor& tensor, const int rank);
79}; // namespace LCAO_deepks_io
80
81#endif
82#endif
Definition matrix.h:19
Definition LCAO_deepks_io.h:16
constexpr double Ry2Hartree
others print quantities in .npy format
Definition LCAO_deepks_io.h:37
void save_npy_h(const std::vector< TH > &hamilt, const std::string &h_file, const int nlocal, const int nks, const int rank, const double unit_scale=Ry2Hartree)
Definition LCAO_deepks_io.cpp:151
void save_tensor2npy(const std::string &file_name, const torch::Tensor &tensor, const int rank)
Definition LCAO_deepks_io.cpp:267
void save_npy_e(const double &e, const std::string &e_file, const int rank, const double unit_scale=Ry2Hartree)
Definition LCAO_deepks_io.cpp:135
void save_matrix2npy(const std::string &file_name, const ModuleBase::matrix &matrix, const int rank, const double &scale=1.0, const char mode='N', const double unit_scale=Ry2Hartree)
Definition LCAO_deepks_io.cpp:183
void load_npy_gedm(const int nat, const int des_per_atom, double **gedm, double &e_delta, const int rank)
Definition LCAO_deepks_io.cpp:33
void print_dm(const int nks, const int nlocal, const int nrow, const std::vector< std::vector< TK > > &dm)
print density matrices
Definition LCAO_deepks_io.cpp:12
void save_npy_d(const int nat, const int des_per_atom, const int inlmax, const std::vector< int > &inl2l, const bool deepks_equiv, const std::vector< torch::Tensor > &descriptor, const std::string &dm_eig_file, const int rank)
save descriptor
Definition LCAO_deepks_io.cpp:77
Definition hamilt.h:12