ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
deepks_descriptor.h
Go to the documentation of this file.
1#ifndef DEEPKS_DESCRIPTOR_H
2#define DEEPKS_DESCRIPTOR_H
3
4#ifdef __MLALGO
5
7#include "source_base/timer.h"
9
10#include <torch/script.h>
11#include <torch/torch.h>
12
13namespace DeePKS_domain
14{
15//------------------------
16// deepks_descriptor.cpp
17//------------------------
18
19// This file contains interfaces with libtorch,
20// including loading of model and calculating gradients
21// as well as subroutines that prints the results for checking
22
23// The file contains 8 subroutines:
24// 1. cal_descriptor : obtains descriptors which are eigenvalues of pdm
25// by calling torch::linalg::eigh
26// 2. check_descriptor : prints descriptor for checking
27// 3. cal_descriptor_equiv : calculates descriptor in equivalent version
28
31void cal_descriptor(const int nat,
32 const int inlmax,
33 const std::vector<int>& inl2l,
34 const std::vector<torch::Tensor>& pdm,
35 std::vector<torch::Tensor>& descriptor,
36 const int des_per_atom);
38void check_descriptor(const int inlmax,
39 const int des_per_atom,
40 const std::vector<int>& inl2l,
41 const UnitCell& ucell,
42 const std::string& out_dir,
43 const std::vector<torch::Tensor>& descriptor,
44 const int rank);
45
46void cal_descriptor_equiv(const int nat,
47 const int des_per_atom,
48 const std::vector<torch::Tensor>& pdm,
49 std::vector<torch::Tensor>& descriptor);
50} // namespace DeePKS_domain
51#endif
52#endif
Definition unitcell.h:16
Definition deepks_basic.h:14
void check_descriptor(const int inlmax, const int des_per_atom, const std::vector< int > &inl2l, const UnitCell &ucell, const std::string &out_dir, const std::vector< torch::Tensor > &descriptor, const int rank)
print descriptors based on LCAO basis
Definition deepks_descriptor.cpp:75
void cal_descriptor(const int nat, const int inlmax, const std::vector< int > &inl2l, const std::vector< torch::Tensor > &pdm, std::vector< torch::Tensor > &descriptor, const int des_per_atom)
Definition deepks_descriptor.cpp:38
void cal_descriptor_equiv(const int nat, const int des_per_atom, const std::vector< torch::Tensor > &pdm, std::vector< torch::Tensor > &descriptor)
Definition deepks_descriptor.cpp:18