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
7#include "pseudo.h"
8
9
10class Atom_pseudo : public pseudo
11{
12public:
13
16
17 // mohan add 2021-05-07
18 ModuleBase::ComplexArray d_so; //(:,:,:), spin-orbit case
19 ModuleBase::matrix d_real; //(:,:), non-spin-orbit case
20 int nproj;
21 int nproj_soc; // dimension of D_ij^so
22 std::vector<int> non_zero_count_soc = {0, 0, 0, 0};
23 std::vector<std::vector<int>> index1_soc = {{}, {}, {}, {}};
24 std::vector<std::vector<int>> index2_soc = {{}, {}, {}, {}};
25
26 void set_d_so( // mohan add 2021-05-07
28 const int &nproj_in,
29 const int &nproj_in_so,
30 const bool has_so);
31
32
33 inline void get_d(const int& is, const int& p1, const int& p2, const std::complex<double>*& tmp_d)
34 {
35 tmp_d = &this->d_so(is, p1, p2);
36 return;
37 }
38 inline void get_d(const int& is, const int& p1, const int& p2, const double*& tmp_d)
39 {
40 tmp_d = &this->d_real(p1, p2);
41 return;
42 }
43
44
45#ifdef __MPI
46 void bcast_atom_pseudo(void); // for upf201
47#endif
48
49};
50
51#endif
Definition atom_pseudo.h:11
ModuleBase::matrix d_real
Definition atom_pseudo.h:19
void get_d(const int &is, const int &p1, const int &p2, const double *&tmp_d)
Definition atom_pseudo.h:38
int nproj
Definition atom_pseudo.h:20
std::vector< std::vector< int > > index2_soc
Definition atom_pseudo.h:24
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:21
std::vector< std::vector< int > > index1_soc
Definition atom_pseudo.h:23
void get_d(const int &is, const int &p1, const int &p2, const std::complex< double > *&tmp_d)
Definition atom_pseudo.h:33
ModuleBase::ComplexArray d_so
Definition atom_pseudo.h:18
Atom_pseudo()
Definition atom_pseudo.cpp:5
std::vector< int > non_zero_count_soc
Definition atom_pseudo.h:22
A basic type of data for complex array.
Definition complexarray.h:15
Definition complexmatrix.h:13
Definition matrix.h:18
Definition pseudo.h:14
bool has_so
Definition pseudo.h:20