ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
spar_exx.h
Go to the documentation of this file.
1#ifndef SPARSE_FORMAT_EXX_H
2#define SPARSE_FORMAT_EXX_H
3
4#ifdef __EXX
5
6// --------------------------------------------------------
7// Header files - minimal set for declaration only
8// --------------------------------------------------------
9
10#include <RI/global/Tensor.h>
11#include <array>
12#include <map>
13#include <vector>
14
18
19// --------------------------------------------------------
20// Namespace - merged into one block
21// --------------------------------------------------------
22
23namespace sparse_format
24{
25
41template <typename Tdata>
42void cal_HR_exx(
43 const UnitCell& ucell,
44 const Parallel_Orbitals& pv,
45 LCAO_HS_Arrays& HS_Arrays,
46 const int& current_spin,
47 const double& sparse_thr,
48 const int (&nmp)[3],
49 const std::vector<std::map<int, std::map<std::pair<int, std::array<int, 3>>, RI::Tensor<Tdata>>>>& Hexxs);
50
51// Explicit instantiations for double and complex<double> types
52extern template void cal_HR_exx<double>(
53 const UnitCell& ucell,
54 const Parallel_Orbitals& pv,
55 LCAO_HS_Arrays& HS_Arrays,
56 const int& current_spin,
57 const double& sparse_thr,
58 const int (&nmp)[3],
59 const std::vector<std::map<int, std::map<std::pair<int, std::array<int, 3>>, RI::Tensor<double>>>>& Hexxs);
60
61extern template void cal_HR_exx<std::complex<double>>(
62 const UnitCell& ucell,
63 const Parallel_Orbitals& pv,
64 LCAO_HS_Arrays& HS_Arrays,
65 const int& current_spin,
66 const double& sparse_thr,
67 const int (&nmp)[3],
68 const std::vector<std::map<int, std::map<std::pair<int, std::array<int, 3>>, RI::Tensor<std::complex<double>>>>>& Hexxs);
69
70}
71
72#endif // __EXX
73#endif // SPARSE_FORMAT_EXX_H
Definition LCAO_HS_arrays.hpp:9
Definition parallel_orbitals.h:9
Definition unitcell.h:15
Definition spar_dh.h:14