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
6#include "deepks_param.h"
10
11#include <string>
12#include <torch/script.h>
13#include <torch/torch.h>
14#include <vector>
15
17{
18
23
27
29
35
38constexpr double Ry2Hartree = 0.5;
39
41template <typename TK>
42void print_dm(const int nks, const int nlocal, const int nrow, const std::vector<std::vector<TK>>& dm);
43
44void load_npy_gedm(const int nat, const int des_per_atom, double** gedm, double& e_delta, const int rank);
45
47void save_npy_d(const int nat,
48 const bool deepks_equiv,
49 const DeePKS_Param& deepks_param,
50 const std::vector<torch::Tensor>& descriptor,
51 const std::string& dm_eig_file,
52 const int rank);
53
54// save energy
55void save_npy_e(const double& e,
56 const std::string& e_file,
57 const int rank,
58 const double unit_scale = Ry2Hartree);
59
60// save Hamiltonian
61template <typename TK, typename TH>
62void save_npy_h(const std::vector<TH>& hamilt,
63 const std::string& h_file,
64 const int nlocal,
65 const int nks,
66 const int rank,
67 const double unit_scale = Ry2Hartree);
68
69void save_matrix2npy(const std::string& file_name,
70 const ModuleBase::matrix& matrix,
71 const int rank,
72 const double& scale = 1.0,
73 const char mode = 'N',
74 const double unit_scale = Ry2Hartree);
75
76template <typename T>
77void save_tensor2npy(const std::string& file_name, const torch::Tensor& tensor, const int rank);
78}; // namespace LCAO_deepks_io
79
80#endif
81#endif
Definition matrix.h:19
Definition LCAO_deepks_io.h:17
constexpr double Ry2Hartree
others print quantities in .npy format
Definition LCAO_deepks_io.h:38
void save_npy_d(const int nat, const bool deepks_equiv, const DeePKS_Param &deepks_param, const std::vector< torch::Tensor > &descriptor, const std::string &dm_eig_file, const int rank)
save descriptor
Definition LCAO_deepks_io.cpp:77
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
Definition hamilt.h:12
Definition deepks_param.h:11