ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
atom_pseudo.h
Go to the documentation of this file.
1#ifndef ATOM_PSEUDO_H
2#define ATOM_PSEUDO_H
3
6#include "source_io/output.h"
9#include "pseudo.h"
10
11
12class Atom_pseudo : public pseudo
13{
14public:
15
18
19 // mohan add 2021-05-07
20 ModuleBase::ComplexArray d_so; //(:,:,:), spin-orbit case
21 ModuleBase::matrix d_real; //(:,:), non-spin-orbit case
22 int nproj;
23 int nproj_soc; // dimension of D_ij^so
24 std::vector<int> non_zero_count_soc = {0, 0, 0, 0};
25 std::vector<std::vector<int>> index1_soc = {{}, {}, {}, {}};
26 std::vector<std::vector<int>> index2_soc = {{}, {}, {}, {}};
27
28 void set_d_so( // mohan add 2021-05-07
30 const int &nproj_in,
31 const int &nproj_in_so,
32 const bool has_so);
33
34
35 inline void get_d(const int& is, const int& p1, const int& p2, const std::complex<double>*& tmp_d)
36 {
37 tmp_d = &this->d_so(is, p1, p2);
38 return;
39 }
40 inline void get_d(const int& is, const int& p1, const int& p2, const double*& tmp_d)
41 {
42 tmp_d = &this->d_real(p1, p2);
43 return;
44 }
45
46
47#ifdef __MPI
48 void bcast_atom_pseudo(void); // for upf201
49#endif
50
51};
52
53#endif
Definition atom_pseudo.h:13
ModuleBase::matrix d_real
Definition atom_pseudo.h:21
void get_d(const int &is, const int &p1, const int &p2, const double *&tmp_d)
Definition atom_pseudo.h:40
int nproj
Definition atom_pseudo.h:22
std::vector< std::vector< int > > index2_soc
Definition atom_pseudo.h:26
void set_d_so(ModuleBase::ComplexMatrix &d_so_in, const int &nproj_in, const int &nproj_in_so, const bool has_so)
Definition atom_pseudo.cpp:14
~Atom_pseudo()
Definition atom_pseudo.cpp:9
void bcast_atom_pseudo(void)
Definition atom_pseudo.cpp:148
int nproj_soc
Definition atom_pseudo.h:23
std::vector< std::vector< int > > index1_soc
Definition atom_pseudo.h:25
void get_d(const int &is, const int &p1, const int &p2, const std::complex< double > *&tmp_d)
Definition atom_pseudo.h:35
ModuleBase::ComplexArray d_so
Definition atom_pseudo.h:20
Atom_pseudo()
Definition atom_pseudo.cpp:5
std::vector< int > non_zero_count_soc
Definition atom_pseudo.h:24
A basic type of data for complex array.
Definition complexarray.h:15
Definition complexmatrix.h:14
Definition matrix.h:19
Definition pseudo.h:13
bool has_so
Definition pseudo.h:19