ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
LCAO_HS_arrays.hpp
Go to the documentation of this file.
1#ifndef LCAO_HS_ARRAYS_H
2#define LCAO_HS_ARRAYS_H
3
5
6#include <complex>
7#include <vector>
8
10 public:
13
14 //------------------------------
15 // Store H(mu,nu')
16 // nu' : nu in near unitcell R.
17 // used in kpoint algorithm.
18 // these matrixed are used
19 // for 'folding_matrix' in lcao_nnr,
20 // HlocR -> Hloc2,
21 // SlocR -> Sloc2,
22 //------------------------------
23 std::vector<double> Hloc_fixedR;
24
25 // For HR_sparse[2], when nspin=1, only 0 is valid, when nspin=2, 0 means
26 // spin up, 1 means spin down
27 std::map<Abfs::Vector3_Order<int>,
28 std::map<size_t, std::map<size_t, double>>>
30 std::map<Abfs::Vector3_Order<int>,
31 std::map<size_t, std::map<size_t, double>>>
33 std::map<Abfs::Vector3_Order<int>,
34 std::map<size_t, std::map<size_t, double>>>
36
37 std::map<Abfs::Vector3_Order<int>,
38 std::map<size_t, std::map<size_t, double>>>
40 std::map<Abfs::Vector3_Order<int>,
41 std::map<size_t, std::map<size_t, double>>>
43 std::map<Abfs::Vector3_Order<int>,
44 std::map<size_t, std::map<size_t, double>>>
46
47 // For nspin = 4
48 std::map<Abfs::Vector3_Order<int>,
49 std::map<size_t, std::map<size_t, std::complex<double>>>>
51 std::map<Abfs::Vector3_Order<int>,
52 std::map<size_t, std::map<size_t, std::complex<double>>>>
54
55 std::map<Abfs::Vector3_Order<int>,
56 std::map<size_t, std::map<size_t, std::complex<double>>>>
58 std::map<Abfs::Vector3_Order<int>,
59 std::map<size_t, std::map<size_t, std::complex<double>>>>
61 std::map<Abfs::Vector3_Order<int>,
62 std::map<size_t, std::map<size_t, std::complex<double>>>>
64
65 // Records the R direct coordinates of HR and SR output, This variable will
66 // be filled with data when HR and SR files are output.
67 std::set<Abfs::Vector3_Order<int>> output_R_coor;
68
69 // Record all R direct coordinate information, even if HR or SR is a zero
70 // matrix
71 std::set<Abfs::Vector3_Order<int>> all_R_coor;
72};
73
74#endif
Definition LCAO_HS_arrays.hpp:9
LCAO_HS_Arrays()
Definition LCAO_HS_arrays.hpp:11
std::set< Abfs::Vector3_Order< int > > all_R_coor
Definition LCAO_HS_arrays.hpp:71
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, double > > > SR_sparse
Definition LCAO_HS_arrays.hpp:32
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, double > > > HR_sparse[2]
Definition LCAO_HS_arrays.hpp:29
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, double > > > dHRy_sparse[2]
Definition LCAO_HS_arrays.hpp:42
std::vector< double > Hloc_fixedR
Definition LCAO_HS_arrays.hpp:23
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, std::complex< double > > > > HR_soc_sparse
Definition LCAO_HS_arrays.hpp:50
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, std::complex< double > > > > dHRx_soc_sparse
Definition LCAO_HS_arrays.hpp:57
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, double > > > dHRx_sparse[2]
Definition LCAO_HS_arrays.hpp:39
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, double > > > dHRz_sparse[2]
Definition LCAO_HS_arrays.hpp:45
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, std::complex< double > > > > SR_soc_sparse
Definition LCAO_HS_arrays.hpp:53
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, std::complex< double > > > > dHRy_soc_sparse
Definition LCAO_HS_arrays.hpp:60
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, std::complex< double > > > > dHRz_soc_sparse
Definition LCAO_HS_arrays.hpp:63
std::set< Abfs::Vector3_Order< int > > output_R_coor
Definition LCAO_HS_arrays.hpp:67
~LCAO_HS_Arrays()
Definition LCAO_HS_arrays.hpp:12
std::map< Abfs::Vector3_Order< int >, std::map< size_t, std::map< size_t, double > > > TR_sparse
Definition LCAO_HS_arrays.hpp:35